如题
VB6+MSSQL+ADO多个基本表关联只更新其中一个表,我按帮助说的做百做不灵,把其他表也更新了,请教高手。

解决方案 »

  1.   

    Unique Table、Unique Schema 和 Unique Catalog 动态属性 (ADO)
    使用户能够进一步控制对通过在多个基本表上执行 JOIN 操作所得到的 Recordset 中的特定基本表的修改。 Unique Table 指定允许进行更新、插入和删除的基本表的名称。 
    Unique Schema 指定表的所有者的“模式”或名称。 
    Unique Catalog 指定包含该表的数据库的“目录”或名称。
      

  2.   

    你的C盘下有ADO帮助文件,这以ADO为关键字去找我不清楚你想完成什么功能,但是至少这3个属性我是基本不使用的
      

  3.   

    谢谢能回答我的问题!!
    帮助文件我有,问题是这样的:
    有两的基本表(表a、表b),表a中有表b的索引字段,表a与表b左关联(LEFT OUTER JOIN)以显示表b中的内容,代码如下:
        Dim db As New ADODB.Connection 
        Dim SQL as string
        Dim rs As New ADODB.Recordset    db.ConnectionString = "Provider=SQLOLEDB; Password=" & dbPwd & ";Persist Security Info=True;User ID=" & dbUseName & ";Initial Catalog= ZBYS ;Data Source=" & ServerName     db.Open    SQL="select table_A.tabA_ID, table_A.r_Name, table_B.Area_Name, 
             table_A.tabB_ID
        from table_A LEFT OUTER JOIN
          table_B ON table_A.TabB_ID = table_B.TabB_ID"    rs.CursorLocation = adUseClient 
        rs.ActiveConnection = db
        rs.ActiveCommand =SQL
        rs.LockType = adLockBatchOptimistic
        rs.CursorType = adOpenKeyset    rs.Properties.Item("Unique Schema").Value = "dbo" 
        rs.Properties.Item("Unique Catalog").Value = "ZBYS"
        rs.Properties.Item("Unique Table").Value = "table_A"
        rs.Open当用户填写(选择)table_B.Area_Name后,我只要将table_B.Area_Name对应的table_B.TabB_ID写入table_A即可,ADO的帮助文件说,按上面的方法设置动态属性即可只更新指定的基本表,但只要UpdateBatch,则table_B中的字段也更新了,动态属性根本不起作用。还望高手指教。