回 帖 发 新 帖 刷新版面

主题:用pb如何实现两张表数据的同时输入

各位大虾,小弟刚学PB不久,有一问题恳请各位大虾帮忙:
    小弟在数据库中建立了两个表,这两个表中有两列是一样的,我希望在完成一个表的数据输入后另一个表也能自动将相同的数据输入。
不知各位大虾有没有办法。

回复列表 (共4个回复)

沙发

你好,你所提的要求需分两步实现:1、把第一个表中改动过的数据写入第二个表的同一列中;2、在第一个表保存成功后需要对第二个表进行保存(就是多表更新)。第一步容易实现,第二步需要修改较多,可看下面一段例子:
// ColName:数据窗口列名
// Name1[],Name2[]:两数据库表选中项列名
// n1,n2:两数据库表选中项数量
// i:循环计数器
// Columns:数据窗口总列数
String ColName,Name1[],Name2[]
Integer Columns,i,n1=0,n2=0
//下面程序:找出dw—obj的两表列名赋给Name1[],Name2[]
Columns=Integer(dw—obj.Describe(″DataWindow.Column.Count″))
FOR i=1 TO columns
ColName=Upper(dw—obj.Describe(″#″+String(i)+″.Name″))
IF Left(ColName,Len(Table1))=Table1 and ColName〈〉Key1 THEN
n1=n1+1
Name1[n1]=ColName
END IF
IF Left(ColName,Len(Table2))=Table2 and ColName〈〉Key2 THEN
n2=n2+1
Name2[n2]=ColName
END IF
NEXT
// 下面程序:存储dw—obj,确定返回值(True:成功,False:失败)
IF dw_obj.Update(True,False)=1 THEN
FOR i=1 TO n1
dw—obj.Modify(Name1[i]+″.Update=No″)
NEXT
dw—obj.Modify(Key1+″.Key=No″)
dw—obj.Modify(″DataWindow.Table.Update
Table=′ ″+Table2+″ ′ ″)
FOR i=1 TO n2
dw—obj.Modify(Name2[i]+″.Update=Yes″)
NEXT
dw—obj.Modify(Key2+″.Key=Yes″)
IF dw—obj.Update()=1 THEN
Commit;
FOR i=1 TO n1
dw—obj.Modify(Name1[i]+″.Update=Yes″)
NEXT
dw—obj.Modify(Key1+″.Key=Yes″)
dw—obj.Modify(″DataWindow.Table.UpdateTable=′ ″+Table1+″ ′ ″)
FOR i=1 TO n2
dw—obj.Modify(Name2[i]+″.Update=No″)
NEXT
dw—obj.Modify(Key2+″.Key=No″)
return True
ELSE
Rollback;
return False
END IF
ELSE
Rollback;
return False
END IF

板凳

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846
2010年,中国网民突破了4亿,
网络游戏玩家超过了3亿,
互联网即将进入全民网游的时代

3 楼

最新互助式项目。C易特元亨QQ919169870

这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网赚取6000元出局。
B网就多了。
详情了解加QQ919169870 
  http://blog.sina.com.cn/s/blog_6b19ec920100liv6.html
C易特奖励制度 
http://blog.sina.com.cn/cyite6
C易特更多资料博客

4 楼

后台支持的话,触发器可以实现

我来回复

您尚未登录,请登录后再回复。点此登录或注册