vc+odbc 往mysql(utf-8)数据库写入繁体字

saiyaman5 2009-06-25 08:45:38
数据库是utf-8编码

在ODBC里设置 SET NAMES GBK ,当遇到有些繁体字时就无法写入提示是

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ....

设置 SET NAMES utf8 当然也不行,直接提示

Incorrect string value: "\x96|\xB1\xB1\xEB\x8A..." for column "CN_SEC_ABNM_TC" at row 1


难道要在程序里把字符都编码成utf-8才能写吗?现在不想改程序,有什么简单的方法解决?
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
saiyaman5 2009-06-25
  • 打赏
  • 举报
回复
是的,繁体与简体混合的

我用ADO 试了一下:

spRst->Open("tt1",(IDispatch *)pMyConnect,ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdTable);

_bstr_t bsValue = L"中海集運";
spRst->AddNew();
spRst->Fields->GetItem("f1")->Value = bsValue;
spRst->Update();
spRst->Close();

pMyConnect 是用ODBC建立的,set names gbk
这样也不行


_bstr_t bsSql = "insert into tt1 values('中海集運')";
pMyConnect->Execute(bsSql,NULL,ADODB::adCmdText);

倒是可以

怎么可以让第一种方法也可以?

Conry 2009-06-25
  • 打赏
  • 举报
回复
你的是繁体跟简体一块的?那只能是unicode
saiyaman5 2009-06-25
  • 打赏
  • 举报
回复
有没有办法在不改程序和不改数据库字符集的前提下,只设置一些配置,比如数据库的connection
就可以解决?
fandh 2009-06-25
  • 打赏
  • 举报
回复
估计要改后才能写!
saiyaman5 2009-06-25
  • 打赏
  • 举报
回复
长度应该没有问题
fandh 2009-06-25
  • 打赏
  • 举报
回复
先查看繁体的字你用什么表示的?是否长度超过!
如果不是长度的问题,估计要转换的,如果不想改数据库的话!
saiyaman5 2009-06-25
  • 打赏
  • 举报
回复
up

4,011

社区成员

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

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