运行程序时,出现了'read of address 000000D2'错误,哪位高手能指导我下?
小妹是初学者,编“用户管理”这项功能时,编译没错,运行就出现了 'read of address 000000D2 '!
怎么回事啊?涉及代码是:
YHq.Close; //查出用户信息
YHq.SQL.Clear;
YHQ.SQL.Add( 'SELECT A.users as 用户名,B.qxm as 权限 FROM c_user AS A ');
YHQ.SQL.Add( 'INNER JOIN c_qxb AS B ON A.QXID=B.QXID ');
YHQ.Open; //这是个ADOQUERY
QXM_ADOQ:=TADOQuery.Create(nil); //动态创建ADOQuery控件
QXM_ADOQ.Connection:=DM.dbstudy_ADOConn;
QXM_ADOQ.SQL.Add( 'SELECT QXM FROM c_qxb ');
QXM_ADOQ.Open;
while not QXM_ADOQ.Eof do
begin
QXCB.Items.Add(QXM_ADOQ.FieldValues[ 'QXM ']); //取出权限名字段
QXM_ADOQ.Next;
end;
QXM_ADOQ.Close;
FreeAndNil(QXM_ADOQ);
ShowYHInfo; //这是个函数
YHtable.Open; //单步到这,就出现那个框框了
其中
//编写用户信息函数
Procedure Txtgl_Form.ShowYHInfo;
begin
YHM.Text:=DBGrid1.Fields[0].Text;
YHM.Enabled:=false;
QXcb.ItemIndex:=QXCB.Items.IndexOf(DBGrid1.Fields[1].Text);
if YHM.Text <> YH then
begin
MM.Enabled:=false;
reMM.Enabled:=false; //YHM,MM,REMM都是编辑框的NAME
end
else begin
MM.Enabled:=true;
ReMM.Enabled:=true;
end;
end;
我想实现的是:取出用户名和用户权限名(管理员或一般用户)
其中用户名在c_user表内,权限名在c_qxb内
到底为什么出现那个错呢?哪位仁兄能帮我解答下,谢了
[解决办法]
YHtable.Open; //单步到这,就出现那个框框了
YHtable的相关设置有误!
[解决办法]
YHM.Text:=DBGrid1.Fields[0].Text;
DataSet 在之前已 freeandnil 了
再在用出,
如果DBGrid1的DataSet 是 QXM_ADOQ 的
[解决办法]
ding shang
[解决办法]
你在其他电脑上运行呢?有时候不见得是程序的问题,和系统的软件环境也有关系