这样的多条记录添加,如何实现?(200分)

  • 主题发起人 主题发起人 pckite
  • 开始时间 开始时间
P

pckite

Unregistered / Unconfirmed
GUEST, unregistred user!
这样的多条记录添加,如何实现?
表一 NAME SEX TYPE 表二 NAME SHUXUE YUWEN YINGYU
DDD 5 5 DDD 95 5 5 48
AAA 1 1 AAA 80 86 79
BBB 2 2 AAA 78 96 50
............. AAA 48 85 39

如何实现这个功能:当我在表一输入NAME 为BBB是,表二变为

表二 NAME SHUXUE YUWEN YINGYU
DDD 95 5 5 48
AAA 80 86 79
AAA 78 96 50
AAA 48 85 39
BBB 80 86 79
BBB 78 96 50
BBB 48 85 39
即在表二中复制了原NAME 为AAA的所有记录(NAME 为表一中新添加的BBB)。如何实现?
我是用ACCESS的,按照下面的代码我搞不了,不知道为什么,有请各位帮忙!,最后写上代码,谢谢!:

来自:AIHUA, 时间:2002-8-8 17:02:00, ID:1251869
//获取表二中SHUXUE YUWEN YINGYU
insert into temtable select SHUXUE,YUWEN,YINGYU from 表二
//更换nama
update temtable name = 'bbb'
//然后循环temtable中所有的记录 向表二中追加
for i:=0 to temtable.count -1
begin
append....
tem_rs.next;
end
 
下面方法,可以省略临时表:
query1.close;
query1.sql.text:='insert into 表2 (name, shuxue, yuwen, yingyu)'#13#10+
'(select '+QuotedStr(Edit1.Text)+' name, shuxue, yuwen, yingyu from 表1 '#13#10+
'where name=''AAA'')';
Query1.ExecSQL;
 
在表一上建立触发器吧,优点多多!!
触发器的格式可以查一下在用数据库的帮助说明
触发器的内容可以将svw0506说的稍改造即可
 
TO:smallbs:
在表一上建立触发器吧,优点多多!!
如何建?我是初学者,很多还不知。谢谢!

TO:svw0506
行动时出错,为什么?
 
adoquery1.Close;
adoquery1.SQL.Text:='INSERT INTO 表二 SELECT :t1 as name,shuxue,yuwen,yingyu FROM 表二 where name=:t2';
adoquery1.Parameters.ParamByName('t1').value:='BBB';
adoquery1.Parameters.ParamByName('t2').value:='AAA';
adoquery1.ExecSQL;

 
来自:svw0506, 时间:2002-8-9 11:52:00, ID:1253560
下面方法,可以省略临时表:
query1.close;
query1.sql.text:='insert into 表2 (name, shuxue, yuwen, yingyu)'#13#10+
' (select '+QuotedStr(Edit1.Text)+' name, shuxue, yuwen, yingyu from 表1 '#13#10+
|||
' where name=''AAA'')';
Query1.ExecSQL;

把name去掉即可!


用临时表也可以:
//获取表二中SHUXUE YUWEN YINGYU
adoqryclose;
sql.text := 'insert into temtable select ''' + EditName + ''' SHUXUE,YUWEN,YINGYU from 表二 where Name=''AAA''';
adoqry.execsql;

adoqryclose;
sql.text := 'INSERT INTO 表二 select * from temtable ';
adoqry.execsql;
 
insert into
表二(NAME,SHUXUE,YUWEN,YINGYU)
(select 'bbb' as Name,SHUXUE,YUWEN,YINGYU From 表二 Where Name='aaa')
 
后退
顶部