Драйвер Sybase SQL Anywhere

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Сообщение Andrew Listiev »

А сервак где?
softcreator
Ветеран движения
Сообщения: 78
Зарегистрирован: 04 Август 2005, 9:35
Контактная информация:

Сообщение softcreator »

А хз. Сам пользовал ASA очень давно - лет 6 назад, проектов не осталось даже на диске. Но этот вопрос и у меня возник - но я только привел выдержку из хелпа
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Сообщение lsgsoftware »

Для Андрея Листьева.При копировании описания базы в словарь
с удаленного компа все работает под управлением персонального
(локального) сервера 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 Мгц.
Так что очень бы хотелось победить эту проблему.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Сообщение lsgsoftware »

Все-таки удалось через ж... подрубиться к удаленному
серваку по следующему алгоритму:
1.В словаре оставил пустыми поля OWNER, Full Pathname,
пересобрал прогу
2.На рабочей станции запустил персональный(локальный) сервер АСА
3.Запустил свою прогу - сразу запустилась прога АСЫ, занимающаяся
регистрацией юзера- ввожу имя,пароль(DBA,SQL),в поле Имя сервера
ввожу имя уже запущенного на удаленном компе сервера.Поле Имя базы данных оставляю пустым(эта база уже подннята под удаленным сервером). Все работает нормально.Закрываю персональный сервер- все работает нормально.
Но, такое подключение на хрен никому не нужно
Выводы:
-проблема локализовалась - для Клары нужен скрипт,который подскажет ей,где искать удаленный сервак.Место и синтаксис этого скрипта на совести велосипедистов(в доке про это ничего нет)
-я думаю, что эта проблема существует для всех SQL-драйверов Клары
-может подскажут решение ребята из АРСИС(может быть А.Мялин)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

lsgsoftware писал(а):Все-таки удалось через ж... подрубиться к удаленному
-я думаю, что эта проблема существует для всех SQL-драйверов Клары
-может подскажут решение ребята из АРСИС(может быть А.Мялин)
http://www.infocity.kiev.ua/db/content/ ... tml#table2

пункт 3.1, все параметры соединения, разделитель ;

проблем со строкой соединения не видел, данный сервак юзал, если правильно её проинциализировать, а в словаре в OWNER установить эту глобальную переменную со знаком восклицания в начале.
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Сообщение Andrew Listiev »

Ну а все же, ответь на вопрос: "А зачем именно прямой драйвер?"

Ежели использовал бы ODBC, то можно было бы включить в connection string параметр CommLinks=<протокол>(HOST=<имя хоста|ip>) по документации ASA9 и никаких проблем.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Сообщение lsgsoftware »

Андрею Мялину!!! Книга Степанова у меня есть и я всю ее прочитал.
Но из п. 3.1 нельзя понять, как и где указать строку связи с сервером
именно в кларе.Если тебе не трудно, то напиши конкретно
-где в словаре указать явно путь к серверу (напрямую или через
!path)-поле OWNER или Full pathname или что другое
-каков точный синтаксис этого пути-желатательно на конкретном примере
попытки задать путь(или owner) через
!path='eng=server_name;uid=dba;pwd=sql'
ни к чему не привели
Андрею Листьеву!!!
Наверное как все старые программисты, я недолюбливаю MS и в работе придерживаюсь старой пословицы "Чем ближе к церкви(сиречь к дядюшке Биллу),тем дальше от господа бога.Кларион,конечно.тоже не подарок, но я работаю с ним 15 лет
и по крупному он меня не подводил
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Сообщение Andrew Listiev »

Ну вот дался тебе этот прямой коннект. :lol: Я сейчас свяжусь с другом, он в свою бытность использовал С5 и ASA6. Спрошу, может чего вспомнит :)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

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 не стоит.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Сообщение lsgsoftware »

