使用Delphi中的Ado组件访问Access数据库,sql语句是这么写的qrTempLocal.Close;
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < :BeginDate and HadPrintFlag <> 0';
qrTempLocal.Parameters.ParamByName('BeginDate').Value := strEndTime - iTimeOut / (24 * 60);
qrTempLocal.ExecSQL;在执行ExecSQL的时候,报错“不正常的定义参数对象。提供了不一致或不完整的信息”然后将Sql语句改为如下形式:qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < #' + DatetimeToStr(strEndTime - iTimeOut / (24 * 60)) + '# and HadPrintFlag <> 0';在执行ExcelSQL时,仍然报告同样的错误,让我百思不得其解。
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < :BeginDate and HadPrintFlag <> 0';
qrTempLocal.Parameters.ParamByName('BeginDate').Value := strEndTime - iTimeOut / (24 * 60);
qrTempLocal.ExecSQL;在执行ExecSQL的时候,报错“不正常的定义参数对象。提供了不一致或不完整的信息”然后将Sql语句改为如下形式:qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < #' + DatetimeToStr(strEndTime - iTimeOut / (24 * 60)) + '# and HadPrintFlag <> 0';在执行ExcelSQL时,仍然报告同样的错误,让我百思不得其解。
解决方案 »
- 谁来看看我的代码哪错了!
- 读取一款软件在硬盘上生成的的xml,不成功,原因是标识名称以数字打头,如何解决?
- 帮我看下,这种简单的文本传输,怎么实现最稳定.
- 如何将高低位的十六进制数据(如FE 3F)转为二进制,并且取后十位转为十进制?
- TList问题不解---看了很多CSDN过往的帖子
- 请各位大侠帮忙看一下我程序那儿出错!
- TIMAGE中的一些怪问题!
- 鼠标在应用程序的标题栏上双击,应用程序就最大化了,这是发生的是什么事件?
- 如何在bpl窗体中调用主窗体上的对象
- 窗体左边的导航栏如何实现?
- EhLib 从ini文件中恢复列的次序,宽度,可视 如何实现?
- SOS!如何从快捷方式中读取到这个可执行文件的“长文件名”
BeginDate:=strEndTime - iTimeOut / (24 * 60));
qrTempLocal.Close;
qrTempLocal.SQL.Text := 'delete from printlist where (Lis_date < '+BeginDate+') and (HadPrintFlag <> 0)';
qrTempLocal.ExecSQL;不过,不知道你BeginDate:=strEndTime - iTimeOut / (24 * 60));
计算得到什么类型的值,我提供给你的是按照FLOAT或者INT类型处理
var
EndTime: TDateTime;
begin
EndTime := Now;
qrTempLocal.Close;
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < :BeginDate and HadPrintFlag <> 0';
qrTempLocal.Parameters.ParamByName('BeginDate').Value := EndTime - 30 / (24 * 60);
qrTempLocal.ExecSQL;
end;
上面是那个函数的简化版,它的作用是定时删除半小时之前的数据。
1、
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < :BeginDate and HadPrintFlag <> 0';
qrTempLocal.Parameters.ParamByName('BeginDate').Value := strEndTime - iTimeOut / (24 * 60);
qrTempLocal.ExecSQL;
2、
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < #' + DatetimeToStr(strEndTime - iTimeOut / (24 * 60)) + '# and HadPrintFlag <> 0';
3、
qrTempLocal.SQL.Text := 'delete from printlist where Lis_date < ''' + DatetimeToStr(strEndTime - iTimeOut / (24 * 60)) + ''' and HadPrintFlag <> 0';其中前两种方式报告同样的错误。第三种方式根本就语法不正确,因为是access数据库。