vb显示MYSQL数据库中的中文数据乱码的问题.
请教各位高手,我的数据库是MYSQL5免安装版本的.
在命令行中运行结果如下所示:
mysql> set names 'gb2312';
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'character_set_%';
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | gb2312 |
| character_set_connection | gb2312 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gb2312 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | E:\mysql\share\charsets\ |
+--------------------------+--------------------------+
8 rows in set (0.00 sec)
mysql> select * from postural1.aa;
+----+--------+--------+
| id | field1 | field2 |
+----+--------+--------+
| 1 | 娄 | 能仓 |
+----+--------+--------+
1 row in set (0.00 sec)
显示正常,但是在VB6程序里的代码如下:
Dim cnn1 As ADODB.Connection
Dim ADOError As Error
Dim rstEmployees As ADODB.Recordset
Dim strSel As String
strSel = "select * from aa"
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "driver=MySQL Connector/ODBC v5;" & _
"server=127.0.0.1;" & _
"database=postural1;" & _
"uid=root;" & _
"pwd="
'加上这句记录才能用MOVELASE移动记录
cnn1.CursorLocation = adUseClient
cnn1.Open strCnn
cnn1.Execute ("SET NAMES 'gb2312'")
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
'打开记录集的方法1
rstEmployees.Open "aa", cnn1, , , adCmdTable
Dim i As Long
rstEmployees.MoveLast
i = rstEmployees.RecordCount
'关闭记录和连接
rstEmployees.Close
cnn1.Close
Set rstEmployees = Nothing
Set cnn1 = Nothing
执行结果如下:
?rstEmployees(0) rstEmployees(1) rstEmployees(2)
1 | ?????
请问各位是什么原因?
搜索更多相关主题的帖子:
数据库 MYSQL 乱码 中文