mysql + odbc在insert 数据含有中文时,出错啊该如何处理
mysql + odbc在insert 数据含有中文时,出错啊!
第一次在bcb用mysql,通过odbc连接。
通过SQLyog可以插入中文,在bcb语句中可以插入英文数据,但如果是中文就出错:
提示是:Key violation
[MySQL]{ODBC 3.51 Driver][mysqld-5.0.18-nt]Data too long for colmun 'colname ' ar row 1.
以前在perl里也连过mysql啊,好像对中文还挺支持啊。难道我的C语句有问题:
AnsiString str;
str = " INSERT INTO tablejg ";
str += " (serial, title) ";
str += " VALUE (\ " ";
str += " aa\ ",\ "哈哈\ ") ";
Query1-> Close();
Query1-> SQL-> Clear();
Query1-> SQL-> Add(str);
Query1-> ExecSQL();
------解决方案--------------------
半月没来CSDN了...
你title是用 char 做吧,改用 varchar 试试吧.
我也有遇到你这种情况...原因不明 ~_~
另外你sql 的内容用 ' 就可以...不需要 \ " 这样
------解决方案--------------------
MySQL 的字符集改为 UTF-8,程序本身无所谓,只要你代码没有问题,我一直都这样做
第一次在bcb用mysql,通过odbc连接。
通过SQLyog可以插入中文,在bcb语句中可以插入英文数据,但如果是中文就出错:
提示是:Key violation
[MySQL]{ODBC 3.51 Driver][mysqld-5.0.18-nt]Data too long for colmun 'colname ' ar row 1.
以前在perl里也连过mysql啊,好像对中文还挺支持啊。难道我的C语句有问题:
AnsiString str;
str = " INSERT INTO tablejg ";
str += " (serial, title) ";
str += " VALUE (\ " ";
str += " aa\ ",\ "哈哈\ ") ";
Query1-> Close();
Query1-> SQL-> Clear();
Query1-> SQL-> Add(str);
Query1-> ExecSQL();
------解决方案--------------------
半月没来CSDN了...
你title是用 char 做吧,改用 varchar 试试吧.
我也有遇到你这种情况...原因不明 ~_~
另外你sql 的内容用 ' 就可以...不需要 \ " 这样
------解决方案--------------------
MySQL 的字符集改为 UTF-8,程序本身无所谓,只要你代码没有问题,我一直都这样做