使用vbscript将文本文件从Web表单导入到sql server数据库

时间:2010-10-28 09:21:30

标签: html sql-server vbscript csv text-files

我被要求构建一个Web应用程序来报告存储在另一个系统中的信息。另一个系统被锁定但允许我将数据导出为csv文件。

我想在我的应用程序上使用html表单,以便人们(夜班!)可以将数据从其他系统导入我的Web应用程序。

为了让其他人了解我的代码,我一直在使用vbscript并尝试在所有数据库操作中使用以下模式:

打开连接 构建查询 执行查询 做一些结果(如果适用) 关闭连接

是否可以使用此模式导入txt文件?即。纯粹基于sql而不使用存储过程?

有没有人有代码示例?

希望这是有道理的。

感谢。

德里克

1 个答案:

答案 0 :(得分:2)

一些注释。

Set cn = CreateObject("ADODB.Connection")
''SQL Server Express and ODBC, more connection strings: 
''http://www.connectionstrings.com/sql-server-2008
''
strcon = "ODBC;Description=Test;DRIVER=SQL Server;SERVER=Server\SQLEXPRESS;"
strcon = strcon & "Trusted_Connection=Yes;DATABASE=Test"

cn.Open strcon
strSQL = "SELECT * INTO NewCSV "
strSQL = strSQL & "FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',"
strSQL = strSQL & "'Text;HDR=Yes;FMT=Delimited;DATABASE=c:\docs\', "
strSQL = strSQL & "'SELECT * FROM [Test.csv]');"

cn.Execute strSQL, RecordsAffected
MsgBox RecordsAffected

您可能必须启用即席查询:http://technet.microsoft.com/en-us/library/ms187569.aspx 也可以将ACE提供程序用于文本,但它可能会变得复杂:http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/ace

列中的混合数据可能是CSV的问题。 IMEX可以提供帮助,但前提是检查范围(在注册表中设置)是合适的。

编辑重新评论

有关查看CSV数据的一些注意事项:

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Docs\;"
strcon = strcon & "Extended Properties=""Text;FMT=Delimited;HDR=Yes;IMEX=1"";"

cn.Open strcon

strSQL = "Select * From [Test.csv]"

rs.Open strSQL, cn

MsgBox rs.GetString