請大俠們幫忙!如何將txt 文檔導進sql server 資料表 ( 积分: 50 )

  • 主题发起人 主题发起人 fancypansy
  • 开始时间 开始时间
F

fancypansy

Unregistered / Unconfirmed
GUEST, unregistred user!
txt 文檔含有大量內容,并且不保存在服務器上,請問如何可以將txt 文檔的內容寫進sql 資料表里?
請大俠們幫忙啊!
 
txt 文檔含有大量內容,并且不保存在服務器上,請問如何可以將txt 文檔的內容寫進sql 資料表里?
請大俠們幫忙啊!
 
文本文件中的什么数据啊,数据要有分割符的
var
basefile:textfile;

recordstr:tstringlist;
spestrpos:integer;
fieldstr:array of string;
ado1record,ado1field,tt:integer;

setlength(fieldstr,长度);
//////////定义数组长度
recordstr:=tstringlist.Create;
assignfile(basefile,''+text+'.txt');
/////读取文本文件
reset(basefile);
recordstr.LoadFromFile(''+text+'.txt');
//字符串列表加载文本文档
ado1record:=recordstr.Count;


for i:=0 to ado1record-1do
begin
mystr:=recordstr;
for j:=0 to ado1field-1do
begin
spestrpos:=pos('/',mystr);////////是字段间的分割符,一行是一条记录
fieldstr[j]:=copy(mystr,1,spestrpos-1);
mystr:=copy(mystr,spestrpos+1,length(mystr)-spestrpos);
end;
////////////插入一条记录
end;


with adoquery2do
begin
close;
sql.Clear;
sql.Add('select * from '+db+' where cardno='''+fieldstr[5]+'''');
open;
if adoquery2.RecordCount>0 then
edit
else
append;
try
for j:=1 to ado1field-1do
begin
adoquery2.Fields[j].AsString:=fieldstr[j];
end;
post;
close;
except
continue;
end;
end
////////////////如果看不懂,可以给我发邮件,我再给你发,记得给分就行了
wuyongzhen26@yahoo.com.cn
 
不好意思!我再把問題描述一下。
文檔aa.txt內容為
"a1","b1","c1","d1"
"a2","b2","c2","d2"
"a3","b3","c3","d3"
"a4","b4","c4","d4"
...,...,..,...,...
資料表table1,其fields為:A,B,C,D,E,(B為主鍵索引),現需要比較table1里的 field B 的內容与aa.txt 的“c1”,如果相匹配,則將"d1"的內容插入到 table1 的 field D里。
TO:wuyongzhen,
你的這個方法是可以的,但是速度不是很快。能不能再給個插入速度比較快的方法?!
 
是的,这个方法,用在几千条记录上还凑合,多了就太慢了。
可是你要的功能,还要进行判断,既然要判断就得一条一条来,我看很难再快了。
关注中.....
 
后退
顶部