把oracle数据库中的一张表部分导出到access中 
使用了ADOCONNECTION控件,字符串指向ACCESS 
ADOConnection1.Connected:=true; 
  ADOConnection1.Execute('Select * into DBMCACCESS ' + 
  ' From DBMC in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=MC;PWD=MM;SERVER=SVR;] '+ 
  ' WHERE DATE1>=''2009-09-01'' '); 
报错了,报错为:标准表达式中数据类型不匹配,如果没带条件就又能成功导出 
请高手们帮忙 
ADOCONNECTION中的语句时间条件格式是怎样的写的

解决方案 »

  1.   

    DATE1是什么类型字段,你现在是把它当作字符型,如果是日期型,这么写就是错的
      

  2.   

    ADOConnection1.Connected:=true;
      ADOConnection1.Execute('Select * into DBMCACCESS ' +
      ' From DBMC in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=MC;PWD=MM;SERVER=SVR;] '+
      ' WHERE DATE1>=#2009-09-01# '); 
      

  3.   

    谢谢大家的帮忙,SmallHand的答案的正确的,谢谢大家
      

  4.   

    但我还想问一下,ADOConnection1.Execute中的语句是什么标准的啊
    比如说时间格式要用WHERE DATE1>=#2009-09-01# 
    也不是SQL的格式,也不是ORACLE的格式
    有知道的请说一下,谢谢
      

  5.   

    比如说时间格式要用WHERE DATE1>=#2009-09-01# 这是Access中的格式
      

  6.   

    但我还想问一下,ADOConnection1.Execute中的语句是什么标准的啊 
    我想再实现 (case when 字段1>0 then 时间1 else 时间2 end)>=#2009-09-01#
    字段1为数值型,时间1,时间2为日期型
    ADOConnection1.Execute()中不支持这种写法,这应该怎样写,高手请帮忙
      

  7.   

    但我还想问一下,ADOConnection1.Execute中的语句是什么标准的啊 
    我想再实现 (case when 字段1>0 then 时间1 else 时间2 end)>=#2009-09-01# 
    字段1为数值型,时间1,时间2为日期型 
    ADOConnection1.Execute()中不支持这种写法,这应该怎样写,高手请帮忙
    用了oracle的函数decode,也不支持,高手们帮帮忙
      

  8.   

    但我还想问一下,ADOConnection1.Execute中的语句是什么标准的啊 
    我想再实现 (case when 字段1>0 then 时间1 else 时间2 end)>=#2009-09-01# 
    字段1为数值型,时间1,时间2为日期型 
    ADOConnection1.Execute()中不支持这种写法,这应该怎样写,高手请帮忙 
    用了oracle的函数decode,也不支持,高手们帮帮忙