使用环境是Delphi7 + sqlconnection + sqldataset + dbxopenmysql50.dll + mysql5.0
sqldataset1.CommandText:='SELECT * FROM test WHERE (sta=:abc)';
sqldataset1.ParamByName('abc').AsString :=str1;
sqldataset1.Active:=true;
sqldataset1.Open ;
以上在连接mysql的时候会提示:
有哪位知道该怎么办吗?
sqldataset1.CommandText:='SELECT * FROM test WHERE (sta=:abc)';
sqldataset1.ParamByName('abc').AsString :=str1;
sqldataset1.Active:=true;
sqldataset1.Open ;
以上在连接mysql的时候会提示:
有哪位知道该怎么办吗?
解决方案 »
- 在datasnap应用中,是一个100客户端对一个应用服务端口好,还是100客户端对多个端口好?
- 悲剧呀
- Delphi与SQL的文件存取问题
- 有什么办法让我的程序直接运行时起不来,让我另外的一个程序调用时能起来啊,2个都是exe
- 在线等待!查询条件有四个,但是在查询是任意的组合都想查询出结果,请问怎么写SQL语句?
- 紧急求救.关于POST事件的执行
- 如何将dxdbgrid中显示的信息导出到excel里?(在线)
- 求一段代码用来去除HTML文件里的<XXXX>标签,只留文字部分!谢谢!
- Corba Data Moudle中定义接口方法,如何在客户端调用?
- 请问大家用delphi都做过哪些软件呢?能否提供下载以便欣赏呢?(无源码也可)
- 分分分
- 有谁做过delphi与java交互的。遇到一个看似简单的问题....
没有找到合适的用法啊
sqldataset1.Active:=false;
sqldataset1.CommandText:='SELECT * FROM test WHERE sta='+#39+str1+#39';
sqldataset1.Active:=true;
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | gb2312_chinese_ci |
| collation_server | gb2312_chinese_ci |
+----------------------+-------------------+
这是数据库的设置,collation_connection改了一下午怎么都改不成gb2312
将上句改成如下试试:(MS SQL是可以的)
sqldataset1.CommandText := 'SELECT * FROM test WHERE sta = :abc collate database_default ';
(1)mysql以utf8默认字符启动,以下查询语句可以正确执行(返回的条目数量是正确的),但是select返回的中文字符全部都是乱码
sqldataset1.CommandText:='SELECT * FROM test WHERE (sta= _utf8 :abc COLLATE utf8_unicode_ci)';
result:=Form1.sqldataset1.Fields.Fields[0].AsString;(2)mysql以gb2312默认字符启动,以下查询语句可以运行通过但是返回条数为0(查询结果不正确),select返回的中文字符还是乱码
sqldataset1.CommandText:='SELECT * FROM test WHERE (sta= _utf8 :abc COLLATE utf8_unicode_ci)';
result:=Form1.sqldataset1.Fields.Fields[0].AsString;还是不成功
还是改字符集吧,改配置文件,用命令,不可能改不成功的MYSQL 字符集问题
MySQL的字符集支持(Character Set Support)有两个方面:
字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。服务器端的,客户端的都改,不行每个表也改字符集,最终肯定是可以正确显示中文的
不是D7的问题,你的MySQL字符集的设置问题,11楼已经说得很明白啦
SQ.SQL.text := 'set names gb2312';
sqldataset1.CommandText:='SELECT * FROM test WHERE (sta=:abc)'; //语句
sqldataset1.Active:=true; // 打开sqldataset1.ParamByName('abc').AsString :=str1; //再修改