我们以前做过一个软件,部分客户需要access本地,部分需要网络,使用sql server,我们的解决方法是使用ado,在具体写sql时,我们用了个变量来识别是单机还是网络版,如下:
if bLocal then
  szSql:='select * from t1 where mydate > #2002-6-24#';
else
  select * from t1 where mydate > '2002-6-24'
adodataset.commandtext:=szSql;

解决方案 »

  1.   

    在Oracle中用TO_DATE转换日期,在SqlServer中用Convert函数,这又该怎么办呢?
      

  2.   

    推荐ado!!!!!!!
    推荐ado!!!!!!!
    推荐ado!!!!!!!
      

  3.   

    to: lyhold(让你飞) 用ADO就不用区分#和'了吗?!!
      

  4.   

    没办法呀!从头开始有个全局变量来判断是access和sql server
    或者将日期型改为10位的字符串型。
      

  5.   

    仅适用于Access2000以上版本的数据库用Access2002打开数据库,在选项中选择查询格式为ANSI92,保存并关闭
      

  6.   

    to: jiangsheng(蒋晟.Net) 我按你的方法试了,但是还是不行呀。
      

  7.   

    把#2002-6-24#这段加到string里  根据数据库不同处理一下吧
      

  8.   

    把#2002-6-24#这段加到string里  根据数据库不同处理一下吧
      

  9.   

    把#2002-6-24#这段加到string里  根据数据库不同处理一下吧
      

  10.   

    select * from t1 where mydate > :FDate
    ParamByName('FDate').asDateTime:=StrToDate('2002-6-24')
      

  11.   

    实在不行,你可以用条件编译,例如
    const
    {$IFDEF ACCESS}
      DIVIDOR='#'
    {$ELSE}
      DIVIDOR=''''
    {$ENDIF}(select * from t1 where mydate > '+DIVIDOR+'2002-6-24'+DIVIDOR+'),