Я использую страницу ASP, где мне нужно прочитать файл CSV и вставить его в таблицу БД «Сотрудник». Я создаю объект TestReader. Как я могу написать цикл для выполнения до количества строк/записей читаемого файла CSV?
Как читать файлы CSV построчно в VBScript
Ответы (2)
Не пытайтесь разобрать файл самостоятельно, вы только создадите себе головную боль. Это немного больше, чем разделение на новую строку и запятые.
Вы можете использовать OLEDB, чтобы открыть файл в наборе записей и прочитать его так же, как и таблицу БД. Что-то вроде этого:
Dim strConn, conn, rs
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("path to folder") & ";Extended Properties='text;HDR=Yes;FMT-Delimited';"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
Set rs = Server.CreateObject("ADODB.recordset")
rs.open "SELECT * FROM myfile.csv", conn
while not rs.eof
...
rs.movenext
wend
Мой vbscript заржавел, поэтому проверьте синтаксис.
edit: комментарий harpo поднимает хороший вопрос об определениях полей. Определение файла schema.ini позволяет определить количество и типы данных ожидаемых полей. См.: Вы можете справиться с этим, определив файл schema.ini. см.: http://msdn.microsoft.com/en-us/library/ms709353.aspx
Extended Properties
, иначе возникнет исключение Format of the initialization string does not conform to the OLE DB specification.
. Вместо этого используйте Extended Properties=""text;HDR=Yes;FMT=Delimited""
, чтобы избежать этого исключения.
- person ViRuSTriNiTy; 14.09.2016
Почему бы просто не вставить CSV? Например:
SELECT * INTO MyTable FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Data Source=F:\MyDirectory;Extended Properties="text;HDR=No"')...
[MyCsvFile#csv]
Из: http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.database.ado/2007-05/msg00057.html