delphi2009 unicode问题

csdyyr 2009-03-31 11:12:56
环境:xp+sp2 繁体+delphi2009+sql server 2005

操作:
//COL 为 nvarchar(30); "名称"为简体字
ADOQuery1.SQL.Text := ' UPDATE TABLENAME SET COL=''名称'' '+
' WHERE ID=7';
ADOQuery1.ExecSQL;

执行后,数据库对应的COL='名?', 即出现了乱码,请问怎么解决?谢谢!
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
TButton 2009-03-31
  • 打赏
  • 举报
回复
关注

csdyyr 2009-03-31
  • 打赏
  • 举报
回复
解决了。
两个系统所连接的数据库不同,排序规则不同,改为Chinese_PRC_CI_AI就可以了。不用再加N。
luxuewei5214 2009-03-31
  • 打赏
  • 举报
回复
先把text的值赋给一个AnsiString变量,在把变量赋给sql.text试试,可能是unicode导致的
csdyyr 2009-03-31
  • 打赏
  • 举报
回复
//在名称前加N可以解决
COL=N''名称''

不过情况是这样的:

繁体XP+delphi2009+sql server 2005:
1,编译在 XP简体 + Delphi6 开发的系统,在我给出的例子没有出现乱码。
2,编译在 2K繁体 + Delphi6 开发的系统,出现了乱码(加N可以解决)。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