捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
DELPHI2007中一个DBEXPRESS中文兼容性问题的修改补丁
关键字:DELPHI2007 DBEXPRESS 中文兼容性 WideString
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2008/2/27
发布者:mstarsoft 发布时间:2008/3/2
编辑器:D2007 语  种:简体中文
分 类:组件 下载浏览:0/9551
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
文章抄自我的DELPHIBBS帖子,再次感谢小沈的帮忙.

运行环境是 D2007 + DBX4 (在D2006及以前版本里面 应该没有这个问题),问题很简单 自己写一个简单的项目 连接一个 MS SQL 2000 数据库 放上控件 TSQLConnection 和 TSQLQuery,首先在IDE环境里面给 TSQLQuery 的SQL 设置指令,这个指定包含有中文(无论是中文字段还是结果都可以)并且带有2个以上的参数 ,然后你去运行他,结果是OK的正常的.

问题是隐藏得比较深的哦,你尝试在命令(如响应某个BUTTON)里面用代码给 SQL 赋值,代码可以是跟前面一模一样的,然后去OPEN这个集合,问题出现了,会有提示
----------
Project1
----------
至少一个参数没有被指定值。
----------
确定  
----------

有趣的是,如果你在代码里面给SQL设置的指令并没有包含中文的话,就不会有任何问题了.

问题的根本原因是DELPHI在移植支持UNICODE过程中 代码存在BUG 解决方案是自己修改相关的控件代码 控件代码的路径是 D:\Program Files\CodeGear\RAD Studio\5.0\source\database\src\pas\dbx\vcl (安装的路径不同前面会不同)

打开文件 SqlExpr.pas 下面这个函数是做参数分配的

定位到FixParams函数, 修改下列参数的定义:
  Param, Start: string;
改成:
  Param, Start: WideString;
然后保存.

然后在你的工程项目里面 直接加入这个文件 重新编译 就可以解决这个问题了.
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论11条 当前显示最后6条评论
mstarsoft 2008/3/4 18:34:14
即使是最新的补丁也有这个问题的 我就感觉很奇怪 D2007出这么久了 这么都没有搜索到 有别人反馈这个问题 
原贴是 http://www.delphibbs.com/delphibbs/dispq.asp?lid=3873824
leonliu911 2008/3/4 20:00:09
仔细的看了重现过程,发现的确有这个问题,它在UP4上依然存在。

修改后编译生成的SqlExpr.dcu是169k,原版自带的是175k,不知道是怎么回事。

感谢楼主分享!
freetop 2008/3/5 23:32:39
好人一个。谢谢!
richit 2008/3/6 0:00:34
请问如何重新编译SQLexpr.pas啊
forjoylee 2008/3/15 21:30:15
把SQLexpr加载你的工程中就可以了
chenmfly 2008/6/20 17:10:38
还是搞不定....
麻烦发一个子详细的给我,,,chenmfly@126.com
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表