插入更新数据时中文显示不完整 用adoquery插入更新数据后,怎么中文的老是只显示前面一两个,有的还显示不出来,而英语多少都行啊,我的数据库是sql server 2000的,请问各位大侠怎么解决. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、首先确定表字段的长度是够的2、设置如:adoquery1.FieldByName('fieldName').Size3、如果上面两个都不行,那可能是SQL不支持中文 字段长度不是在数据库里设置的吗?直接在数据库里写中文都可以,可用adoquery插入更新数据就不行,难道没有谁遇到和我同样的问题?????解决不了就全部用英文好了^_^ 首先,你要确保SQL SERVER7安装时所安装的字符集正确。否则,SQL SERVER 2000只有重新安装了。对于这个问题,我得出的结论是由于DELPHI7 和SQL SERVER 2000所采用的编码方式不相同。SQL SERVER 采用的是UNICODE编码方式,而DELPHI采用的是ANSI方式。所以在有汉字数据更新时,就会使得汉字更新不完全,这种情况一般发生存储过程中。所以在应用服务器的DATA MODULE 的存储过程的BeforeExecute事件中加入:procedure TAppServer.DSPStoredProcBeforeExecute(Sender: TObject; var OwnerData: OleVariant);begin ADOStoredProc1.Parameters.ParamByName('@UserName').Size := Length(ADOStoredProc1.Parameters.ParamByName('@UserName').Value)+1;end;这样就没问题了。 应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!! 应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!! 应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!! 高手帮帮啊,散分了。 用了开源的播放,如何播放网络文件 编软件去除照片的背景图像 寻求BDE转化为DBEXPRESS的最佳方案 敢问如何用winsock api在delphi中实现发送smtp验证邮件??我找了好多资料都没搞到!100分 现在的共享软件是怎么实现用户注册的? MDI的主窗体是否必须是应用程序的主窗体? 怎么刷新,删除? 帮帮我吗 *.DBF表中的資料怎樣在Delphi6中清除 socket如何发送结构体数据::: 在delphi 7中有没类似static的静态方法?
2、设置如:adoquery1.FieldByName('fieldName').Size
3、如果上面两个都不行,那可能是SQL不支持中文
对于这个问题,我得出的结论是由于DELPHI7 和SQL SERVER 2000所采用的编码方式不相同。SQL SERVER 采用的是UNICODE编码方式,而DELPHI采用的是ANSI
方式。所以在有汉字数据更新时,就会使得汉字更新不完全,这种情况一般发生存储过程中。
所以在应用服务器的DATA MODULE 的存储过程的BeforeExecute事件中加入:
procedure TAppServer.DSPStoredProcBeforeExecute(Sender: TObject;
var OwnerData: OleVariant);
begin
ADOStoredProc1.Parameters.ParamByName('@UserName').Size := Length(ADOStoredProc1.Parameters.ParamByName('@UserName').Value)+1;
end;
这样就没问题了。