您可能没有遇到过的问题:(100分)

  • 主题发起人 主题发起人 lodgue
  • 开始时间 开始时间
L

lodgue

Unregistered / Unconfirmed
GUEST, unregistred user!
利用dbgrid自动将数据更新到clientdataset时,有时会出问题:
问题如下:
后台服务器:adoconnection+adoQuery+DataSetProvider
前台为:DComConnection+ClientDataSet+DataSource+DBGrid.
数据库为:access97.表中有两个字段为a,b,类型为:string;
a录入的数据为数字:01,02,...99等. b录入字母
我在dbgrid中更新时,
1.如果将a的值01改为03数据,然后移到下一条时,
数据能够更新到ClientDataSet的Data(该字段的oldValue=修改前的值,
newValue=修改后的值)中, 但是访问Delta时却提示为空.这样我就不能
更新到后台服务器中.
2.如果将a的值01改为11数据,数据能够在Delta中出现.
注意:
在1的情况下,如果不访问Delta,没有任何提示.
在1,2中都能够激活ClientDataSet的beforepost和afterpost事件
我想和logChanges参数设置没有多大关系,因为有时能够更新过区.(
在改b时,能够正常post).
 
我知道了问题的答案:
时使用TWideStringField的缘故.改为TStringField便没事了
 
加一些注意事项:
1. c/s使用TWideStringField没问题.
2. 有些数据库只有WideString类型如Accesss97中的文本类型,那您没有办法,
只有换数据库.
 
s收到
谢谢
 
关注,不过程云的问题中也涉及了这个WideString类型,哪里有解决的方法,不过不是非常的
好,只是一个解决的方法
 
多人接受答案了。
 
后退
顶部