Драйвер Sybase SQL Anywhere
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Для Андрея Листьева.При копировании описания базы в словарь
с удаленного компа все работает под управлением персонального
(локального) сервера ASA,который поднимается автоматически, но это же не режим клиент-сервер, т.к.персональный сервер запускается на рабочей станции , но не на удаленном компе.
Для Андрея Синявского.Задание строки OWNER по правилам доки
ни к чему не приводит и справедливо только для персонального сервера.
Если поднят удаленнный network-сервер, то приложение клары ,запущенное с локального компа, удаленный сервер не видит.
Тем не менее, если на удаленном компе поднять сервер с параметрами
ссылки на конкретную DB-базу, а на рабочей станции запустить
Interactive SQL(ISQL), то на рабочей станции никакой сервер не запускается,однако висит задача DBclient(ее показывает ХР в списке запущенных задач).В старых версиях ASA был явный модуль запуска клиента(DBclient.EXE),на который есть явные ссылки в клариной доке.В версии 9.0.2 я такого модуля не нашел, тем не менее при запуске ISQL клиент как-то поднимается сам.
Так что проблема остается.Есть по-видимому какая-то хитрость для запуска клариных приложений , сделанных на прямом драйвере SQL Anywhere и работающих под управлением удаленного сервера.
Стоит отметить, что работа с удаленным сервером через ISQL впечатляет.На таблице объемом более 100 000 записей (банковская выписка) запрос примерно такого вида (по клариным меркам запрос не хилый)
select * from <имя таблицы> where
<номер документа> >=100 and <номер документа> <=98567 and
<сумма платежа> >=3000 and <сумма платежа> <=890123 and
<назначение платежа> = ' Зачисление на корсчет'
отрабатывается мгновенно на компе-сервере Р2 450 Мгц.
Так что очень бы хотелось победить эту проблему.
с удаленного компа все работает под управлением персонального
(локального) сервера ASA,который поднимается автоматически, но это же не режим клиент-сервер, т.к.персональный сервер запускается на рабочей станции , но не на удаленном компе.
Для Андрея Синявского.Задание строки OWNER по правилам доки
ни к чему не приводит и справедливо только для персонального сервера.
Если поднят удаленнный network-сервер, то приложение клары ,запущенное с локального компа, удаленный сервер не видит.
Тем не менее, если на удаленном компе поднять сервер с параметрами
ссылки на конкретную DB-базу, а на рабочей станции запустить
Interactive SQL(ISQL), то на рабочей станции никакой сервер не запускается,однако висит задача DBclient(ее показывает ХР в списке запущенных задач).В старых версиях ASA был явный модуль запуска клиента(DBclient.EXE),на который есть явные ссылки в клариной доке.В версии 9.0.2 я такого модуля не нашел, тем не менее при запуске ISQL клиент как-то поднимается сам.
Так что проблема остается.Есть по-видимому какая-то хитрость для запуска клариных приложений , сделанных на прямом драйвере SQL Anywhere и работающих под управлением удаленного сервера.
Стоит отметить, что работа с удаленным сервером через ISQL впечатляет.На таблице объемом более 100 000 записей (банковская выписка) запрос примерно такого вида (по клариным меркам запрос не хилый)
select * from <имя таблицы> where
<номер документа> >=100 and <номер документа> <=98567 and
<сумма платежа> >=3000 and <сумма платежа> <=890123 and
<назначение платежа> = ' Зачисление на корсчет'
отрабатывается мгновенно на компе-сервере Р2 450 Мгц.
Так что очень бы хотелось победить эту проблему.
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Все-таки удалось через ж... подрубиться к удаленному
серваку по следующему алгоритму:
1.В словаре оставил пустыми поля OWNER, Full Pathname,
пересобрал прогу
2.На рабочей станции запустил персональный(локальный) сервер АСА
3.Запустил свою прогу - сразу запустилась прога АСЫ, занимающаяся
регистрацией юзера- ввожу имя,пароль(DBA,SQL),в поле Имя сервера
ввожу имя уже запущенного на удаленном компе сервера.Поле Имя базы данных оставляю пустым(эта база уже подннята под удаленным сервером). Все работает нормально.Закрываю персональный сервер- все работает нормально.
Но, такое подключение на хрен никому не нужно
Выводы:
-проблема локализовалась - для Клары нужен скрипт,который подскажет ей,где искать удаленный сервак.Место и синтаксис этого скрипта на совести велосипедистов(в доке про это ничего нет)
-я думаю, что эта проблема существует для всех SQL-драйверов Клары
-может подскажут решение ребята из АРСИС(может быть А.Мялин)
серваку по следующему алгоритму:
1.В словаре оставил пустыми поля OWNER, Full Pathname,
пересобрал прогу
2.На рабочей станции запустил персональный(локальный) сервер АСА
3.Запустил свою прогу - сразу запустилась прога АСЫ, занимающаяся
регистрацией юзера- ввожу имя,пароль(DBA,SQL),в поле Имя сервера
ввожу имя уже запущенного на удаленном компе сервера.Поле Имя базы данных оставляю пустым(эта база уже подннята под удаленным сервером). Все работает нормально.Закрываю персональный сервер- все работает нормально.
Но, такое подключение на хрен никому не нужно
Выводы:
-проблема локализовалась - для Клары нужен скрипт,который подскажет ей,где искать удаленный сервак.Место и синтаксис этого скрипта на совести велосипедистов(в доке про это ничего нет)
-я думаю, что эта проблема существует для всех SQL-драйверов Клары
-может подскажут решение ребята из АРСИС(может быть А.Мялин)
http://www.infocity.kiev.ua/db/content/ ... tml#table2lsgsoftware писал(а):Все-таки удалось через ж... подрубиться к удаленному
-я думаю, что эта проблема существует для всех SQL-драйверов Клары
-может подскажут решение ребята из АРСИС(может быть А.Мялин)
пункт 3.1, все параметры соединения, разделитель ;
проблем со строкой соединения не видел, данный сервак юзал, если правильно её проинциализировать, а в словаре в OWNER установить эту глобальную переменную со знаком восклицания в начале.
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Андрею Мялину!!! Книга Степанова у меня есть и я всю ее прочитал.
Но из п. 3.1 нельзя понять, как и где указать строку связи с сервером
именно в кларе.Если тебе не трудно, то напиши конкретно
-где в словаре указать явно путь к серверу (напрямую или через
!path)-поле OWNER или Full pathname или что другое
-каков точный синтаксис этого пути-желатательно на конкретном примере
попытки задать путь(или owner) через
!path='eng=server_name;uid=dba;pwd=sql'
ни к чему не привели
Андрею Листьеву!!!
Наверное как все старые программисты, я недолюбливаю MS и в работе придерживаюсь старой пословицы "Чем ближе к церкви(сиречь к дядюшке Биллу),тем дальше от господа бога.Кларион,конечно.тоже не подарок, но я работаю с ним 15 лет
и по крупному он меня не подводил
Но из п. 3.1 нельзя понять, как и где указать строку связи с сервером
именно в кларе.Если тебе не трудно, то напиши конкретно
-где в словаре указать явно путь к серверу (напрямую или через
!path)-поле OWNER или Full pathname или что другое
-каков точный синтаксис этого пути-желатательно на конкретном примере
попытки задать путь(или owner) через
!path='eng=server_name;uid=dba;pwd=sql'
ни к чему не привели
Андрею Листьеву!!!
Наверное как все старые программисты, я недолюбливаю MS и в работе придерживаюсь старой пословицы "Чем ближе к церкви(сиречь к дядюшке Биллу),тем дальше от господа бога.Кларион,конечно.тоже не подарок, но я работаю с ним 15 лет
и по крупному он меня не подводил
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
Вот строка соединения для удалённого сервера и всё работаетlsgsoftware писал(а):Андрею Мялину!!! Книга Степанова у меня есть и я всю ее прочитал.
Но из п. 3.1 нельзя понять, как и где указать строку связи с сервером
именно в кларе.Если тебе не трудно, то напиши конкретно
-где в словаре указать явно путь к серверу (напрямую или через
!path)-поле OWNER или Full pathname или что другое
-каков точный синтаксис этого пути-желатательно на конкретном примере
попытки задать путь(или owner) через
!path='eng=server_name;uid=dba;pwd=sql'
ни к чему не привели
DatabaseName=asademo;EngineName=ANDREW;UID=dba;PWD=sql
правда я тестировал на ASA 6.1
P.S.
кому то нравится ASA, кому то MSSQL, кому то ещё что то, но наезжать на серваки, соединение к которыи устанавливается с пол пинка, по сравнению с ASA не стоит.
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Большое спасибо всем за советы и ответы.Я так понял ,что ответ
на свой вопрос я наверное вряд ли получу.Особенно благодарю
Андрея Мялина.Но твой последний совет не сработал.То что АСА9
здорово отличается от АСА6 - очевидно. Так в АСА9 нет модуля
DBclent.exe, который в АСА6 и отвечал за коннект с удаленнным сервером и все команды по инициализации из книги Степанова скорее
всего работают для АСА6. По-видимому, строку для АСА9 применительно к прямому драйверу Клары нужно писать как то по другому и об этом в России может никто и не знать.Андрей, Вы же дилеры велосипедистов и вас там наверняка знают.Может при случае
кинешь им это вопрос.Наверное, если иметь адово терпение, то методом тыка можно было бы и самому разобраться, но мое терпение
кончилось и я стал работать через ОДБС. Через драйвер ОДБС
подключение к удаленному серваку прошла не с полпинка, а 1/10
пинка. Просто завожу новый системный DSN с именем ХХХ, прописываю все необходимые параметры( протоколы, имя удаленного
сервака и т.д.) в штатном визарде ОДБС, а потом в словаре в поле
OWNER просто указываю ХХХ и больше ничего. Все работает без проблем. Андрею Листьеву - как видишь не нужно вообще никаких
string connect. Все делает Визард ОДБС.
на свой вопрос я наверное вряд ли получу.Особенно благодарю
Андрея Мялина.Но твой последний совет не сработал.То что АСА9
здорово отличается от АСА6 - очевидно. Так в АСА9 нет модуля
DBclent.exe, который в АСА6 и отвечал за коннект с удаленнным сервером и все команды по инициализации из книги Степанова скорее
всего работают для АСА6. По-видимому, строку для АСА9 применительно к прямому драйверу Клары нужно писать как то по другому и об этом в России может никто и не знать.Андрей, Вы же дилеры велосипедистов и вас там наверняка знают.Может при случае
кинешь им это вопрос.Наверное, если иметь адово терпение, то методом тыка можно было бы и самому разобраться, но мое терпение
кончилось и я стал работать через ОДБС. Через драйвер ОДБС
подключение к удаленному серваку прошла не с полпинка, а 1/10
пинка. Просто завожу новый системный DSN с именем ХХХ, прописываю все необходимые параметры( протоколы, имя удаленного
сервака и т.д.) в штатном визарде ОДБС, а потом в словаре в поле
OWNER просто указываю ХХХ и больше ничего. Все работает без проблем. Андрею Листьеву - как видишь не нужно вообще никаких
string connect. Все делает Визард ОДБС.
ну прикинь, приложение сетевое и будешь прописывать на каждом клиентском месте ODBC DSN, лучше всё таки использовать драйверное соединение, без использования ODBC DSN, что я всегда и делаю, в строке соединения можно указать все необходимы параметры для этого.lsgsoftware писал(а):я стал работать через ОДБС. Через драйвер ОДБС
подключение к удаленному серваку прошла не с полпинка, а 1/10
пинка. Просто завожу новый системный DSN с именем ХХХ, прописываю все необходимые параметры
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
Ну не скажи. Можно создать совершенно пустой ДатаСорс(Имя) с укаазнием используемого драйвера и все. Всё остальное можно модифицировать непосредственно из апликации.lsgsoftware писал(а): Андрею Листьеву - как видишь не нужно вообще никаких
string connect. Все делает Визард ОДБС.
Ну а для прямого коннекта надо использовать вот такой ситнаксис(проверял работает):
'<DatabaseName>, <User>, <Password>;ENG=<ServerName>;<Additional parameter>'
Обрати внимание на запятые и точку с запятой.

