2012-07-17 22 views
0

我输入行喜欢 -写入一个文本文件到表使用VBScript

001-407600 12/26/2011 04:25:43.250 12/26/2011 04:25:43.156 
001-338000 12/26/2011 04:22:49.250 12/26/2011 04:22:49.156 
001-51600 12/26/2011 04:10:53.234 12/26/2011 04:10:53.140 
001-351900 12/26/2011 04:23:24.000 12/26/2011 04:23:23.906 

,我想这个数据与列名分别为jobiddate1time1date2time2使用VB脚本

写入表 DATATABLE

请建议我如何做到这一点。

+0

会[这里](http://www.motobit.com/tips/detpg_read-write-binary-files/)有帮助? – 2012-07-17 10:53:39

+1

为什么在VBScript文件中?为什么不利用[SSIS](http://msdn.microsoft.com/zh-cn/library/ms141026.aspx)? – GarethD 2012-07-17 11:10:36

+0

甚至更​​简单,[BULK INSERT](http://msdn.microsoft.com/zh-cn/library/ms188365(v=sql.105).aspx)? “逐行”是他们在70年代做到的。 – 2012-07-17 12:11:00

回答

1

我并不完全确定文本文件的格式,因此您可能需要使用FIELDTERMINATORROWTERMINATOR,但这种方法比尝试逐行执行这种方法容易得多,效率更高。

set conn = createobject("ADODB.Connection") 

connstr = "Provider=SQLNCLI;Data Source=server\instance;User ID=username;" & _ 
      "Password=password;Initial Catalog=database_name;" 

conn.open connstr 

filepath = "c:\wherever\whatever.txt" 

sql = "BULK INSERT dbo.DATATABLE FROM '" & filepath & "'" & _ 
     " WITH (ROWTERMINATOR = '\r\n', FIELDTERMINATOR = ' ');" 

conn.execute sql,,129 

conn.close : set conn = nothing