请教一个问题。(200分)

  • 主题发起人 主题发起人 sword
  • 开始时间 开始时间
S

sword

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue][/blue][:)]
请教一个问题。Delphi中要这样该怎么做?
从一个文件中读入数据。文件格式如下:
A1 1 A 名字 号码
将这些数据都读入,再将这些数据都写入到数据库去。
怎么实现格式话输入?以及怎么样才能有效率?(因为数据量比较大)
 
将这些文件格式化.如:
每一个字段都定长.
或以#9, ",号"等分隔.
 
直接将文本转化为数据库不行吗
 
用循环处理读取数据,保存在内存表中。然后一次过保存到数据库中。
 
Delphi不能像C一样用scanf做格式化输入吗?
文件的记录条数巨大,如果再修改不太实际,
如果全部加载内存,再输入会不会效率比较低?
 
dongberlin :
如果改成那样后,如果格式化输入?
 
假设你已经用定长格式化后,你可以用一个TStringList.LoadFromFile
把你的文件读到TStringList.
TempString=StringList.Strings每一行就是一条记录,它包括你的5个字段
则Fields0:=Copy(TempString, x0Start, x0end);
Fields1:=Copy(TempString, x1Start, x1end);
....
Fieldsn:=Copy(TempString, xnStard, xnend);
然后把数据插入到数据库即可.(最好用StoreProcedure)
你把所有的行都读完,也就是把所有的记录都读完.
 
在写入数据库上,怎么做比较好?
每条记录读好就直接用sql写?
还是总的都弄好了再写?
 
我曾经用过TBatchMove,发现很容易出错.
建议建立一个StoreProcedure,它一次插入一条记录(顺便对数据进行检验和
检测有没有重复的记录).
这样做有小小一点慢,但总比一次把一批记录插入到数据库安全一点.
 
那也就是说是单条处理比较保险了?
 
我个人是这样认为的,但不知道其他高手怎样想?
 
多人接受答案了。
 
后退
顶部