Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
Всем добрый день!
Помогите, плиз, не получается сделать сабж. Имеется файл, где значения разделены запятыми, делаю так:
select * from OpenRowset('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=C:\Docs;Extended properties=''ColNameHeader=True;Format=CSVDelimited;''','select * from out.txt')


Драйвер стоит: http://gyazo.com/b7d5eecc489a4ad937fd4822ef9a72b4
Файл на месте.
Что не так?
9 июн 14, 12:31    [16141587]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
pima
Что не так?

Это игра-угадайка ?
9 июн 14, 12:32    [16141594]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
тьфу, извините :)

Сообщение 7303, уровень 16, состояние 1, строка 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
9 июн 14, 12:57    [16141791]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
Точнее, если полностью:

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][Диспетчер драйверов ODBC] Недопустимый атрибут строки соединения".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию".
Сообщение 7303, уровень 16, состояние 1, строка 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
9 июн 14, 12:59    [16141802]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
сервер небось 64х битный ?
9 июн 14, 13:17    [16141958]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
да
9 июн 14, 13:21    [16141994]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
pima
да

И как же он найдет тогда 32х битный драйвер ?
9 июн 14, 13:23    [16142013]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
А он должен быть 32-битным?
Смотрю здесь: http://blogs.msdn.com/b/sqlforum/archive/2010/12/20/faq-why-cannot-64-bit-msdasql-access-a-csv-text-file.aspx

To resolve this issue, you need to first install a 64-bit ODBC text driver. Previously this is not possible, but now it has been included in "Microsoft Access Database Engine 2010 Redistributable", http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en.

After you install this driver, you should see "Microsoft Access Text Driver (*.txt,*.csv)" with ACEODBC.DLL in your 64-bit ODBC Data Source Administrator. Then you can run your query again.

Речь о 64-битном, эту приблуду я ставила для селекта из excel-файлов (которые работают сейчас без проблем...), и драйвер в ODBC Data Source Administrator виден...
9 июн 14, 13:36    [16142121]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
Такой запрос отрабатывает без проблем:
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=E:\Docs\test.xls', [Лист1$])

а судя по ссылке, оба драйвера (и для селектов из Excel, и для .txt и .csv-файлов) входят в один пакет. Ниччего не понимаю (с)
9 июн 14, 13:38    [16142146]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
Давайте, вы
- сделаете 64хбитный System DSN на основе этого драйвера
- сделаете запрос к этому System DSN
9 июн 14, 13:52    [16142296]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
pima
Ниччего не понимаю (с)
Вы разницу между Microsoft Text Driver (*.txt; *.csv) и Microsoft Access Text Driver (*.txt; *.csv) понимаете?
9 июн 14, 13:57    [16142337]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
invm
pima
Ниччего не понимаю (с)
Вы разницу между Microsoft Text Driver (*.txt; *.csv) и Microsoft Access Text Driver (*.txt; *.csv) понимаете?


Не совсем, точнее совсем не. Ну слова вроде разные, и означать должны разное )) Делаю все ровно так, как описано по ссылке, там именно Microsoft Access Text Driver в ODBC Data Source Administrator и почему-то Microsoft Text Driver в запросе, вроде же блог микрософт, типа надо доверять )) Меняю в запросе на Microsoft Access Text Driver - то же самое.

Glory,
я не понимаю, как сделать именно 64-битный DSN:
http://gyazo.com/d7ee10dfc177e1efa265c9f7d737b5b6
Сделала, пробую через него
select * from OpenRowset('MSDASQL',
'Driver={Text Driver}; DefaultDir=C:\Docs;Extended properties=''ColNameHeader=True;Format=Delimited(,);''','select * from out.txt')

- та же самая ошибка
9 июн 14, 14:54    [16142882]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
pima
Member

Откуда: Москва
Сообщений: 496
Аааа, заработало! Прикол был в точке с запятой в имени драйвера (надо было через запятую - "*.txt, *.csv" вместо "*.txt; *.csv"). Из-за этого оно не видело драйвер.

select * from OpenRowset('MSDASQL',
'Driver={Microsoft Access Text Driver (*.txt, *.csv)}; DefaultDir=E:\Docs;Extended properties=''ColNameHeader=True;Format=CSVDelimited;''','select * from out.txt')


Всем спасибо!
10 июн 14, 10:23    [16146983]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Я вот установил этот драйвер

и такая ошибка

+
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][Диспетчер драйверов ODBC] Недопустимый атрибут строки соединения".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".



а код такой

select * from OpenRowset('MSDASQL',

'Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=D:\Test;Extended properties=''Format=Delimited(,);''','select * from test.csv')
12 фев 15, 15:21    [17256546]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
На сервере так же

+

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Invalid connection string attribute".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

12 фев 15, 15:22    [17256553]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
NIIIK
Invalid connection string attribute

