Страница 1 из 1

Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 16 Ноябрь 2014, 4:05
Developer
Привет всем!

Clarion 9 9.0.10376

Подскажите пожалуйста, с чем связана ошибка Unsupported File Driver Function (80) создания (открытия ранее созданной таблицы через драйвер SQLAnywhere) таблицы в базе данных сервера Sybase ASA приложением Clarion которое создано Application Wizard по словарю с применением драйвера ADO? :?:

Database FILE,DRIVER('ADO'),OWNER('Provider=SAOLEDB.16;Password=sql;Persist Security Info=True;User ID=DBA;
Data Source=192.168.131.25'),PRE(DAT),BINDABLE,CREATE,THREAD !

или

Database FILE,DRIVER('ADO'),OWNER('Provider=SAOLEDB.16;Password=sql;Persist Security Info=True;User ID=DBA;
Data Source=SybaseASASQLServer'),PRE(DAT),BINDABLE,CREATE,THREAD !

При проверке соединения с базой данных в Sybase Central по строке соединения Provider=SAOLEDB.16;Password=sql;Persist Security Info=True;User ID=DBA;Data Source=SybaseASASQLServer проблем нет.

Проверка соединения через файл UDL с той же строкой соединения проходит успешно.


В словаре (DCT)
Driver ADO
Owner Name Provider=SAOLEDB.16;Password=sql;Persist Security Info=True;User ID=DBA;Data Source=SybaseASASQLServer

При применение драйвера SQLAnywhere проблем нет :D


Использование в Global Extension Add Include file for ADO support in your application Connection string source from Dictionery приложение завершает работу без доступа к базе данных сервера Sybase ASA 16. :(

При получении доступа к серверу Microsoft SQL Server 2008 SP1 через драйвер ADO ошибка Unsupported File Driver Function (80) :(

Заранее благодарен за ответы!

Re: Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 16 Ноябрь 2014, 16:50
Yufil
Скорее всего, в словаре описано поле, тип которого не поддерживается базой данных. Не все поддерживают Blob, например...

Re: Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 16 Ноябрь 2014, 17:23
Developer
Юрий спасибо за отклик!

Но используя тот-же словарь и применяя драйвер SQLAnywhere проблем нет! Приложение получает доступ к базе, создаёт таблицу и работает.

Re: Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 18 Ноябрь 2014, 18:38
AlexSmile
Привет тезка.
Тут все дело в драйверах, полагаю что ADO не знает синтаксис создания таблицы в Sybase ASA, а нативный дравер понятное дело знает.
В принципе решение есть, можешь сначала проверить наличие таблицы в БД, если ее нет то создать.
Вот пример поиска
select * from SysTable where table_name='mytable'
Пример создания ( в мануале подробнее)
create table dba.mytable(f1 integer,f2 integer) и тыды
Только клиент конечно должен иметь админские полномочия.
Удачи.

Re: Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 19 Ноябрь 2014, 15:43
Developer
Наверное проблема создания таблицы в том, что приложение созданное с помощью Application Wizard по идентичному словарю но отличающемуся только применение драйвера на ADO не получает доступа к базе данных и соответственно не может создать в ней таблицу.

Проверял так: создал словарь (драйвер SQLAnywhere), по нему приложение с помощью Application Wizard, запустил созданное приложение,
создалась таблица, добавил информацию в таблицу - приложение работает.

Если создаёшь приложение с помощью Application Wizard по идентичному словарю, с применением драйвера ADO и созданием Connection String с помощью Connection Builder то созданное приложение не получает доступа к существующей базе данных и не отображает ранее добавленную информацию из существующей таблицы.

Может есть, у кого какие мысли, прошу сообщить по данной теме.

Re: Ошибка создания таблицы на SQL сервере через драйвер ADO

Добавлено: 20 Ноябрь 2014, 12:40
Developer
Выяснил, что Application Wizard для драйвера ADO в Clarion на прямую не применим.
В примере по ADO используют специальные шаблоны для драйвера ADO - Defaults - Class ABC_ADO SoftVelocity ADO Template
которые не использует Application Wizard.

Применив ADOBrowse, получил доступ к информации в таблице на SQL сервере Sybase SQL Anywhere из приложения Clarion.

Однако, пока создать таблицу и добавить новую запись невозможно.

Необходимо искать решение связанное с применением драйвера ADO в CLarion дальше.