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

Откуда: Лисичанск
Сообщений: 334
Никто не сталкивался? Нужно выбрать данные из таблицы на Pervasive подключенной через linked server. Но эта самая таблица называется например так "2003_11_BANK_RST", а потому запрос

select * from fin...2003_11_BANK_RST

говорит
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '.2003'.

как бы с этим справиться??
Homo homini lupus est
4 дек 03, 09:31    [445833]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Может так попробовать.

select * from fin...[2003_11_BANK_RST] 
4 дек 03, 09:40    [445851]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Igel
Member

Откуда:
Сообщений: 64
А так:
select * from fin...[2003_11_BANK_RST]
4 дек 03, 09:44    [445856]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Тогда говорит

Server: Msg 7306, Level 16, State 2, Line 1
Could not open table '2003_11_BANK_RST' from OLE DB provider 'MSDASQL'. The specified table does not exist.
[OLE/DB provider returned message: [Pervasive][ODBC Client Interface][LNA][Pervasive][ODBC Engine Interface]Syntax Error: select * from 2003<< ??? >>_11_BANK_RST]
OLE DB error trace [OLE/DB Provider 'MSDASQL' IOpenRowset::OpenRowset returned 0x80040e37: The specified table does not exist.].

Homo homini lupus est
4 дек 03, 09:44    [445858]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Igel
Member

Откуда:
Сообщений: 64
2pkarklin: вот ведь, обогнал, пока я писал :)
4 дек 03, 09:47    [445865]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1718
Так не прокатит.
Попробуй полностью указать Базу данных \ владельца таблицы.
4 дек 03, 10:05    [445913]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
то есть, владельца и базу? это запрос через линкед сервер к pervasive.sql там нет понятия владельца и базы.

Homo homini lupus est
4 дек 03, 10:14    [445929]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Glory
Member

Откуда:
Сообщений: 104751
???
select * from openquery(fin, 'select * from 2003_11_BANK_RST') AS a
4 дек 03, 10:15    [445933]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
2 Glory

Хм, то же самое

Server: Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing a query for execution against OLE DB provider 'MSDASQL'.
[OLE/DB provider returned message: [Pervasive][ODBC Client Interface][LNA][Pervasive][ODBC Engine Interface]Syntax Error:
select * from 2003<< ??? >>_11_BANK_RST]
OLE DB error trace [OLE/DB Provider 'MSDASQL' ICommandPrepare::Prepare returned 0x80040e14].
4 дек 03, 10:38    [446002]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5154
я так понимаю, Вы работаете с FinExpertом :))
Через удаленный сервер работает почему-то через раз,
я делал проще - создавал источник данных ODBC
и сам текст запроса:
select * from
openquery(ODBCSourceName, 'select * from MyTableName')
4 дек 03, 11:11    [446085]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5154
Хотя нет, всеравно создавал линкед сервер но не через драйвер Pervasive, а через ODBC
4 дек 03, 11:17    [446113]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Да, действительно это FinExpert :-)
4 дек 03, 11:32    [446173]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну так если сами драйвера говорят "[Pervasive][ODBC Client Interface][LNA][Pervasive][ODBC Engine Interface]Syntax Error:", то значит Syntax Error

кстати почему там в конце скобка нарисовалась ? - select * from 2003<< ??? >>_11_BANK_RST] ???
4 дек 03, 11:35    [446181]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5154
по-моему, дело в корявости синтаксиса SQL в Первасиве, я только что попробовал в SQL-DataManager (Pervasive) запрос:

select * from 2002_01_60OPER
выдало ошибку
ODBC Error: SQLSTATE = 37000, Native error code = 0
Syntax Error: select * from 2002<< ??? >>_01_60OPER

select * from "2002_01_60OPER" - а вот так работает, судя по всему ему нижние подчеркивания не нравятся, поэтому надо брать в кавычки, попробуйте, может получится
4 дек 03, 12:06    [446278]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Вот так вроде работает

select * from openquery(fin, 'select iCurrency from "2003_11_BANK_RST"') AS a


но

select * from openquery(fin, 'select * from "2003_11_BANK_RST"') AS a


говорит

Server: Msg 8114, Level 16, State 10, Line 1
Error converting data type DBTYPE_DBDATE to datetime.

ну тут что-нть придумаю
4 дек 03, 12:39    [446387]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Glory
Member

