update中文字段更新mysql数据库后不显示中文的内容

时间:2022-06-01 22:14:37
环境:pb9.0
数据库:mysql 5.0
表名称:userinfo 中有一字段name,类型为varchar,字符集是:utf8
用odbc 链接: ODBC 5.2w Driver
代码1:
string s_name
s_name = 'mysql测试'
UPDATE userinfo
SET name = :s_name
USING SQLCA;
此时数据库中name的值是:mysql
代码2:
UPDATE userinfo
SET name = 'mysql测试'
USING SQLCA;
此时数据库中name的值是:mysql测试
数据窗口 能正确显示中文
问:是不是odbc数据源配置不对?应如何配置? 谢谢
目前的配置是:
Ingore Space After Function Names复选框上打勾
在Initial Statement中输入的是:SET CHARACTER SET UTF8

4 个解决方案

#1


第一次有木有commit:

#2


问题解决了:
在配置odbc数据源时将
Prepare statements on the client 打勾

#3


我完整的做法是:

pb+mysql+odbc
1.mysql配置:
进入你的mysql安装目录,找到my.ini,在该文件中增加如下字段并重新启动mysql
My.ini代码  
[mysql]   
default-character-set=utf8    
[mysqld]   
default-character-set=utf8  
2.odbc配置
enable dynamic cursors 打勾(启用动态游标)
ignore space after function names 打勾
Prepare statements on the client 打勾(不打勾无法在PB中保存中文)
3.Pb配置
进入tools->database profiles->odbc段中:Driver-Specific 
Parameters:OPTION=136168;CHARSET=GBK (其中的option=136168是mysql专门为powerbuilder提供的优化参数;这里的charset一定要使用gbk而不能使用utf8,不然还是会出现乱码情况。若不设置CHARSET,则会出现【SQLSTATE=22018】的错误,此字符集在odbc中配置也可以)

#4


上面很多信息来源网络
但是 option=136168(135168)不知道是那个参数(因为文字描述写option=136168,但是图片演示是:option=135168)

#1


第一次有木有commit:

#2


问题解决了:
在配置odbc数据源时将
Prepare statements on the client 打勾

#3


我完整的做法是:

pb+mysql+odbc
1.mysql配置:
进入你的mysql安装目录,找到my.ini,在该文件中增加如下字段并重新启动mysql
My.ini代码  
[mysql]   
default-character-set=utf8    
[mysqld]   
default-character-set=utf8  
2.odbc配置
enable dynamic cursors 打勾(启用动态游标)
ignore space after function names 打勾
Prepare statements on the client 打勾(不打勾无法在PB中保存中文)
3.Pb配置
进入tools->database profiles->odbc段中:Driver-Specific 
Parameters:OPTION=136168;CHARSET=GBK (其中的option=136168是mysql专门为powerbuilder提供的优化参数;这里的charset一定要使用gbk而不能使用utf8,不然还是会出现乱码情况。若不设置CHARSET,则会出现【SQLSTATE=22018】的错误,此字符集在odbc中配置也可以)

#4


上面很多信息来源网络
但是 option=136168(135168)不知道是那个参数(因为文字描述写option=136168,但是图片演示是:option=135168)