Microsoft和Oracle分别提供了Delphi用ADO方式连接Oracle数据库的驱动程序,但它们似乎各有差异,本人在实际操作中遇到以下问题,望大家能帮忙解决。
1、Microsoft提供的驱动Microsoft OLE DB Provider for Oracle能很好的处理中文等,但不能操作BLOB等类型字段;
2、Oracle提供的驱动Oracle Provider for OLE DB能操作BLOB等类型字段,但对中文的处理却似乎不太令人满意,当用“Insert Into ...”语句插入或“Update ...”语句更改数据时,中文数据将变成“????”字符,不能正常显示,但用“AdoQuery1.Insert ... AdoQuery1.Post”或“AdoQuery1.Edit ... AdoQuery1.Post”却完全正确。
因为程序设计中文和LO数据库服务器和客户端的字符集都是“AMERICAN_AMERICA.US7ASCII”,

解决方案 »

  1.   

    不好意思,下面是原文补充:
    Microsoft和Oracle分别提供了Delphi用ADO方式连接Oracle数据库的驱动程序,但它们似乎各有差异,本人在实际操作中遇到以下问题,望大家能帮忙解决。
    1、Microsoft提供的驱动Microsoft OLE DB Provider for Oracle能很好的处理中文等,但不能操作BLOB等类型字段;
    2、Oracle提供的驱动Oracle Provider for OLE DB能操作BLOB等类型字段,但对中文的处理却似乎不太令人满意,当用“Insert Into ...”语句插入或“Update ...”语句更改数据时,中文数据将变成“????”字符,不能正常显示,但用“AdoQuery1.Insert ... AdoQuery1.Post”或“AdoQuery1.Edit ... AdoQuery1.Post”却完全正确。
    因为程序涉及中文和BLOB字段的处理,所以选其中任何一个均出现问题,数据库服务器和客户端的字符集都是“AMERICAN_AMERICA.US7ASCII”,数据库服务器的字符集不能更改。
    请问大家这个问题如何解决?