文本數據轉到SQL數據表(50分)

  • 主题发起人 delphiprogramer
  • 开始时间
D

delphiprogramer

Unregistered / Unconfirmed
GUEST, unregistred user!
請問各位高手:
如何將文本文件(*.txt)中的數據在Delphi中用代碼轉SQL數據庫的一個表中.例如下面是
文本文件中的數據:
張三 男 20 大專 工程師
李英 女 19 中專 文員
sql數據表的對應字段:
姓名 性別 年齡 學歷 職稱
 
只要你的文本文件中数据是定格式的(各字段之间有分隔符),sql server就可以用工具来
实现导入。
你还有写代码的必要?
写代码,如果数据量太大的话,速度方面有严重的问题。
 
用工具,sqlserver----all tasks----import data---select source---text file
用程序写也好,只是烦一点,但可进行有效性的检查。
一次读取一行,每个字段要求以空格为分隔,做个循环就行了。
 
還是用sql本身轉較方便吧.....要不然你在delphi中寫sql語句insert into 到表中也行
 
上面各位的意見很好.問題是在更新數據操作的人是用戶而不是本人,用戶是不能直接
操作sql的.如果讓用戶直接操作sql的話,對數據庫的管理是不安全的,而且數據容易出錯.
用戶是不能直接操作sql的,只能寫一個程序讓用戶簡單操作(按一下按鈕)就完成了數據
更新操作.
各位有沒有更好的辦法,幫助幫助>>>
 
bulk insert databasename..tablename from"c:/aa.txt"
 
To:ugvanxk
你說的方法是對的,還有沒有什么方法能逐行提取文本的數據呢?先感謝你的支持!
 
利用文本操作的方式先将一行的内容取出来进行分析(readln),然后再向数据库中写啰!

不过如我前面所说,如果这样操作,文件大的话,速度上会无法忍受的。
 
用存储过程来做是效率最高的。
从文件读一条记录,拆分后,送给存储过程的入口,具体逻辑的判断和校正在数据库端来做。

我做过这个样的程序, 一个文件 40 M ,有 80万条记录,插入到数据库的时间大概需要 3 个 小时。
呵呵,想更高就不行了,要有思想准备。
 
To:puma Wang
給我發段代碼好嗎?多謝你了!拜托!
 
我这里没有了。原来公司的,走了没有带出来。
道理很简单的,就是读一行,送一条,得到返回信息,提示出来,或者写入Log 文件。 一直循环。

这个文件也是通过程序来得到的。每个字段间加个特殊符号 #9 呀什么的,到读的时候分开就是。
 
多謝各位的支持!
 
多人接受答案了。
 
顶部