1。如何将一个dbgrid中的数据全部读入到另一个数据库中去?(30分)

  • 主题发起人 主题发起人 狼牙
  • 开始时间 开始时间

狼牙

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如何将一个dbgrid中的数据全部读入到另一个数据库中去?
2.如何建立一个临时数据表?
 
本身连接到数据库的,直接建立新的数据库存储吧,
 
1dbgrid的数据对应与query or table
table1.fieldbyname('').assstring:=table2.fieldbyname('').asstring
2到底要干什么?说来听停
 
当dbgrid中显示的并不是所有数据记录时,想将该表格中的数据全部导入到另外一个数据
库中去,
建立临时数据表的目的是实现筛选功能,以及进行数据备份和维护。
有点搞不懂。dbgrid中显示的记录或者table进行过筛选后,table所指向的数据集到底是
原来完整的数据集还是经筛选过的不完整的数据集?Query的情况呢?(select 以后)
 
当你要做筛选最好指向query,然后再用控件tbatmo....记不清了,它专作数据拷贝之类的
不过你也可以用sql直接导过去.
 
建议用Query数据集,更加灵活!
dbgrid中的显示的记录就是Query中的记录!
然后可以用一个循环,读一条写一条,或者直接用BACHMOVE
 
给你个函数:
procedure QueToTab(TablePathName:String; AQuery:TQuery);
var
TblTemp:TTable;
begin
try
tbltemp:=TTable.Create(nil);
tbltemp.TableName:=TablePathName;
tbltemp.FieldDefs.Assign(AQuery.FieldDefs);
tbltemp.CreateTable;
tbltemp.BatchMove(AQuery,batAppend);
tbltemp.close;
finally
tbltemp.free;
end;
end;
 
有个小错,现修正

procedure QueToTab(TablePathName:String; AQuery:TQuery);
var
TblTemp:TTable;
begin
tbltemp:=TTable.Create(nil);
try
tbltemp.TableName:=TablePathName;
tbltemp.FieldDefs.Assign(AQuery.FieldDefs);
tbltemp.CreateTable;
tbltemp.BatchMove(AQuery,batAppend);
tbltemp.close;
finally
tbltemp.free;
end;
end;
 
遍历源表
添加到目标表
保存目标表

 
在dbgrid中只是把你过滤掉的记录隐长起来了,建议还是用query,然后可以用语句
select into建立临时表
 
楼上的兄弟,能说说select into怎么用么?我以前试过不行
 
楼上的兄弟,能说说select into怎么用么?我以前试过不行
详细。。。。
 
你的设计思路有问题,可能仍然沿用
桌面数据库设计思路。

改一改吧!
 
>zhangxh:[?]
用程序把数据导入到数据库,改什么思路?怎么改?
>linyi_cn,狼牙:
select <fieldlist> into <newtable> [in databese] from <source>
insert into <tablename> [in database][(field1[,field2[,...]])] select [source.]field1[, field2[, ...] from <source>

补充:
select ... into 会创建一个新表
insert into 只是在目标表中插入新记录。
 
后退
顶部