классический asp - чтение csv файла с буквенно-цифровыми данными - PullRequest
3 голосов
/ 08 августа 2011

У меня проблемы с чтением CSV-файла с буквенно-цифровыми данными. ниже мой код в классическом asp:

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ls_map_path & ";Extended Properties=""Text;HDR=Yes;FMT=Delimited"";"


Set lo_conn = Server.CreateObject("ADODB.Connection")
lo_conn.Open strConn

Set lo_rs = Server.CreateObject("ADODB.recordset")
lo_rs.CursorLocation = adUseClient
lo_rs.open "SELECT * FROM " & as_file_name, lo_conn, adOpenStatic, adLockOptimistic, adCmdText

и ниже данные:

user_id,status,last_name,first_name,middle_name 
1234,1,DeVera,athan,M. 
1234,1,De Vera,athan,M. 
ABC1,1,Santos,Shaine
abcd,1,Santos,Luis 
1234,1,De Vera,athan,M. 
1234,1,De Vera,athan,M.
ABC1,1,Santos,Shaine

При чтении столбца «user_id» с использованием lo_rs.fields.Item("user_id") он прекрасно извлекает значение «1234» user_id. но другие данные, имеющие буквенно-цифровое значение, возвращают мне ноль.

Я не знаю причину, почему он возвращает ноль. Хотя, если все данные буквенно-цифровые, они отлично читают столбец user_id. Я думаю, что единственная проблема заключается в том, что данные CSV имеют смешанное числовое и буквенно-цифровое значение в одном столбце.

Кто-нибудь знает, как решить эту проблему? или, может быть, у меня просто отсутствует текст в строке подключения.

Пожалуйста, сообщите заранее и большое спасибо за помощь!

1 Ответ

2 голосов
/ 08 августа 2011

Чтобы обойти вывод типа, вы можете создать SCHEMA.INI, который определяет типы каждого столбца в файле CSV.

Установить HDR=NO & в каталоге, содержащемCSV (ls_map_path) создает schema.ini:

[filenamehere.csv]
Col1=user_id Text
Col2=status Long
Col3=last_name Text
Col4=middle_name Text

Отображения типов, используемые поставщиком текста, теперь основаны на приведенной выше схеме.

...