为什么相互矛盾的现象总缠着我?(字符串读写比较的问题)(100分)

  • 主题发起人 主题发起人 shouma
  • 开始时间 开始时间
我自己来顶。
 
还是要找出问题出在哪儿,调试跟踪是最有效的方法,
否则,谁也帮不了你
 
谢谢lich。
不知我是冥思苦想把脑袋想糊涂了,还是本来就笨,怎么就没想到在出问题的机子上安装Delphi,然后现场跟踪调试呢,真是的。我这就去试试。
 
哈哈,第2个问题已经解决了!谢谢各位的帮助,尤其是lich大侠。
我到出问题的机子上安装Delphi7.0,当看到安装MDAC2.7时,我已经预感到问题的症结可能就在此了。因此装完Delphi后,我立即运行自己的程序(原来编译好的出问题的exe程序),结果一切OK!
接着,立即将Delphi卸载!重起系统,再运行我自己的程序,仍然OK!所以应该是MDAC的问题了。
还有第1个问题没解决,会不会仍是MDAC的问题呢?
还望各位大侠帮忙!只要提过建议的都有分。
 
你传递的每个数据项的大小为100,
同时,编译器可能会进行字段对齐,默认对齐到8
所以,最好加上packed 选项,取消字段对齐
如果,对方也没有进行字段对齐,那就不好说了
你说,两个结构完全相同,一个能接受,而另一个不行,
建议你都用第一个结构传送数据,看还有没有问题
如果没有问题,可能和字段对齐有关
如果还有问题,可能是服务器端的结构定义有问题
 
谢谢lich的继续帮助。我准备试试加packed选项。
但“建议你都用第一个结构传送数据”却是不行的,因为诊疗就只能用诊疗的结构(TDiagInfo)来传送,服务设施就只能用服务设施的结构(TServiceItemInfo)来传送,这是由医保的接口定死了的。如果你的意思是用诊疗的结构来传送服务设施的内容(即:字段值),我倒是已经间接地试过了:将服务设施名称的字段值从汉字串改为英文字符串,就能够正常传递了。因此,如前所述,我暂时解决问题的怪招就是:在字段汉字串的两端各加上一个英文字符(我加的是 < > )。
 
我曾经作过三层,发来一份,也许能帮你调试。tchen3@hotmail.com
 
谢谢mormal的好意,但这好象不太可能:必须要和医保中心连通之后才能调试,你不具备该条件。
再次谢谢你。
 
散分了,感谢各位的帮助!每位都有分,lich大侠多些。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部