Импортировать текстовый файл из веб-формы в базу данных sqlserver с помощью vbscript - PullRequest
0 голосов
/ 28 октября 2010

Меня попросили создать веб-приложение для отчета об информации, хранящейся в другой системе.Другая система заблокирована, но позволит мне экспортировать данные в виде CSV-файла.

Я хотел бы использовать html-форму в своем приложении, чтобы люди (ночная смена!) Могли импортировать данные из другой системы в мое веб-приложение.

Чтобы позволить другим людям понять мой код, я использую vbscript и пытаюсь использовать следующий шаблон во всех операциях с базой данных:

Открыть запрос сборки подключения Выполнить запрос Выполнить что-либо с результатами (еслисоответствующий) Закрыть соединение

Можно ли использовать этот шаблон для импорта текстового файла?то есть.чисто на основе SQL без использования процедур хранения?

У кого-нибудь есть пример кода?

Надеюсь, что это имеет смысл.

Спасибо.

Дерек

1 Ответ

2 голосов
/ 28 октября 2010

Некоторые примечания.

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
...