在程序中有一个tadoquery组件qry1,其connection已经设置为一个打开的connection组件.qry1的状态为关闭.下列代码在执行第一次的时候没有错误,在执行第二次的时候发生错误:Access violation at address 1f453e6e in moudle 'msado15.dll'.write of address 00fbb020.
这是为什么???高手请回答,多谢.
//代码为//////
try
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
qry1.ExecSQL;
qry1.Open;
if qry1.RecordCount>0 then
begin
listbox1.Clear;
qry1.First;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
end
else
showmessage('没有找到符合要求的记录');
finally
qry1.Close;
end;
这是为什么???高手请回答,多谢.
//代码为//////
try
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
qry1.ExecSQL;
qry1.Open;
if qry1.RecordCount>0 then
begin
listbox1.Clear;
qry1.First;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
end
else
showmessage('没有找到符合要求的记录');
finally
qry1.Close;
end;
解决方案 »
- 大家用DELPHI开发B/S程序多吗??
- HotKeyIndex1 := HotKeyManager1.AddHotKey(qscreeninifile.Readinteger('HotKey1',
- 如何添加IE右键菜单项
- 三层结构的数据添加和更新
- intraweb如何在一个TIWAppForm中显示另一个TIWAppForm(或TFrame)
- 如何继存窗体,抢分
- SQL里的数据字段怎么用?
- 最简单的问题,但是估计没几个人能回答出来!!!
- 100分请教:如何实现热键呼出功能????分数不够可以再加!
- 如何重载show事件?
- 如何用遍历Import表的方式获得进程引用模块名称和函数名称?
- 如何在SQL 语句字符串中使用单引号
try
if qry1.Active then qry1.Close;//加上这一句!
qry1.SQL.Clear;
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
qry1.ExecSQL;
qry1.SQL.Clear;
qry1.SQL.Add(s1);//s1为正确的Select 的sql语句
qry1.Open;
if qry1.RecordCount>0 then
begin
listbox1.Clear;
qry1.First;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
end
else
showmessage('没有找到符合要求的记录');
finally
qry1.Close;
end;
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
qry1.ExecSQL;
qry1.SQL.Clear;
qry1.SQL.Add(s1);//s1为正确的Select 的sql语句 //没必要吧???
qry1.Open;
if qry1.RecordCount>0 then
begin
listbox1.Clear;
qry1.First;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
end
else
showmessage('没有找到符合要求的记录');
finally
qry1.Close;
end;楼主写的应该没问题。把你的sql语句贴出来看看
qry1.ExecSQL;//删掉
qry1.Open;
增、删、改:
qry1.ExecSQL;
qry1.Close;
qry1.Open;
delphi5:
打个ado补丁
qry1.Open;//对于SQL语句是SELECT时
qry1.Open
应该不能同时用,只能用一个
try
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
qry1.Open; listbox1.Clear;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
except
begin
qry1.ExecSQL;
showmessage('没有找到符合要求的记录');
end;
end;
finally
qry1.Close;
end;
主要就在while not qry1.Eof do这一句上。
我也遇到同样的问题。
qry1.Open;
if Qry1.Active then
Qry1.Close;//你在Fially里关了,但是并不表示其它的事件里没有打开。加上它。
qry1.SQL.Clear;
qry1.SQL.Add(s);//s为正确的sql语句
//qry1.ExecSQL; ->这个去掉
qry1.Open;
if qry1.RecordCount<>0 then//>0 改为 <> 0
begin
listbox1.Clear;
qry1.First;
while not qry1.Eof do
begin
listbox1.Items.Add(trim(qry1.FieldValues['fileno']));
qry1.Next;
end;
end
else
showmessage('没有找到符合要求的记录');
finally
qry1.Close;
end;
可能是sql语句由问题
qry1.close;
即可!