我用VB读取MYSQL时,发现读取出来的内容,只要有汉字在,就丢失一部分数据。由于本人是mysql初学者,查了半天,百思不得其解,希望各位帮忙看看。
在mysql图形界面和命令行界面全部显示正常,就在VB程序中显示出问题了。
字符集是 gb2312mysql代码如下
create table test
(bbb varchar(1000))
insert into test(bbb) values('中国'); /*只显示一个"中"*/
insert into test(bbb) values('123');/*没有中文,则显示正确*/
insert into test(bbb) values('123中国abc');/*显示不正确,丢了一些内容*/vb代码如下
Conn.ConnectionString = "DRIVER={MySQL Connector/ODBC v5}; SERVER={192.168.1.101}; PORT=3309;DATABASE=TT; UID=root; PASSWORD=1234; "
Conn.CursorLocation = adUseClient
Conn.ConnectionTimeout = 9999
Conn.Open
rs.Open "select * from test ", Conn, 1, 3
Do While Not rs.EOF
staa = rs.Fields(0)
Debug.Print rs.Fields(0)
rs.MoveNext
Loop
If rs.State = 1 Then rs.Close
if conn.state=1 then conn.close
set conn=nothing
在mysql图形界面和命令行界面全部显示正常,就在VB程序中显示出问题了。
字符集是 gb2312mysql代码如下
create table test
(bbb varchar(1000))
insert into test(bbb) values('中国'); /*只显示一个"中"*/
insert into test(bbb) values('123');/*没有中文,则显示正确*/
insert into test(bbb) values('123中国abc');/*显示不正确,丢了一些内容*/vb代码如下
Conn.ConnectionString = "DRIVER={MySQL Connector/ODBC v5}; SERVER={192.168.1.101}; PORT=3309;DATABASE=TT; UID=root; PASSWORD=1234; "
Conn.CursorLocation = adUseClient
Conn.ConnectionTimeout = 9999
Conn.Open
rs.Open "select * from test ", Conn, 1, 3
Do While Not rs.EOF
staa = rs.Fields(0)
Debug.Print rs.Fields(0)
rs.MoveNext
Loop
If rs.State = 1 Then rs.Close
if conn.state=1 then conn.close
set conn=nothing
character_set_connection gb2312
character_set_database gb2312
character_set_filesystem binary
character_set_results gb2312
character_set_server utf8
character_set_system utf8
character_sets_dir C:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\
character_set_client gb2312
character_set_connection gb2312
character_set_database gb2312
character_set_filesystem binary
character_set_results gb2312
character_set_server gb2312
character_set_system utf8
character_sets_dir C:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\