本人最近碰到一个问题,请各位高手发表高见。delphi7+ado+oracle9i
本来是用的微软提供的OLEDB,但因为需要用到BLOB字段,只能改为ORACLE提供的OLEDB.以前没有任何问题,但改了之后出现问题了:(连接字符串'provider=oraoledb.oracle.1;password=kk;persist secruyte info=true;user id=kk;data source=k')
现在通过memo控件存入数据库的中文字符全成了问号。客户端与数据库的字符集是一样的。

解决方案 »

  1.   

    而且,在DELPHI中定义查询条件时,比如:SELECT * FROM KK WHERE MC LIKE '%会计%',无查询结果。但在PLSQL中作相同的查询是有符合条件的记录的。唯一的可能原因是delphi传递到数据库的字符不是“会计”这两个字了。
      

  2.   

    delphi使用ansi字符集,200N版本后好像改为unicode了,而oracle里则是unicode字符集,之间的中文转换需要自己来做
      

  3.   

    另delphi种的widestring是unicode字符
      

  4.   

    本来是用的微软提供的OLEDB,但因为需要用到BLOB字段,只能改为ORACLE提供的OLEDB
      

  5.   

    Oracle数据库不知道,但MS SQL中你的SQL语句要这样写:
    SELECT * FROM KK WHERE MC LIKE N'%会计%'