DELPHI5 中 ADO 控件的怪现象(200分)

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

lq_yao

Unregistered / Unconfirmed
GUEST, unregistred user!
如下:
tadodataset.commandtype:=cmdtext;
tadodataset.text:='select * from person join depart
on person.sec=depart.sec';
如果调用tadodataset.delete将会把 person,depart两个表中的
相应记录删除。
如果在BDE中调用delete 好像只会删除person表(主表)中相应记录,
想要删除俩个表必须用tupdatesql。
如何在ado控件中控制在删除时只删除主表(或者指定的表)?

在微软的ado帮助中有一个项:
ADO 动态属性:Unique Table、Unique Schema、Unique Catalog

我想如果把它加入tadodataset的属性中就可以实现了,谁可以帮帮俺
先谢了!!!!!!!!!!!!!!

解释如下:
使用户能够直接控制在通过对多个基本表执行 JOIN 操所得到的 Recordset 中的特定基本表的修改。

Unique Table 指定一个允许进行更新、插入和删除的基本表的名称。


Unique Schema 指定模式,即表的所有者的名称。


Unique Catalog 指定目录,即包含表的数据库的名称。
设置和返回值

设置或返回字符串值,该值是表、模式或目录的名称。

说明

所要的基本表通过其目录、模式和表名唯一标识。设置 Unique Table 属性后,可使用 Unique Schema 或 Unique Catalog 属性的值查找基本表。在设置 Unique Table 属性之前需要设置 Unique Schema 和 Unique Catalog 属性的其中一个属性或同时设置两个属性,但这不是必须的。

Unique Table 的主键被用作整个 Recordset 的主键。该键可用于任何需要主键的方法。

设置 Unique Table 后,AddNew、Delete、Resync、Update 和 UpdateBatch 方法只能影响到所命名的表。

如果找不到唯一的基本表,将出现运行时错误。

当把 CursorLocation 属性设置为 adUseClient 时,这些动态属性均被追加到 Recordset 对象的 Properties 集合中。

 
TCustomADODataSet.Properties

Use of Properties to directly access the underlying ADO Properties Collection
object requires a good working knowledge of ADO objects in general and ADO
Properties Collection objects in specific. Consult the Microsoft Data Store SDK
help for specific information on using ADO Properties Collection objects.
 
Another_eYes:
帮帮忙,请说具体点
 
TO: Another_eYes
Microsoft Data Store SDK 在那可弄到?
 
adodataset1.CursorLocation:=clUseClient;
adodataset1.Open;
adodataset1.Recordset.Properties['Unique Table'].Value:='person';
adodataset1.Delete;
 
谢谢 Another_eYes ,温柔一刀!!!
 
俺好后悔,没问清楚:
TCustomADODataSet.Properties 好象只对DELTE 起作用,
而对UPDATE,INSERT 没效。
 
>>俺好后悔,没问清楚

你应该后悔使用ADO,而不是后悔没问清楚,
微软的ADO的Properties对insert和update的作用还没实现,
你上了M$的当,等待ADO 3.0之类的吧!

我才后悔回答你的问题,竟然只得一半分数 :-)
 
M$这家伙太不诚实,不能实现的功能还明明白白写在帮助文档里,浪费大家的时间。
咱们是不是应该找个地方控告它。
再次感谢温柔一刀的帮助!
 
后退
顶部