|
проблема с чтением csv на Win 2008 Server R2 x64 , читает только первое поле
| ☑ |
0
Длинный Клиент
10.12.12
✎
22:11
|
Файлик на входе с такими строчками :
"1";"2";"3";"4";"5";"6";"7";"8";"9"
На 32-битном Win 2003 работает отлично :
objRec = Новый COMОбъект("ADODB.Recordset");
strQuery = "SELECT * FROM [" + ИмяФайла + "]";
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Папка + ";Extended Properties=""text;HDR=NO;""";
adOpenStatic = 3;
adLockOptimistic = 3;
adCmdText = 1;
objRec.Open(strQuery, strConn, adOpenStatic, adLockOptimistic,adCmdText);
Возвращает нормально 9 колонок: objRec.fields.count=9
А на 2008 64-битном сервере возвращает 1, первую колонку: objRec.fields.count=1
Менял на "Provider=Microsoft.Ace.OLEDB.12.0;" то же самое.
Как пофиксить ?
|
|
1
Длинный Клиент
10.12.12
✎
22:12
|
Файлик на входе с такими строчками :
"1";"2";"3";"4";"5";"6";"7";"8";"9"
"1";"2";"3";"4";"5";"6";"7";"8";"9"
"1";"2";"3";"4";"5";"6";"7";"8";"9"
"1";"2";"3";"4";"5";"6";"7";"8";"9"
разумеется
|
|
2
Длинный Клиент
10.12.12
✎
23:01
|
Текст = "[" + ИмяФайла + "]
|ColNameHeader=FALSE
|Format=Delimited(;)
|TextDelimiter=none
|CharacterSet=ANSI
|";
Для ы = 1 По КолПолей Цикл
Текст = Текст + "Col" + ы + "=Field" + ы + " Text" + Символы.ПС;
КонецЦикла;
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.УстановитьТекст(Текст);
ТекстДок.Записать(Папка + "Schema.ini");
|
|
3
Длинный Клиент
12.12.12
✎
19:04
|
Решение нашлось - залез в реестр, там поиском "JET", там в где-то в параметре "текст" разделитель ";" поставить вместо csvdelimiter
|
|
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.