Варианты Portable SQL

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Варианты Portable SQL

Сообщение kreator »

Вышел, наконец, Firebird3 RC2 - http://www.firebirdsql.org/en/firebird-3-0-0-rc2/. На их форуме говорят - можно вполне пользоваться. Релиз обещают к июню-июлю. Плюс этой версии ещё и в том, что можно использовать сервер как Embedded (нам типа это не нужно, но ребята говорят, что переключается режим в конфигурационном файле, поставка "всё-в-одном"). Плюс, те? кто пользовался уже FB3, имеют положительные отзывы (по сравнению с предыдущими релизами).
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

kreator писал(а): Вышел, наконец, Firebird3 RC2 - http://www.firebirdsql.org/en/firebird-3-0-0-rc2/. На их форуме говорят - можно вполне пользоваться. Релиз обещают к июню-июлю. Плюс этой версии ещё и в том, что можно использовать сервер как Embedded (нам типа это не нужно, но ребята говорят, что переключается режим в конфигурационном файле, поставка "всё-в-одном"). Плюс, те? кто пользовался уже FB3, имеют положительные отзывы (по сравнению с предыдущими релизами).
Kreator спасибо за новость!

Неужели будет бесплатным конкурентом SAP Sybase SQL Anywhere?

Понимаю, что прямого драйвера Clarion к Firebird нет - возможен ли connect без создания DSN ODBC или есть возможность создать DSN ODBC Runtime?

У тебя большой опыт с Firebird - поделись впечатлениями,
если будешь тестировать Firebird3 :D

Заранее благодарю!
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Варианты Portable SQL

Сообщение kreator »

Developer писал(а):возможен ли connect без создания DSN ODBC или есть возможность создать DSN ODBC Runtime?
Да, для Firebird'а не нужно это. Достаточно поставить только драйвер ODBC. Поднимается сам, и, надо заметить, достаточно быстро.
Developer писал(а):Неужели будет бесплатным конкурентом SAP Sybase SQL Anywhere?
Что-то я сильно сомневаюсь. Open source, во-первых. Во-вторых, команда очень похожа на секту :mrgreen: . Типа нас. "Мы лучшие, аллилуйя!!!". А у самих - конь не валялся. В 2016 году, наконец, научились работать с многоядерными процессорами (и то, это ещё надо проверять).
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

Kreator спасибо за мнение!

Есть вопрос по Firebird 3 RC2:

Сам тестировал новый Firebird 3 RC2?

Скачал Firebird 3 RC2 И ODBC x32 и x64 , установил на Windows 7 SP1 x64, запустил, создал тестовую базу, скачал новый IB-Expert зарегистрировал базу -
работает, однако при попытке подключения из приложения созданного в Clarion
вылетает ошибка - подскажи пожалуйста, рабочую Connection String без создания DSN.

Заранее благодарю!
С Уважением, Developer
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Варианты Portable SQL

Сообщение gromov »

Connect=DBNAME=<путь>
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

Gromov спасибо за отклик!
gromov писал(а):Connect=DBNAME=<путь>
Это только часть строки :mrgreen:

Вся проблема в том, что уже использовал различные комбинации Connection String:

https://www.connectionstrings.com/ibpho ... bc-driver/

Код: Выделить всё

Local database Firebird
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;
DBNAME=C:\database\myData.fdb;	Firebird

Remote connection to Firebird
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;
DBNAME=MyServer:C:\database\myData.fdb;The default TCP/IP port 3050 will be used.	Firebird

Specifying TCP/IP port number
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;
DBNAME=MyServer/3051:C:\database\myData.fdb;	Firebird

Using alias (aliases.conf)
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=aliasname;Example record in aliases.conf, aliasname = C:\database\myData.fdb