Большое спасибо всем за советы и ответы.Я так понял ,что ответ
на свой вопрос я наверное вряд ли получу.Особенно благодарю
Андрея Мялина.Но твой последний совет не сработал.То что АСА9
здорово отличается от АСА6 - очевидно. Так в АСА9 нет модуля
DBclent.exe, который в АСА6 и отвечал за коннект с удаленнным сервером и все команды по инициализации из книги Степанова скорее
всего работают для АСА6. По-видимому, строку для АСА9 применительно к прямому драйверу Клары нужно писать как то по другому и об этом в России может никто и не знать.Андрей, Вы же дилеры велосипедистов и вас там наверняка знают.Может при случае
кинешь им это вопрос.Наверное, если иметь адово терпение, то методом тыка можно было бы и самому разобраться, но мое терпение
кончилось и я стал работать через ОДБС. Через драйвер ОДБС
подключение к удаленному серваку прошла не с полпинка, а 1/10
пинка. Просто завожу новый системный DSN с именем ХХХ, прописываю все необходимые параметры( протоколы, имя удаленного
сервака и т.д.) в штатном визарде ОДБС, а потом в словаре в поле
OWNER просто указываю ХХХ и больше ничего. Все работает без проблем. Андрею Листьеву - как видишь не нужно вообще никаких
string connect. Все делает Визард ОДБС.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

lsgsoftware писал(а):я стал работать через ОДБС. Через драйвер ОДБС
подключение к удаленному серваку прошла не с полпинка, а 1/10
пинка. Просто завожу новый системный DSN с именем ХХХ, прописываю все необходимые параметры
ну прикинь, приложение сетевое и будешь прописывать на каждом клиентском месте ODBC DSN, лучше всё таки использовать драйверное соединение, без использования ODBC DSN, что я всегда и делаю, в строке соединения можно указать все необходимы параметры для этого.
Аватара пользователя
Andrew Listiev
Активист
Сообщения: 166
Зарегистрирован: 07 Июль 2005, 11:16
Откуда: Латвия, Рига

Сообщение Andrew Listiev »

lsgsoftware писал(а): Андрею Листьеву - как видишь не нужно вообще никаких
string connect. Все делает Визард ОДБС.
Ну не скажи. Можно создать совершенно пустой ДатаСорс(Имя) с укаазнием используемого драйвера и все. Всё остальное можно модифицировать непосредственно из апликации.

Ну а для прямого коннекта надо использовать вот такой ситнаксис(проверял работает):

'<DatabaseName>, <User>, <Password>;ENG=<ServerName>;<Additional parameter>'

Обрати внимание на запятые и точку с запятой. :wink:
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Andrew Listiev писал(а):
lsgsoftware писал(а): Ну не скажи. Можно создать совершенно пустой ДатаСорс(Имя) с укаазнием используемого драйвера и все. Всё остальное можно модифицировать непосредственно из апликации.

Ну а для прямого коннекта надо использовать вот такой ситнаксис(проверял работает):

'<DatabaseName>, <User>, <Password>;ENG=<ServerName>;<Additional parameter>'

Обрати внимание на запятые и точку с запятой. :wink:
могу Вас обрадовать господа, игра в выборе прямого или ODBC DRIVER'а не стоила выведенного яйца, т к прямой тоже работает через ODBC, выигрыша в скоростях доступа никакого при использовании прямого драйвера,

В обоих случаях можно использовать 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 Listiev »

Andrew Myalin писал(а): Glo_Owner = 'DRIVER={{ИмяODBCДрайвера};DatabaseName=asademo;EngineName=ANDREW;UID=dba;PWD=sql;<Additional parameter>'
данный OWNER подойдёт для обоих клашиных драйверов.
Ах вот где собака порылась!!!!!!!!! :evil: А я думаю, ну неужели все свойства ODBC можно менять через коннест стринг, а драйвер надо указывать в ODBC. !!!!

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

Сообщение lsgsoftware »

Так что же получается - "прямой драйвер" клары это всего лишь замаскированная ссылка на родной ОДБС-драйвер конкретной
SQL-СУБД ???Что же тогда продается в АРСИСе под названием
Oracle accelerator по цене 1300$ ???
Ответить