DELPHI 查询 ACCESS 表时间精确到分钟时,SQL 语句在ACCESS的查询中运行正常,
可是在DELPHI中执行时总出错,请问各位有没有遇到过这种问题?
比如:
Select * From T_Orders Where (F_Date Between #2006-1-1 18:00:00# And #2006-2-1 18:00:00#) And (F_WorkerID=1)错误提示是: 不正常地定义参数对象。提供了不一致或不完整的信息。请各位帮帮忙,小弟谢过了

解决方案 »

  1.   

    双引号吧!也试过了,提示错误的数据类型!可能 SQL SERVER 里是用引号的
      

  2.   

    jinjazz(近身剪(充电中...)) ( ) 信誉:132  2006-02-05 13:38:00  得分: 0  
     
     
       用参数了
      
     
    您好,能不能告诉我用参数的代码怎么写,我试了一下,在VB中用参数很方便,在DELPHI里我还不会用,试了一下都错了,劳烦您指点一下。
      

  3.   

    Query1.SQL.Clear;
    Query1.SQL.Add('Select * From T_Orders Where (F_Date Between :p1 And :p2) And (F_WorkerID=1)');
    Query1.ParamByName('p1').AsDatetime:=StrToDateTime('2006-1-1 18:00:00');
    Query1.ParamByName('p2').AsDatetime:=StrToDateTime('2006-2-1 18:00:00');
    Query1.Close;
    Query1.Open;
      

  4.   

    参数的代码类似如下处理:query1.SQL.Text='Select * From T_Orders Where (F_Date Between :dtBegin And :dtEnd) And (F_WorkerID=1)';
    query1.ParamByName('dtBegin').AsString='2006-1-1 18:00:00';
    query1.ParamByName('dtEnd').AsString='2006-2-1 18:00:00';
    query1.Open;
      

  5.   

    楼上的是SQL server的写法吧,Access里时间两边要有#
      

  6.   

    Query1.SQL.Clear;
    Query1.SQL.Add('Select * From T_Orders Where (F_Date Between :p1 And :p2) And (F_WorkerID=1)');
    Query1.ParamByName('p1').AsDatetime:=StrToDateTime('2006-1-1 18:00:00');
    Query1.ParamByName('p2').AsDatetime:=StrToDateTime('2006-2-1 18:00:00');
    Query1.Close;
    Query1.Open;
    就是这样写就可以了用参数  ACCESS 和SQL  没有多大区别了
      

  7.   

    那如果用的是 DataSet 的话,参数要怎么传呢?