Но доступа из приложения созданного Clarion нет, ошибка :(

Поэтому и спрашиваю конкретную проверенную рабочую строку соединения
Clarion для Firebird 3 RC2.

Может проблема даже не в в строке: у меня установлен
Embarcadero RAD Studio 10 Seattle Embarcadero и InterBase XE7,
так вот когда работает сервис InterBase XE7 у Clarion ошибка одного типа
"File database is not found (08004)"
а когда остановлен другого типа "Unavialable database (08004)"

Из особенностей - так как Clarion создаёт x32 Application.exe, то для ODBC соединения необходимо в случае запуска на Windows x64 использовать ODBC x32 драйвер!

DSN создавать тоже для x32 ODBC драйвера с помощью утилиты администрирования ODBC именно C:\Windows\SysWOW64\odbcad32.exe :D

Жду мнений!
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

К базам данных Firebird и Interbase проверка соединения DSN пройдена успешно,
а из приложения сделанного Clarion ошибка.

Доступа нет, даже когда делаешь импорт из ODBC в новый словарь, а из него в Clarion Application Wizard генерируешь новое приложение.

В чём могут быть проблемы?
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

Совместное использование на одном компьютере Firebird и Interbase возможно :D

Проблему подключения созданного Clarion-ом Application.exe через DSN к Interbase и Firebird решил :D

А вот без DSN приложение созданное Clarion-ом с базой данных Firebird и Interbase не работает :(
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Варианты Portable SQL

Сообщение Developer »

Базовая Connection String DSN Less (без использования DSN):

Connection String for Firebird:
Connection String=DRIVER={{Firebird/InterBase(r) driver};DBName=D:\Database
\Firebird\FirebirdDatabase.FDB;UID=SYSDBA;PWD=masterkey;CHARSET=WIN1251;

Connection String for Interbase:
Connection String=DRIVER={{Firebird/InterBase(r) driver};DBName=D:\Database\Interbase\InterbaseDatabase.IB;UID=SYSDBA;PWD=masterkey;CHARSET=WIN1251;

Проблема частично решилась: так как для Firebird и Interbase в Connection String DRIVER={{Firebird/InterBase(r) driver} один и тот же, то приоритетом установлен драйвер Interbase и работает только база данных DBName=D:\Database\Interbase\InterbaseDatabase.IB сервера Interbase :D

Если DBName=D:\Database\Firebird\FirebirdDatabase.IB - ошибка Unsupported on-disk structure for file - путь на файл базы данных Firebird - так и должно быть - драйвер то от Interbase :wink:

Установка Firebird ODBC не заменяет драйвер с Interbase на Firebird :wink:

Возможно ли использовать на одном и том-же компьютере одновременно базы данных серверов Firebird и Interbase в Application.exe созданном Clarion-ом без применения DSN (Connection String DSN Less)?
С Уважением, Developer
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Варианты Portable SQL

Сообщение Игорь Столяров »

kreator писал(а): Да, для Firebird'а не нужно это. Достаточно поставить только драйвер ODBC.
Класс ! Установил - все работает с полутыка ! :)
Один лузерский вопрос: можно как-то саму БД (файл *.fdb ) создавать из приложения Clarion ?
Я сейчас саму БД создал через IBExpert, а списки в базе уже приложение создало. Спасибо ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Варианты Portable SQL

Сообщение kreator »

Игорь Столяров писал(а):Один лузерский вопрос: можно как-то саму БД (файл *.fdb ) создавать из приложения Clarion ?
Надумано, конечно. Ведь SQL база - это не только описание таблиц. Это и хранимки и триггеры и т.д. Если уж есть такая потребность, то можно сделать бэкап копию без данных, и потом восстанавливать (есть у них в поставке такая утилита gbak).
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Варианты Portable SQL

Сообщение kreator »

Можно просто иметь базу fdb без данных, но она много места занимает в отличие от бэкап копии. Ещё в SQL есть оператор "Create Database", вообще то что надо, но вот как его выполнить без коннекта?
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Варианты Portable SQL

Сообщение Shur »

В Firebird есть такие утилиты как:
isql.exe -- выполняет скрипт из командной строки, в том числе, говорят, можно создать и саму базу -- т.е. можно написать скрипт, который создаст базу, в ней создаст таблицы, к таблицам приделает индексы и триггеры, создаст хранимые процедуры.
gbak.exe -- осуществляет бэкапирование и восстановление из бэкапа. Тогда задача упрощается до простого восстановления базы, а пустые таблицы, триггеры и процедуры уже будут в базе существовать.

Эти варианты предпочтительнее, чем создавать базу и таблицы из клиента, написанного на Кларионе. Хотя никаких табу здесь нет. Перепробуйте всё и выбирайте на свой вкус.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Варианты Portable SQL

Сообщение Игорь Столяров »

OK ! Извиняюсь, за лузерские вопросы, но такое можно узнать только здесь ... :)

Если из программы создается таблица в базе Firebird - то имя таблицы задать можно (Full Pathname).
А вот индексы почему-то создаются с какими-то внутренними именами ... :(
External Name для ключа задано и никакой реакции на него ....
Так и должно быть или я опять чего-то не понял ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Варианты Portable SQL

Сообщение kreator »

Игорь, вообще строго говоря ключи в кларионовском словаре могут не совпадать со скульной базой. Что касается Firebird, то у меня есть подозрение, что External Name там не отрабатывается (просто так сложилось). И я бы не советовал словарь в ноль переносить в скульную БД. Почему? Есть специфика работы Клариона. Например, чтобы отобразить правильно таблицу, допустим, справочника в порядке наименования, нужно иметь ключ с полями Name и ID. Иначе будет неправильно отображаться. А в самой базе такого ключа быть не должно. Причём, есть мнение, что большое количество индексов в БД ухудшает быстродействие (я не подтверждаю).
We are hard at work… for you. :)
Ответить