这样使用ADOQUERY有问题?(50分)

  • 主题发起人 主题发起人 hp_wang
  • 开始时间 开始时间
H

hp_wang

Unregistered / Unconfirmed
GUEST, unregistred user!
一、程序要求
ACCESS2000+ADO+DELPHI
打开FROM时候清空DKDW表。
然后点按钮打开DKDW表。
二、程序段
procedure Txsrbform.SpeedButton2Click(Sender: TObject);//按钮打开数据库
begin
dkdwquery.SQL.clear;
dkdwquery.SQL.add('select * from dkdw');
dkdwquery.open;
end;

procedure Txsrbform.FormActivate(Sender: TObject);//清空DKDW表
begin
with dkdwquery do
begin
sql.clear;
sql.add('delete from dkdw');
execsql;
end;
end;
三、错误与提示
当打开FROM时,执行正确DKDW表被清空,接着点按钮,就出现如下错误提示:
ACCESS VIOLATION ..........IN MODULE 'MSADO15.DLL',WRITE ADRESS.....
如果去掉清空DKDW表的事件,点按钮那么可以正常打开DKDW表。
四、请各位朋友帮忙,多谢!
 
在再次SQL.Add赋值以前必须关闭Query。
在SpeedButton事件中最前面添加
dkdwquery.Close
 
老兄,DELETE 是删除表,不是清空,表都没了,ADO当然报错了,清空是另一条语句
看看帮助,我也忘了
 
大哥,还是不幸啊!
错误依旧!!!!!
 
你不在FormActivate(Sender: TObject)中添加代码,看打开是否出错?
这样能够判断程序到底在那里出错.
 
cx139大哥:
DELETE FROM TABLENAME 是删除表中的数据,详见《SQL语句查询和应用》第154页。
 
yzhshi兄弟:
不在formActivate(Sender: TObject)中添加代码的话,运行没问题。
 
删除表是Drop Table TableName。
删除记录是Delete From TableName。
呵呵,当初我学习这些的时候也是这样,经常搞混,不过长了就好了。

对于这个程序,你可以设置断点,看确切在那里出错。
在程序上按F5设置断点。
 
那肯定是Query在没有关闭的时候进行Add 了,记住,在Clear以前Close掉Query!
 
我已经在按钮中使用DKDWQUERY.CLOSE了,可是问题错误提示依旧。
procedure Txsrbform.SpeedButton2Click(Sender: TObject);
begin
dkdwquery.close;
dkdwquery.SQL.clear;
dkdwquery.SQL.add('select * from dkdw');
dkdwquery.open;
end;
 
别让我的问题陪我过夜
别让我的机器一直余温
 
procedure Txsrbform.SpeedButton2Click(Sender: TObject);//按钮打开数据库
begin
with dkdwquery do
begin
close;
sql.clear;
sql.add('delete from dkdw');
execsql;
SQL.clear;
SQL.add('select * from dkdw');
open;
end;
end;
试试写在同一个事件中是否会出错?

 
坏了。
直接使用赋值语句实验一下吧。
AdoQyery.Text:='Select * from ...';

你这样写应该没错了。
AodQuery是否连接其他控件了,是否改变属性了。重新放置一个实验一下,我开始胡言乱语了。
不过最好是能够自己调试一下。

使用F7或者F8.首先按F5设置断点。
 
从新试过了,在同一个FORM里好象表清空后,不能马上打开。(推测)
快来帮我啊!!!!!!
 
对了,你的CatchUpdate是否打开了?
 
procedure Txsrbform.SpeedButton2Click(Sender: TObject);//按钮打开数据库
begin
dkdwquery.SQL.clear;
dkdwquery.SQL.add('select * from dkdw');
try
dkdwquery.open;
execept
dkdwquery.execsql;
end;
end;
试试这样,
你OPEN的时候没有数据,也会报错的
 
我不是很明白题目的意思,不过我还想说几句。
打开FORM就清空表为什么不在FORMCREATE里面写代码阿?formcreate不是最先触发的事件吗?
你试试在formcreate 里面写代码看看罗?

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
519
import
I
后退
顶部