如下一段代码,在同样的环境中出现2种不同结果,心头一阵猛烦...
Label10.Caption=Format(Now, "YYYY-M-D")
Adodc1.RecordSource = "select * from lgt01_psglist where flt_no =" + "'" + Text48.Text + "'" + "and" + " " + "flt_date =" + "'" + Label10.Caption + "'"
Adodc1.Refresh
在PC1上: 能正常工作,正确地显示Oracle数据库中符合Text48.text条件的当日的所有数据。
该代码一字不变地在PC2上运行:运行后提示“文字与字符串类型不匹配”,退出程序。
连接的是同一ORACLE数据库,运行的代码一字不变,PC系统时间值同为YYYY-M-D格式,为何有2种不同的结果。望那位大虾不吝赐教。

解决方案 »

  1.   

    PC1上运行确定正常,因为能按我的条件正确查找到所需要的数据。你所指的数据库引擎是否指我使用的ODBC数据源?
      

  2.   

    1、如果使用的是ODBC数据源的话,很可能与ODBC数据源配置有关;
    2、建议尽量避免使用ODBC数据源的DNS;
    3、您的代码中有些地方写的不规范,容易出现问题,如:
    Label10.Caption=Format(Now, "YYYY-M-D")
    应为:
    Label10.Caption=Format(Now, "YYYY-MM-DD")Adodc1.RecordSource = "select * from lgt01_psglist where flt_no =" + "'" + Text48.Text + "'" + "and" + " " + "flt_date =" + "'" + Label10.Caption + "'"
    应为:
    Adodc1.RecordSource = "select * from lgt01_psglist where flt_no =" & "'" & trim$(Text48.Text) & "'" & " and" & " " & "flt_date =" & "'" & trim$(Format(Label10.Caption, "YYYY-MM-DD")) & "'"  '注意[and]前应有个空格
    还可进一步:
    Adodc1.RecordSource = "select * from lgt01_psglist where flt_no ="'" & trim$(Text48.Text) & "' and flt_date ='" & trim$(Format(Label10.Caption, "YYYY-MM-DD")) & "'"
      

  3.   

    笔误:
    上面第2行应为:
    2、建议尽量避免使用ODBC数据源的DSN;
      

  4.   

    maxim(黑马) 兄:
    我的ORACLE数据库中flt_date字段时间格式为"YYYY-M-D",我取的系统时间值也应该相一致才行吧.
    我用了您的方法对SQL进行了改进,但是PC2上还是出现相同的现象.
    这不半夜起来又照着PC1的配置重新配置了2台PC机,其中:Oracle数据库,ODBC数据源,程序代码,系统时间值,甚至操作系统WindowsXp都是一样的了,结果PC3没成功,装PC4时又正常了,wokao.下边还有十几台机器等着要用.正如province_(雍昊) 老兄说的一样,半夜三更真TMD见鬼了!重来还没碰见过如此怪事,神啊,救救我吧!
    如果实在不行了,我想只能用克隆的方法不知道管不管用?
      

  5.   

    只有吧pc3上的系统 oracle 重新安装一 遍了....
      

  6.   

    '" + Label10.Caption + "'#" + Label10.Caption + "#