А строку соединения сами придумывали ?
12 фев 15, 15:23    [17256566]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Glory,

Нет, сам копи-пастил по различным вариантам

вот такие

select *

from OpenRowset('MSDASQL', 'Driver={Microsoft Access Text Driver (*.txt, *.csv)};

 DefaultDir=C:\Temp','select * from test.csv')


выдавали ошибки в духе

+

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver] Your network access was interrupted. To continue, close the database, and then open it again.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x4578 Thread 0x3240 DBC 0x21988038 Text'.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x4578 Thread 0x3240 DBC 0x21988038 Text'.".
Msg 7303, Level 16, State 1, Line 7
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".



что-то похожее нашёл тут
http://blogs.msdn.com/b/sqlforum/archive/2010/12/20/faq-why-cannot-64-bit-msdasql-access-a-csv-text-file.aspx

но тоже не помогает.
12 фев 15, 15:29    [17256608]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
NIIIK
сам копи-пастил по различным вариантам

Типа, зачем я буду искать там в документации разрешенные атрибуты ? Я лучше копи-пейстом возьму те, которые мне больше нравятся ?
12 фев 15, 15:30    [17256625]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Maxx_UA
Guest
NIIIK


DefaultDir=C:\Temp

.

Надеюсь ето локальный пусть для сервера , а не вашей рабочей станции ?
12 фев 15, 15:33    [17256650]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Glory,

Ну в целом "да", я ищу решение типовое

"выбрать данные из CSV файла OpenRowSet-ом"


Собственно стандартный ЦСВ, стандартная задача.

Путь к файлу указал, драйвер указан (и установлен), имя файла указано.

Где ошибка?

по
автор
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver] Your network access was interrupted. To continue, close the database, and then open it again.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x4578 Thread 0x3240 DBC 0x21988038 Text'.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x4578 Thread 0x3240 DBC 0x21988038 Text'.".
Msg 7303, Level 16, State 1, Line 7
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".


гуглится тпа этого,
https://social.msdn.microsoft.com/Forums/expression/en-US/52f0914c-9e7e-450f-a700-67d2628027e4/cannot-initialize-the-data-source-object-of-ole-db-provider-msdasql-for-linked-server-null?forum=sqldataaccess
12 фев 15, 15:35    [17256667]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Maxx_UA
NIIIK

DefaultDir=C:\Temp

.

Надеюсь ето локальный пусть для сервера , а не вашей рабочей станции ?


Да, путь правильный.

Для локального СКЛя я меняю на другой.
12 фев 15, 15:35    [17256675]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
NIIIK
Где ошибка?

Если вы не умеете составлять правильные строки коннекта самостоятельно, то вы можете
- создать системный ODBC DSN и указать sql-ю его использовать
- создать файловый ODBC DSN и, открыв полученный файл текстовым редактором, узреть разрешенные атрибуты
12 фев 15, 15:40    [17256711]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Glory,

Я не понимаю вашего ответа на мой вопрос.

У меня типовой ЦСВ файл. Уже даже руками написанный и упрощённый.

Я испольщую код в духе
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Access Text Driver (*.txt, *.csv)}; DefaultDir=C:\Temp','select * from test.csv')


С, как мне кажется, правильной строкой

Я вижу ошибку

автор
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver] Your network access was interrupted. To continue, close the database, and then open it again.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2094 Thread 0x33d0 DBC 0x1888468 Text'.".
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2094 Thread 0x33d0 DBC 0x1888468 Text'.".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".


И у меня установлен
http://www.microsoft.com/en-us/download/details.aspx?id=20065

В чём может быть проблема?

заранее спасибо.
12 фев 15, 15:44    [17256746]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
NIIIK
Я не понимаю вашего ответа на мой вопрос.

А я не понимаю, почему нужно за ваш решать проблему правильной строки коннектаа

NIIIK
У меня типовой ЦСВ файл. Уже даже руками написанный и упрощённый

Какое отношение файл имеет к аттрибутам строки коннекта ?

NIIIK
С, как мне кажется, правильной строкой

Вот именно, что кажется
12 фев 15, 15:46    [17256762]     Ответить | Цитировать Сообщить модератору
 Re: Селект из csv-файла  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Glory,

Я вас не силой принуждаю решать вроде бы.
Тем более не "решать", а найти ошибку в тех же примерах с интернета которую я не в состоянии найти, если она есть.

Предыдущий текст вам вроде печатать не сложно было? Если явно ошибки видите - почему не написали?
Натура что ли такая гнилая?

Кстати, если писать полный путь или слеш в конце примера моего, то срабатывает.

Из-за этого вы тут с пафосом постите ответы без ответов на вопросы?

Нормальный ответ в данном случае "вы слеш в конце теряете" (а примеры были без него).
12 фев 15, 15:51    [17256805]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить