如何将数据表中的数据按照一定格式倒在文本文件中(100分)

  • 主题发起人 主题发起人 流浪的小鸟
  • 开始时间 开始时间

流浪的小鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我在做一个程序,需要将数据库中的数据按照固定的格式倒在文本文件或者dat文件中,
请问如何操作,有没有固定的函数或者源代码。
 
建议你去看看提问的技巧
 
procedure TForm1.ExportData(SourceTableName, OutputFile: String);
var AFile: TextFile;
Q1: TQuery;
I,J: Longint;
RS: String;
VA: array of String;
begin
Q1 := TQuery.Create(nil);
try
Assignfile(AFile,OutputFile);
Rewrite(AFile); //打开输出文件

Q1.SQL.Clear;
Q1.SQL.Add('Select * from "'+SourceTableName+'"');
Q1.Open;
SetLength(VA,Q1.FieldCount); //设置动态数组长度
ProgressBar1.Max := Q1.RecordCount;
for I:=0 to Q1.RecordCount-1 do //从第一条记录到最后一条记录循环
begin
RS := '';
for J:=0 to Q1.FieldCount-1 do //从第一个字段到最后一个字段循环
begin
case Q1.Fields[J].DataType of
ftInteger,ftFloat,ftDate:
VA[J] := Q1.Fields[J].AsString;
ftString,ftMemo:
VA[J] := '"'+Q1.Fields[J].AsString+'"';
end;
if J = Q1.FieldCount-1 then
VA[J] := VA[J]
else VA[J] := VA[J]+',';
RS := RS+VA[J];
end;
Writeln(AFile,RS); //写入行
Q1.Next;
ProgressBar1.StepIt; //画进度条
Application.ProcessMessages;
end;
Closefile(AFile);
ProgressBar1.Position := 0;
MessageBox(Handle,'完成!','',MB_OK);
finally
Q1.Close;
Q1.Free;
end;
end;
 
使用adodataset.savetofile(filename);
直接存成文件,格式是xml的格式,你不用管这种格式,只是通用的
需要读数据的时候,使用adodataset.loadfromfile(filename);
又还原成了adodataset
这是最简单的方法了
 
不知道该说些什么了
 
后退
顶部