求将文本导入数据库的源码

PengHanxin 2003-10-19 06:28:36
我已将数据导直接生成了文本文件,但不知如何将其导入数据库。分不够再加!
...全文
52 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
不好意思,网络出现点问题,现在才搞好。
我要导入的是整张数据表格(也就是文本文件中的所有数据)。
mib3000 2003-10-19
  • 打赏
  • 举报
回复
关注
楼主不见了
空中居士 2003-10-19
  • 打赏
  • 举报
回复
是直接导入一个字段中,还是导入多个字段中?处理是不一样的。
outer2000 2003-10-19
  • 打赏
  • 举报
回复
直接用向SQL SERVER的DTS导就可以
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
huojiehai(海天子) :
我处理成功了,真的很谢谢你
希望以后还能得到你和大家的帮助!
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
adoquery1.loadfromfile('d:\file\abc.txt');
这个语句可以直接获取到数据集吗?不用做任何处理了吗?
我先试试。
先谢谢海兄了!
huojiehai 2003-10-19
  • 打赏
  • 举报
回复
呵呵,这样的话,你得用两个adoquery啦,
第一个读入你的文件(adoquery1)
第二个往库里面写(qdoquery2)
example
var
lp: integer;
begin
//adoquery2连接数据库并打表,这里你处理一下
adoquery2.open;

adoquery1.close;
adoquery1.loadfromfile('d:\file\abc.txt');
adoquery1.first;
while not adoquery1.eof do
begin
adoquery2.append;
for lp := 0 to ADOQuery1.Fields.Count - 1 do
ADOQuery2.FieldByName(ADOQuery1.Fields[lp].FieldName).AsVariant :=
ADOQuery1.FieldByName(ADOQuery1.Fields[lp].FieldName).AsVariant;
ADOQuery2.post;
ADOQuery1.next;
end;
end;
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
对不起,我没说清楚
我用的是tadoquery.savetofile(XXX.txt);
下面是我数据导出的源码:
procedure TDataExtractionFrm.btnCreateFileClick(Sender: TObject);
var
exxFile:TextFile;
i:integer;
strSql,strTablePath,strFilePath:string;
begin
if lsbSelected.Count>0 then
begin
strFilePath:='d:\file\extraction.exx';
AssignFile(exxFile,strFilePath);
Rewrite(exxFile);
for i:=0 to lsbSelected.Count-1 do
begin
strSql:='select * from '+lsbSelected.Items[i];
with adoQuery do
begin
with SQL do
begin
Clear;
Add(strSql);
end;
Open;
end;
Writeln(exxFile,strSql);
strTablePath:='d:\file\'+lsbSelected.Items[i]+'.txt';
adoquery.SaveToFile(strTablePath);
end;
closeFile(exxFile);
adoQuery.Close;
end;
end;

我现在要把生成的数据文本中的数据加载到另外一个相同结构表中去
huojiehai 2003-10-19
  • 打赏
  • 举报
回复
你先说说你用什么导出的呢?是
tadoquery.savetofile吧
还是
Tclientdataset.savetofile呢

还是其他呢?

你说明白点呀,我已为是文本格式的
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
to huojiehai(海天子):
PengHanxin 2003-10-19
  • 打赏
  • 举报
回复
to huojiehai(海天子):
我存放的格式看起来是乱码的,因为我是直接将数据表生成.txt文件的。
语句:for lp := 0 to sl.count - 1 是表示一行一行读取吧?
那对于我的这种存取格式应该怎么处理呢?(文本中还包括字段信息的啊)
huojiehai 2003-10-19
  • 打赏
  • 举报
回复
Sorry!应是
2.分析TStringlsit的内容,用Query或AdoQuery导入
huojiehai 2003-10-19
  • 打赏
  • 举报
回复
1.用TStringlist读入txt内存。
2.分析TStringlsit的内存,用Query或AdoQuery导入

var
SL: TStinglist;
begin
sl := tstringglist.create;
try
sl.loadfromfile('c:\aa.txe');
for lp := 0 to sl.count - 1
begin
//不知你存放的格式,这里你就自己写吧,如假设你空格分隔
// 123 jjj
// 333 ldlfd
query1.close;
query1.sql.text := 'insert into table1(a1,a2) values('''
+ Copy(sl[lp],1, pos(' ',sl[lp])- 1) +''',''' +
+ Copy(sl[lp],pos(' ',sl[lp]) + 1, maxint) +''')';
query1.execsql;
end;
finaly
sl.free;
end;
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