我用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

解决方案 »

  1.   

    mysql数据库的字符集也是gb2312不?要保持两个一致的
      

  2.   

    是的,你看下面字符设置,是否正确?character_set_client gb2312
    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\\
      

  3.   

    修改了my.ini后,显示如下。
    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\\
      

  4.   

    解决了,原来是MYSQL ODBC的问题,原来的是 5.0,换成5.1就没问题了。