我在数据库中创建了一个数据表SignedMember(SignedMemberADOQuery),连接SignInADOConnect数据库,此数据库还有其他表。在我创建SignedMemberADOQuery之前,应用程序是可以正常运行的。但是我在添加了SignedMemberADOQuery.Active:=False;
SignedMemberADOQuery.Active:=True;(运行到此句,就不行了。直接跳到except异常处理语句。注释掉后又正常)。
我以前创建数据表都不会出现这种情况。原程序的其他代码没有改动,SignedMemberADOQuery的SQL连接语句是
Select * from SignenMember。在数据库中我有有创建SignedMember。
请问大侠,这是什么原因呢?
SignedMemberADOQuery.Active:=True;(运行到此句,就不行了。直接跳到except异常处理语句。注释掉后又正常)。
我以前创建数据表都不会出现这种情况。原程序的其他代码没有改动,SignedMemberADOQuery的SQL连接语句是
Select * from SignenMember。在数据库中我有有创建SignedMember。
请问大侠,这是什么原因呢?
不好意思,SignenMember那里写错了,但是我之后就改过来SignedMember,不是这个原因。
//我本想创建SignedMemberADOQuery来替换一下SignedUserADOQuery看看,问题出在哪里。SignedMemberADOQuery对应的表SignedMember,此时还没有做任何数据操作。
//连接SQL数据库
Screen.Cursor := crHourGlass;
StatusBar1.Panels[0].Text := '正在连接SQL数据库,请稍候...';
try
with DataModule1 do
begin
SignInADOConnect.Close;
SignInADOConnect.Open;
showmessage(SignedUserADOQuery.SQL.CommaText);
SignInADOQuery.Active:=False;
SignInADOQuery.Active:=True;
SignedUserADOQuery.Active:=False;
SignedUserADOQuery.Active:=True;//(改变一下运行到此句就跳到except语句中去了)
CardUser1ADOQuery.Filtered := False;
with CardUser1ADOQuery do
begin
SQL.Clear;
SQL.Add('select * from NewCardUser');
ExecSQL;
Open;
end;
if SignedUser1ADOQuery.Active=False then SignedUser1ADOQuery.Active:=True;
if CustomData1ADOQuery.Active=False then CustomData1ADOQuery.Active:=True;
end;
StatusBar1.Panels[0].Text := 'SQL连接成功!';
Screen.Cursor := crDefault;
except
Screen.Cursor := crDefault;
StatusBar1.Panels[0].Text := 'SQL连接失败,请先连接';
exit;
end;
try
...
except
on E: Exception do ErrorDialog(E.Message, E.HelpContext);
end;
加上看看是什么错误,贴上来帮你分析下
这个程序原来就正常运行的,所以不存在 数据集没有激活和DataModule1没有创建 的问题!我上午注释掉try..except..end; 此时 程序运行到
SignedUserADOQuery.Active:=True;
可以运行下去了。不再跳到except异常处理那里,弹出的错误是找不到我自己在数据表创建的字段,删除我创建的字段后,可以运行了。
分析到此处,由于我的这个应用程序还跟另外一个大应用程序一起配合运行的,据弹出错误目前分析估计是 屏幕定制控件集流上传到服务器的信息没有改变为我创建的字段所致。
感谢各位大侠的指点!