Откуда:
Сообщений: 104751
Наверное есть какая-то дата, выпадающая за рамки разрешенного в MSSQL диапазона дат.
4 дек 03, 12:43    [446395]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5154
попробуйте выбирать не все поля... исключите поля с датой, или поэксперементируйте с CAST
4 дек 03, 12:50    [446416]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive. Связанный вопрос  [new]
Guеst
Guest
У меня вопрос другого порядка... :))

Не удается создать linked server для Pervasive:
- ни через Pervasive'овский OLEDB-провайдер
- ни через ODBC.

Какие значения для первого и для второго случая нужно прописывать в поля:
Product Name:
Data source:
Provider string:
Location:
Catalog:
14 янв 04, 15:11    [491207]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Lucifer
Member

Откуда: Лисичанск
Сообщений: 334
Хм, у меня создалось. На сервере, там где стоит первазив (его сервисы), необходимо создать DSN используя Prvasive ODBC Engine interface. А потом клиентский DSN настоить через этот, и через него работать. по идее так, проверю, поправлюсь, ежели че.
Homo homini lupus est
14 янв 04, 17:02    [491531]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
iluha
Member

Откуда: E-burg
Сообщений: 94
ну UDL-файл через ODBC я создал - работает. через OLE DB не получилось. но в качестве Linked-server'а через ODBC никак не получается! :( действительно, что надо вводить в эти поля?

wbr, Iluha Companets
3 фев 04, 12:38    [518525]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Pervasive  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Доброго времени суток. Необходимо проводить настраиваемый импорт из Pervasive 9.5 в MS SQL Server 2008.
Никак не могу подобрать правильную строку соединения openrowset для получения данных из Pervasive. Должно быть что-то вроде:
SELECT * FROM OPENROWSET('PervasiveOLEDB','Location=ServerName;Data Source=BaseName',
'Select * from tbSource')
Получаю сообщение об ошибке:
"Поставщик OLE DB "PervasiveOLEDB" для связанного сервера "(null)" вернул сообщение "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Поставщик OLE DB "PervasiveOLEDB" для связанного сервера "(null)" вернул сообщение "Mode, Protection Level, or an unknown parameter has been set (incorrectly) in the connection string".
Сообщение 7303, уровень 16, состояние 1, строка 1
Не удалось проинициализировать объект источника данных поставщика OLE DB "PervasiveOLEDB" для связанного сервера "(null)""
Если использовать ODBC с предварительно созданным DSNforBase, то все работает:
SELECT * FROM OPENROWSET('MSDASQL', 'DSN=DSNforBase;', 'select * from tbSource')

Кажется, что не хватает самой малости.
Более подробно мои действия описаны тут:
https://www.sql.ru/forum/actualthread.aspx?bid=23&tid=595325
Но в том разделе никто не отвечает, решил написать еще и здесь.
17 апр 12, 16:41    [12428694]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Glory
Member

Откуда:
Сообщений: 104751
Шамиль Фаридович
вернул сообщение "Mode, Protection Level, or an unknown parameter has been set (incorrectly) in the connection string".

И что вы сделали со строкой соединения для добавления "Mode, Protection Level, or an unknown parameter" ?
17 апр 12, 16:44    [12428719]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Если посмотреть в пакет SSIS для выполнения импорта, то можно найти:
<DTS:Property DTS:Name="ConnectionString">Data Source=BaseName;Provider=Pervasive.SQL V9 OLE DB Provider;Location=ServerName;Persist Security Info=False;</DTS:Property>

Там нет ничего про Mode, Protection Level и все работает без ODBC
17 апр 12, 16:59    [12428846]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Glory
Member

Откуда:
Сообщений: 104751
Только вот Provider=Pervasive.SQL V9 OLE DB Provider разве тоже самое, что PervasiveOLEDB ?

И какую связь между OLEDB и ODBC вы ищите тоже непонятно
17 апр 12, 17:06    [12428897]     Ответить | Цитировать Сообщить модератору
 Re: Pervasive  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Под именем PervasiveOLEDB провайдер Pervasive.SQL V9 OLE DB Provider зарегистрирован в списке поставщиков для связанных серверов.
если в качестве провайдера указать "Pervasive.SQL V9 OLE DB Provider", то выдается сообщение об ошибке:
Поставщик OLE DB "Pervasive.SQL V9 OLE DB Provider" не зарегистрирован.
17 апр 12, 17:14    [12428966]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить