会者不难,用applyupdate 无法保存数据(在线等待)(100分)

  • 主题发起人 主题发起人 55555
  • 开始时间 开始时间
5

55555

Unregistered / Unconfirmed
GUEST, unregistred user!
开发环境:delphi 7.0 ,数据库:sybase 12.5
应用服务器:COM+ ,ADO
现象:用applyupdate保存数据时,出现'Unable to resolve records. Table name not
found.',我在DatasetPrivoder的ongettablename事件中发现其tablename 始终为'',所以
它说表不存在,如果我直接把表名赋值给tablename,就能够保存成功
不知道是啥原因?望赐教
 
奇怪,事先有没有选择tablename?
或在代码里清空了tablename?
或还未连接好?
 
你的DatesetProvider连接了数据集了吗?
 
to wtopia:
事先有没有选择tablename? no
或在代码里清空了tablename?no
或还未连接好? 数据都在前台显示了呢
to Carson_zzd:
数据都在前台显示了呢,那肯定设置了的
 
对于DatasetProvider不能直接判断对应表名的数据集,需要在ongettablename中给TableName赋值。比如从存储过程、联接视图中返回的数据集。如果数据集有TableName中没有的数据字段(如视图中其他关联表中的字段),需要设定服务端的Dataset中对应字段的ProviderFlag属性为 not pfInupdate。
我也是前几天刚摸索出来的。
 
to chenglh:
我的表是后台数据实际存在(不是存储过程或视图),也没有什么计算字段等等
 
你的程序是三层的吗?
 
那当然是三层了
 
那你客户端用的Clientdataset的providername 有内容吗?
 
我想应该是你主键的问题,我也有一次程序的语法都没有问题就是不能提交,后来发现主键掉了,添加之后就可以了。
 
我在前台都显示了,provider里面肯定有内容
 
to Carson_zzd:
我用RDS作应用服务器,就能够保存
加主健,啥意思,怎么加呢?
 
的Dephi打补丁了吗?
 
delphi 7 出补丁了,在哪里下载呢?
 
应该不是补丁问题吧。Delphi5都可以做3层的,何况55555的问题好象不那么复杂...
反正你写OnGetTableName事件是可以的。索性就在OnGetTableName中设定好了,也许是Sybase数据库的特殊爱好呢。
 
我来学习一下.是不是连接超时了?
 
UpdateMode设为upWhereKeyOnly or upWhereChanged试试
 
我在beforeapplyupdate里面跟踪一下,我的ADOConnection都断开了,我把timeout 设了多大都不行,但是我是把keepconnection设置为true的,不知道为啥不能保存连接状态
 
ADOConnection的连接状态为可以保持为true,但是datasetprovider相对应的ADOQuery始终为False,不知道为啥
 
已经解决了,在ADOquery中将字段添加上就可以了
 

Similar threads

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