我也用可是很快啊不是delphi 的问题吧。
解决方案 »
- HotKeyManager 在 Delphi 2007 下使用遇到问题!
- 问两个sql server考试题目(明天要交卷了,还做不出来,急急急)
- 调用winrar的控制台
- COM的难题:如何保证COM实例的唯一性!(分以后还加!暂时没有喽)
- 我设计了个简单试验来验证com 系统如何启动不同apartment类型的进程外com服务器来响应不同的client调用
- 关于TStringGrid的一个问题,多谢了
- 紧急!
- 怎样通过发消息的方法在文本框中插入一个汉字,而不覆盖以有字符串?
- Office XP 效果的菜单
- 谁用delphi作过教学软件--硬件的?报名均有分。
- *******安装程序为什么搞不定********送分
- DLL中OLE的问题(Delphi)
把代码paste上
procedure Tdelchargedata.Button1Click(Sender: TObject);
begin
if maskedit1.text<>'' then
begin
query1.close;
query1.sql.Clear;
query1.sql.Add('delete * from 收费记录 where 截止日期<:datatime');
query1.Params[0].asstring:=maskedit1.Text;
if messagedlg('你确信要删除这些数据,它们将是不可恢复的!',mtconfirmation,
[mbyes,mbno],0)=mryes then
begin
query1.prepare;
query1.open;
query1.Active:=true;
end;
end
else
showmessage('你不能输入空的时间呀!');
end;
一执行就出现sql的光标,然后程序就死了。最可气的是,最后出现了:.....error creating cursor handle....但此时数据库的数据却已经删除了。不知道为什么提示有此错误。还请各位帮我分析分析。
query1.prepare;
query1.open; //这有问题
query1.Active:=true; //使用Execute
end;
原因:
delete 是无结果集语句,可是你使用Open 方法,却
是要一个结果集的,这是就无法定位游标了(服务器游标或者客户端游标都不行)其实,你只要看一看帮助就行了:
DescriptionCall ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
begin
if maskedit1.text<>'' then
begin
query1.close;
query1.sql.Clear;
query1.sql.Add('delete * from 收费记录 where 截止日期<:datatime');
query1.Params[0].asstring:=maskedit1.Text;
if messagedlg('你确信要删除这些数据,它们将是不可恢复的!',mtconfirmation,
[mbyes,mbno],0)=mryes then
begin
query1.exesql;
end;
end
else
showmessage('你不能输入空的时间呀!');
end;另外database要建索引
1。不要将数据库OPEN 或ACTIVE:=TRUE;
2。要用QUERY1。EXESQL,不是query1.open
3.如果用PREPARE,执行好以后再使用UNPREPARE