怎样方便的在sqlserver中将一表中的数据导入到另一个表中?急!!(200分)

  • 主题发起人 主题发起人 tomroman
  • 开始时间 开始时间
好几处笔误,将第4步修改如下:
4.with query1 do
begin
first;
while not Eof do
begin
query2.insert;
query2.fieldbyname('name').asstring:=query1.fieldbyname('name').asstring;
query2.fieldbyname('date').asinteger:=query1.fieldbyname('date').asinteger;
query2.fieldbyname('date2').asinteger:=变量1;
query2.post;
Next;
end;
end;
with query2 do
begin
Database2.StartTransaction;
try
ApplyUpdates;
Database2.Commit;
except
Database2.Rollback;
end;
CommitUpdates;
end;
 
谢谢,但是还有点小问题
表1中的字段是变化的,就是说我用sql查出表中的所有字段名,但是字段的类型不知道
也需要查询出来才知道,这样对于date字段,我在程序中预先不知道是int类型,那怎么
书写
query2.fieldbyname('name').asstring:=query1.fieldbyname('name').asstring;
query2.fieldbyname('date').asinteger:=query1.fieldbyname('date').asinteger;
这两句呢?
 
你的表1的相关字段的类型和表2的类型不同吗?
 
那就用下面的:
query2.fieldbyname('name').value:=query1.fieldbyname('name').value;
query2.fieldbyname('date').value:=query1.fieldbyname('date').value;
 
我的代码如下:
DM.Query4.RequestLive:=true;
DM.Query4.CachedUpdates:=true;
with DM.Query2 do
begin
first;
while not Eof do
begin
DM.Query4.insert;
DM.Query4.FieldByName(DM.query3.fields[0].AsString).value :=DM.Query2.fieldbyname(fields[0].AsString).value;
DM.Query4.fieldbyname('SchemeName').value :=Edit1.Text;
DM.Query4.post;
Next;
end;
end;

with DM.Query4 do
begin
DM.Database3.StartTransaction;
try
ApplyUpdates;
DM.Database3.Commit;
except
DM.Database3.Rollback;
end;
CommitUpdates;
end;
DM.Query4.RequestLive:=false;
DM.Query4.CachedUpdates:=false;

可是报告query4 cannot modify a read-only dataset错误,为什么?
要怎么改?
谢谢了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
923
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部