紧急请教更新数据库字段的SQL语句,我有两个相同结构的数据表,保存的时候需要两张表中的数据同步,应该怎么写,多写
表结构如下
表一
stuid1 (学号)
card1 (考勤号码)
name1 (姓名)
表二
stuid2 (学号)
card2 (考勤号码)
name2 (姓名)对表一进行新增、修改保存的时候,使表二中的数据与表一中始终保持一致,更新的代码应该怎么写?正确给出后马上给分。数据库是access,用ADO连的数据库,请用代码实现,不通过数据库设计实现,谢谢!在线等待
表结构如下
表一
stuid1 (学号)
card1 (考勤号码)
name1 (姓名)
表二
stuid2 (学号)
card2 (考勤号码)
name2 (姓名)对表一进行新增、修改保存的时候,使表二中的数据与表一中始终保持一致,更新的代码应该怎么写?正确给出后马上给分。数据库是access,用ADO连的数据库,请用代码实现,不通过数据库设计实现,谢谢!在线等待
insert into 表2 select * from 表1
constraint foreign key reference ......
procedure TForm1.AQBeforePost(DataSet: TDataSet);
var
query: tadoquery;
id: integer;
strOldID,strOldName, strNewID, strNewName, stroldcard, strnewcard, strsql: string;
begin
if aq.State = dsinsert then
begin
try
id := id_gen(adodb.ConnectionString, 'tmp', 'per_id');
aqtmp.Insert;
aqtmp.FieldByName('stuid').AsString := dbediteh2.Text;
aqtmp.FieldByName('per_name').AsString := dbediteh1.Text;
aqtmp.FieldByName('per_card').AsString := dbediteh3.Text;
aqtmp.FieldByName('per_id').AsString := inttostr(id);
aqtmp.FieldByName('per_yes').AsString := 'N';
aqtmp.Post;
except
end;
end;
if aq.State=dsedit then
begin
stroldID:=aq.fieldbyname('stuid').AsString;
strnewcard:=dbediteh3.Text;
strnewname:=dbediteh1.Text;
strnewid:=dbediteh2.Text;
with aq3 do
begin
close;
sql.Clear;
sql.Text:='update tmp set stuid='+strnewid+',per_card='+strnewcard+',per_name='+strnewname+'where stuid='+stroldid+'''';
execsql;
end;
end;
end;
应该是
sql.Text:='update tmp set stuid='''+strnewid+''''+',per_card='''+strnewcard+''''+',per_name='''+strnewname+''''+'where stuid='+stroldid+'''';