我被要求构建一个Web应用程序来报告存储在另一个系统中的信息。另一个系统被锁定但允许我将数据导出为csv文件。
我想在我的应用程序上使用html表单,以便人们(夜班!)可以将数据从其他系统导入我的Web应用程序。
为了让其他人了解我的代码,我一直在使用vbscript并尝试在所有数据库操作中使用以下模式:
打开连接 构建查询 执行查询 做一些结果(如果适用) 关闭连接
是否可以使用此模式导入txt文件?即。纯粹基于sql而不使用存储过程?
有没有人有代码示例?
希望这是有道理的。
感谢。
德里克
答案 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