Доступ к базе TPS через SQL (без ODBC драйвера)

Программы на Clarion, шаблоны, библиотеки и пр.

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

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

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение kreator »

А для тех, кто в танке - текста нет в выложенном примере? Скачать не могу, на работе.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4553
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение finsoftrz »

Неа, только exe. Но без sqlite3.dll не запускается.
C6/C11, ШВС, tps/btrieve.
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение Developer »

finsoftrz писал(а): 13 Ноябрь 2018, 15:35 Неа, только exe. Но без sqlite3.dll не запускается.
Очень интересный пример :D
Надо искать исходники или "смоделировать" предположения реализации.

У меня работает без библиотеки sqlite3.dll в текущем каталоге, может настройках путей системы есть доступ к ней :wink:
С Уважением, Developer
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4553
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение finsoftrz »

Конечно, надо папочку клариона переименовать, например... А можете и не париться, я уже проверял.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7324
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Доступ к базе TPS через SQL (без ODBC драйвера)

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

Пойдём логическим путём, хотя до Нового года ещё время есть … ;)

1. По сути, таблицы SQLite ничем не отличаются от TPS;
2. SQLite - проект OpenSource, т.е. никто не мешает подменить таблицы SQLite на TPS …
3. Видимо, для простоты, используется некоторые вызовы готовых функций SQLite. Например трансляция T-SQL.
4. Не так давно, ДП "откларионил" какой-то OpenSource парсер JSON, видимо это продолжение проекта … ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение kreator »

Забавно. Мои наблюдения. База в броузе - tps. Потому что, изменение teachers.tps внешним средством сразу отображается в броузе. Русские буквы в базе поддерживаются. В SQL запросах не поддерживаются. Что может быть? ODBC-драйвер tps, sqlite3.dll - скрыть правду. Второй вариант. SQL синтаксис "на лету" преобразуется в обычный кларионовский код. Но несколько вариантов я проверил, не поймал.
В Query по-другому. Изменение в БД не приводят к изменениям в запросе. Закрытие этого окна и вновь открытие приводит.
Похоже как-то создаётся всё-таки SQLite база.
Ну и напоследок вот такая фигня.
test.png
Запись должна быть по идее одна и та же. Но броуз сработал как-то хитро. Одна запись из базы tps, другая из созданной в памяти SQLite. Чтобы получить такую картину, не надо нажимать на кнопку Apply, нужно колёсико мышки крутануть. Похоже, "синхронизация" баз происходит при нажатии на кнопки Apply и Reset.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение Yufil »

Решил посмотреть, как оно работает с трассировкой по драйверу tps. Вызвал trace.exe и прописал трассировку. Запустил, всё сработало, посмотрел. Решил трассировку отключить - и облом!

В общем, при первом обращении создался файл c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\10.0\drivers.ini
А при повторном - c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\drivers.ini.
Естественно, сбросить трассировку у меня не получилось, пришлось искать файлы и удалять передними конечностями...
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение Yufil »

Developer писал(а): 13 Ноябрь 2018, 19:49
finsoftrz писал(а): 13 Ноябрь 2018, 15:35 Неа, только exe. Но без sqlite3.dll не запускается.
Очень интересный пример :D
Надо искать исходники или "смоделировать" предположения реализации.

У меня работает без библиотеки sqlite3.dll в текущем каталоге, может настройках путей системы есть доступ к ней :wink:
Дизассемблировал программу - четыре функции из sqlite3.dll используются....
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение Дед Пахом »

Спасибо за интересное обсуждение и указанные недочёты ;-)
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение kreator »

Дед Пахом писал(а): 14 Ноябрь 2018, 19:59 Спасибо за интересное обсуждение и указанные недочёты
Молодец!!! Только мне пока смысл решения непонятен.
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение RaFaeL »

Смысл например может быть такой: у нас основное (коммерческое) приложение на MS SQL, плюс есть бесплатная однопользовательская демо-версия на TPS. Местами код пишется два раза - для SQL запросы, для TPS по старинке. Наверное, решение позволило бы этого избежать. Правда, у нас еще куча хранимок, х.з. как тут с этим, не вникал
arlean1
Активист
Сообщения: 114
Зарегистрирован: 24 Июль 2016, 22:34

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение arlean1 »

kreator писал(а): 13 Ноябрь 2018, 23:49Запись должна быть по идее одна и та же. Но броуз сработал как-то хитро. Одна запись из базы tps, другая из созданной в памяти SQLite. Чтобы получить такую картину, не надо нажимать на кнопку Apply, нужно колёсико мышки крутануть. Похоже, "синхронизация" баз происходит при нажатии на кнопки Apply и Reset.
Да, так и работает. Синхронизация может быть разной. В данном случае Apply - это скорее новая полная закачка, т.к. крутить колёсико - это просто обновление ListBox после подкачки изменённой строки.
Это же просто демонстрация, обсуждать можно технологию и вряд ли больше )))
Дед Пахом писал(а): 12 Ноябрь 2018, 22:53Если не верите, то тут пример.
Если нет исходников, то хотя бы откуда пример? А то скучно :nr: всухую
Последний раз редактировалось arlean1 15 Ноябрь 2018, 1:24, всего редактировалось 1 раз.
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение Developer »

arlean1 писал(а): 15 Ноябрь 2018, 0:29Если нет исходников, то хотя бы откуда пример? )))
https://clarionhub.com/t/sql-access-to- ... river/2228
We magicians do not reveal our secrets - фокусники не раскрывают секреты :mrgreen:

Михаил молодец!!! Этот пример и есть фокус :D
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение kreator »

RaFaeL писал(а): 14 Ноябрь 2018, 23:03 Смысл например может быть такой: у нас основное (коммерческое) приложение на MS SQL, плюс есть бесплатная однопользовательская демо-версия на TPS. Местами код пишется два раза - для SQL запросы, для TPS по старинке. Наверное, решение позволило бы этого избежать. Правда, у нас еще куча хранимок, х.з. как тут с этим, не вникал
Притянутый за уши пример. Сейчас не начало 2000-х. Однопользовательская версия может быть сразу на sqlite. TPS-то зачем? Вот у нас есть "мобильный" модуль. Да, немного неудобно, нужно установить на планшет FB (Firebird). SQLite был бы легче. Но возможности SQLite несравнимы с FB. И синтаксис, и хранимки, и триггеры.
Подозреваю, ДП знает больше, чем я, например. На выходе обещанная SV поддержка REACT. Предложен лёгкий способ переноса приложений с tps (а это во многих случаях однопользовательские системы) в мобильную среду. Возможно как временное решение. В общем, размечтался что-то я :mrgreen: .
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4553
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Доступ к базе TPS через SQL (без ODBC драйвера)

Сообщение finsoftrz »

Дедушка ищет, чтобы еще такого впарить буржуям... :-)
Как идея прикольно, но в моих проектах точно такое не нужно. У кого-то, возможно, в генераторах отчетов может быть задействована. Не обязательно загонять в sqlite всю базу. Можно какую-то начальную выборку (документы за период и записи из справочников по ссылкам, к примеру), а затем к ней применить дополнительную фильтрацию и сортировку на sql, сохраненную в настройках отчета. Как-то так...
C6/C11, ШВС, tps/btrieve.
Ответить