procedure TForm_guanli.Button4Click(Sender: TObject);
begin
if MessageDlg('您的操作将删除所指定时间内所有记录,建议先导出数据。您确定删除吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with datam.kq_quy do
begin
close;
sql.clear;
sql.add('delete from windchankq');
sql.add('where in_time between :ada and :adz or out_time between :ada and :adz');
parambyname('ada').asDatetime:=datetimepicker1.datetime;
parambyname('adz').asDatetime:=datetimepicker2.datetime;
prepare;
RequestLive:=true;
Active:=true;
edit;
post;
application.MessageBox('数据修改成功!','提示框');
refresh;;end;
end;
end;"error creating cursor handle"大家帮我看看,怎么会有这个错误?请指正。
begin
if MessageDlg('您的操作将删除所指定时间内所有记录,建议先导出数据。您确定删除吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with datam.kq_quy do
begin
close;
sql.clear;
sql.add('delete from windchankq');
sql.add('where in_time between :ada and :adz or out_time between :ada and :adz');
parambyname('ada').asDatetime:=datetimepicker1.datetime;
parambyname('adz').asDatetime:=datetimepicker2.datetime;
prepare;
RequestLive:=true;
Active:=true;
edit;
post;
application.MessageBox('数据修改成功!','提示框');
refresh;;end;
end;
end;"error creating cursor handle"大家帮我看看,怎么会有这个错误?请指正。
sql.add('delete from windchankq');
与
sql.add('where in_time between :ada and :adz or out_time between :ada and :adz');
之间少了一个空格。其间应加一句:
sql.add(' ');
Active:=true;
//当执行Update, Insert语句时,请使用ExecSQL,如:
Query1.ExecSQL;不要使用Open(Active := True)这样的语句,它的操作结果虽然也成功,但是会出现你碰到那样的信息!!还有,这个问题以前问过N多次~~~
http://www.csdn.net/Expert/TopicView1.asp?id=1017938
是不是像下面这样,要不要EDIT、POST、REFRESH了
********************************************procedure TForm_guanli.Button4Click(Sender: TObject);
begin
if MessageDlg('您的操作将删除所指定时间内所有记录,建议先导出数据。您确定删除吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with datam.kq_quy do
begin
close;
sql.clear;
sql.add('delete from windchankq');
sql.add('where in_time between :ada and :adz or out_time between :ada and :adz');
parambyname('ada').asDatetime:=datetimepicker1.datetime;
parambyname('adz').asDatetime:=datetimepicker2.datetime;
prepare;
Query1.ExecSQL;
application.MessageBox('数据修改成功!','提示框');
refresh;;end;
end;
end;
procedure TForm_guanli.Button4Click(Sender: TObject);
begin
if MessageDlg('您的操作将删除所指定时间内所有记录,建议先导出数据。您确定删除吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with datam.kq_quy do
begin
close;
sql.clear;
sql.add('delete from windchankq');
sql.add('where in_time between :ada and :adz or out_timebetween :ada and :adz');
parambyname('ada').asDatetime:=datetimepicker1.datetime;
parambyname('adz').asDatetime:=datetimepicker2.datetime;
prepare;
ExecSql;//delete操作不能返回结果集!只能用ExecSql
SQL.Text:='Select * from indchankq';
Open
application.MessageBox('数据修改成功!','提示框');
end;
end;
end;
//用TADOQuery,TQuery时只有当用到有返回结果集的SQL语句时,才能用Open或
//Active:=True;否则只能用ExecSql方法
这里应使用OPEN或ACTIVE := TRUE 操作,
而其它如DELETE,UPDATE,INSERT INTO 等等都不需要返回数据集,
需要使用EXECSQL操作,如果这种情况下使用OPEN则会出现像你遇到的这种错误提示,所以在你的语句在使用了Active:=true;而后更有EDIT、POST这些操作,当然要出错了!
你执行的不是Select操作,应该是用ExecSql