怎样把数据库中一个表保存成为一个文本文件,字段用逗号隔开?(100分)

  • 主题发起人 主题发起人 丝路飞鸿
  • 开始时间 开始时间

丝路飞鸿

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把数据库中一个表保存成为一个文本文件,字段用逗号隔开?
在delphi中实现!
 
高手在吗
 
这个好像比较好实现,但是,要怎样做导入呢?知道请告诉我啊,我也遇到这的问题。
下面是我做的导出的主要代码
var str1,str2,str3:string[30];
table1.first;
while not table1.eof do
begin
with table1 do
str1:=fields[0].asstring;
str2:=fields[1].asstring;
str3:=fields[2].asstring;
wreiteln(mytextfile,str1,str2,str2);
next;
end;
end;

 
读取也是一样,没有什么难的。
用pos函数,找","号就可以得到各字段。
只是效率不高,且不太通用。
 
我是这样做的:
var
s:string;
i:integer;
j:integer;
f:system.textfile;
filename:string;
begin

table2.Active:=true;
filename:=edit1.text;
assignfile(f,filename);
rewrite(f);
for j:=1 to table2.RecordCount do
begin
s:='0937';
for i:=1 to table2.fields.count-1 do
begin
s:=s+','+table2.Fields.asstring;
end;
writeln(f,s);
end;
closefile(f);
showmessage('保存完毕!');
可是只保存了第一条记录,记录数正确。请问怎样保存所有记录
 
保存为文本文件数据库表不行吗。实现起来较容易
 
自己写代码,读二维表,再写入文本文件, 很简单的
或者用ODBC方式连接一个文本文件, 再用Tbatchmove控件将表中数据倒入到此文本文件中

 
..
丝路飞鸿的错误是循环里面没有 Table2.Next
另外 for j:=1 to table2.RecordCount do 并不好,不如:

table2.First();
while not table2.Eof do
begin
.................
table2.Next();
end;
 
procedure TForm1.N5Click(Sender: TObject);
var
str:string;
filename:textfile;
i,j,n:integer;
p:string;
begin
if SaveDialog2.Execute then
begin
str:=SaveDialog2.FileName;
assignfile(filename,str);
if fileexists(str) then DeleteFile(SaveDialog1.FileName);
try
Screen.Cursor:=crHourGlass;
rewrite(filename);
p:='|';
str:='';
n:=0;//query字段N序号
Query1.First;
for n:=0 to Query1.FieldCount -1 do
begin
str:=str+Query1.fields[n].DisplayLabel+p;
end;
writeln(filename,str);
n:=0;//query字段N序号
str:='';
while not Query1.Eof do begin
for n:=0 to Query1.FieldCount -1 do
begin
str:=str+Query1.fields[n].AsString+p;
end;
writeln(filename,str);
str:='';
Query1.Next;
end;
except
ShowMessage('写文件时产生错误。可能是该文件已被其他程序打开,或系统错误。');
closefile(filename);
END;
Screen.Cursor:=crdefault;
Application.MessageBox('操作在没有警告的情况下正常结束!','完成',mb_ok+mb_iconinformation);
closefile(filename);
end;
end;
 
Tbatchmove控件将表中数据倒入到此文本文件中,这种比较简单的
 
多人接受答案了。
 

Similar threads

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