delphi ado连接Mysql添加数据出现问号?

Delphi小叮当 2012-11-21 09:54:03
我是用 delphi ADOConnection1 连接的mysql

手工再phpmyadmin中添加中文数据 一切正常

但是在delphi中添加就中文就出现 ???? 全是??


我的Mysql数据库和表名的 格式均是 gb2312_chinese_ci

数据库名称是 xdfdb 表名 是xdf_list

我是用 wamp5测试的

我添加数据的过程的代码是

var d:string;
s:string;
begin
//////showmessage(inttostr(combobox1.ItemIndex));
//d:=Date;
d:=getdate();
with DataModule2.adoquery1 do
begin
close;
sql.clear;
///sql.Add('SET NAMES GBK');
sql.add('insert into xdf_list (name,age,type,score,school,date,remark) values(:name,:age,:type,:score,:school,:date,:remark)');
parameters.paramByName('name').Value:=Edit1.Text;
parameters.paramByName('age').Value:=Edit2.Text;
parameters.paramByName('type').Value:= s;
parameters.paramByName('score').Value:=Edit3.Text;
parameters.paramByName('school').Value:=Edit4.Text;
parameters.paramByName('date').Value:=d;
parameters.paramByName('remark').Value:=Edit5.Text;
try
ExecSQL;
finally
Close;
end;
end;
end;



求解决办法~~~
...全文
132 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nm_wyh 2012-11-22
1、安装MySQL是使用GDK字符集。 2、在DELPHI连接MySQL的连接字符串: Provider=MSDASQL.1;Password=%s;Persist Security Info=True;User ID=root;Data Source=EMCDB;Initial Catalog=%s;charset=gb2312 主要是最后这个charset=gb2312作用。
回复
guojl 2012-11-21
我有个程序是连接php的,希望对你有用, procedure TFWebBrown.Button3Click(Sender: TObject);//这个是连接数据库的 begin try ADOConn.Close; ADOConn.ConnectionString:=('DRIVER={MySQL ODBC 3.51 Driver};'+ 'SERVER=12.255.231.47;'+ 'DATABASE=sb0;'+ 'USER=s40;'+ 'PASSWORD=3;'+ 'OPTION=3;'); ADOConn.Open; except application.MessageBox('无法连接数据库服务器.请与管理员联系','提示',MB_ICONINFORMATION); end ; ADOQuery1.Close(); ADOQuery1.SQL.Text := 'SET NAMES GB2312;'; ADOQuery1.ExecSQL(); //当将此句注释掉的话,存入数据库的内容变为乱码 ADOQuery1.Close(); ADOQuery1.SQL.Text := 'SET character_set_client = GB2312;'; ADOQuery1.ExecSQL(); //当将此句注释掉得话,从数据库中读取的内容为乱码 ADOQuery1.Close(); ADOQuery1.SQL.Text := 'SET character_set_results = GB2312;'; ADOQuery1.ExecSQL(); //当将此句注释掉的话,存入数据库的内容变为乱码 ADOQuery1.Close(); ADOQuery1.SQL.Text := 'SET character_set_connection = GB2312;'; ADOQuery1.ExecSQL(); end; 下面是返回记录的。 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from lady_article where id>700 order by id desc'); ADOQuery1.Open;
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2456

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2012-11-21 09:54
社区公告
暂无公告