字段类型都是VARCHAR2 的~这样吧~我写个代码举例,这样可能比较容易理解例:var qry: TADOQuery;begin qry.close; qry.sql.clear; qry.sql.text:='select oper_name from T_manager' qry.open; //查询出来的数据这个时候显示'???' qry.Edit; qry.FieldByName('oper_name').AsString:='管理员'; qry.Post; //这样变更后,'oper_name'字段显示的就是“管理员”,这样变更或者提交的中文数据都是能够正确显示的。 //但是,以下的方法,变更后显示就又变成"???"了 qry.close; qry.sql.clear; qry.sql.text:='update T_manager set oper_name=''管理员'''; qry.execsql;end;我查了一些相关的资料,是因为我Oracle服务器端和客户端的字符集用的不一样么?可是我在注册表中查了一下,也都修改成AMERICAN_AMERICA.US7ASCII 了 啊?哪里还不对么?请有这方面经验的朋友帮下忙咯