怎样把一个数据库(多个表)的数据导入一个文本文件(100分)

  • 主题发起人 主题发起人 套牢1
  • 开始时间 开始时间

套牢1

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把一个数据库(多个表)的数据导入一个文本文件
 
用bacthmove 一个一个导入吧
 
导到多个文件后再打包成一个文件。
或者写入文本时在开头作好标记,如共有几个表,每个表各占多少行等等。
 
那将来再导出呢?
 
同理,用相反的方法给倒回去不就得了!
 
导出到EXCEL可以吧,我没有导出到TXT文件的源代码,只有导出到EXCEL中的,不过我想
道理应该一样的,如下:
procedure OutExcel(TableCDS: Tadoquery; Status:TStatusBar; items_i:integer; statusdrawrect1:trect; frm: Tform; caption:string='');
var
I, Count, Row: integer;
RangeName: String;
dbf_progress:tprogressbar;
status_count,staPanleWidth:integer;
MSExcel,Range: OleVariant;
begin
MSExcel := CreateOleObject('Excel.Application');
MSExcel.Visible := false;
MSExcel.WorkBooks.Add;
MSExcel.ScreenUpdating := False;
MSExcel.caption := caption;
// msexcel.activesheet.pagesetup.centerheader:=caption;
// msexcel.activesheet.pagesetup.printgridlines:=true;
// msexcel.activesheet.pagesetup.centerfooter:='第&P页';

dbf_progress:=TProgressbar.create(frm);
staPanleWidth:=status.Panels.Items[items_i].width;
with TableCDS do begin
Count := FieldCount-1;
last;
status_count:=recordcount;//进程条的最大值
end;
status.repaint;
with dbf_progress do begin
top:=StatusDrawRect1.top;
left:=StatusDrawRect1.left;
width:=StatusDrawRect1.right-StatusDrawRect1.left;
height:=StatusDrawRect1.bottom-StatusDrawRect1.top;
visible:=true;
try
Parent := status; //该进程条的拥有者为状态条status
Min := 0; Max := status_Count; //进程条的最大和最小值
Step := 1; //进程条的步长
Row := 1;
RangeName := 'A'+IntToStr(Row);
Range := MSExcel.Range[RangeName, RangeName];
with tablecds do begin
for I := 0 to Count do begin
range.font.bold:=true;
Range.Value := Fields.DisplayLabel; //将字段头写入excel文件的第一行
Range := Range.Next; //excel文件的下一列
end;
// msexcel.activesheet.columns[1].numberal:='文本'; //控制此列输出属性为text
DisableControls;
First;
while not eof do begin
Inc(Row); //row:=row+1; excel文件的下一行
RangeName := 'A'+IntToStr(Row);
Range := MSExcel.Range[RangeName, RangeName];
for I := 0 to Count do begin
//Range.Value := ''''+Fields.AsString;
Range.Value := Fields.AsString;
Range := Range.Next;
end;
Next;
Stepit; // 累加进程条
end;
EnableControls;
end;
finally
Free; //释放进程条
end; //try
end; //with
MSExcel.ScreenUpdating := True;
MSExcel.Visible := True;
MSExcel.Quit;
end;
 
用adoquery1.savetofile('c:/1.xml');adoquery1.loadfromfile('c:/1.xml');
不就结了。
 
多人接受答案了。
 
后退
顶部