могу Вас обрадовать господа, игра в выборе прямого или ODBC DRIVER'а не стоила выведенного яйца, т к прямой тоже работает через ODBC, выигрыша в скоростях доступа никакого при использовании прямого драйвера,Andrew Listiev писал(а):lsgsoftware писал(а): Ну не скажи. Можно создать совершенно пустой ДатаСорс(Имя) с укаазнием используемого драйвера и все. Всё остальное можно модифицировать непосредственно из апликации.
Ну а для прямого коннекта надо использовать вот такой ситнаксис(проверял работает):
'<DatabaseName>, <User>, <Password>;ENG=<ServerName>;<Additional parameter>'
Обрати внимание на запятые и точку с запятой.
В обоих случаях можно использовать ODBC драйверное соединение, без создание каких либо ODBC DSN'ов
Glo_Owner = 'DRIVER={{ИмяODBCДрайвера};DatabaseName=asademo;EngineName=ANDREW;UID=dba;PWD=sql;<Additional parameter>'
данный OWNER подойдёт для обоих клашиных драйверов.
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
Ах вот где собака порылась!!!!!!!!!Andrew Myalin писал(а): Glo_Owner = 'DRIVER={{ИмяODBCДрайвера};DatabaseName=asademo;EngineName=ANDREW;UID=dba;PWD=sql;<Additional parameter>'
данный OWNER подойдёт для обоих клашиных драйверов.

Спасибо за инфу!
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04