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

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

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

Сообщение kreator » 13 Ноябрь 2018, 15:08

А для тех, кто в танке - текста нет в выложенном примере? Скачать не могу, на работе.
We are hard at work… for you. :)

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1265
Зарегистрирован: 06 Ноябрь 2014, 12:48

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

Сообщение finsoftrz » 13 Ноябрь 2018, 15:35

Неа, только exe. Но без sqlite3.dll не запускается.
Рязань решает.

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

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

Сообщение Developer » 13 Ноябрь 2018, 19:49

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

У меня работает без библиотеки sqlite3.dll в текущем каталоге, может настройках путей системы есть доступ к ней :wink:
С Уважением, Developer

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1265
Зарегистрирован: 06 Ноябрь 2014, 12:48

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

Сообщение finsoftrz » 13 Ноябрь 2018, 20:17

Конечно, надо папочку клариона переименовать, например... А можете и не париться, я уже проверял.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

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

Сообщение Игорь Столяров » 13 Ноябрь 2018, 20:22

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

1. По сути, таблицы SQLite ничем не отличаются от TPS;
2. SQLite - проект OpenSource, т.е. никто не мешает подменить таблицы SQLite на TPS …
3. Видимо, для простоты, используется некоторые вызовы готовых функций SQLite. Например трансляция T-SQL.
4. Не так давно, ДП "откларионил" какой-то OpenSource парсер JSON, видимо это продолжение проекта … ;)
«V» значит Вендетта !

kreator
✯ Ветеран ✯
Сообщения: 3334
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

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

Сообщение kreator » 13 Ноябрь 2018, 23:49

Забавно. Мои наблюдения. База в броузе - 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
Ветеран движения
Сообщения: 1123
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

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

Сообщение Yufil » 14 Ноябрь 2018, 11:54

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

В общем, при первом обращении создался файл c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\10.0\drivers.ini
А при повторном - c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\drivers.ini.
Естественно, сбросить трассировку у меня не получилось, пришлось искать файлы и удалять передними конечностями...

Yufil
Ветеран движения
Сообщения: 1123
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

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

Сообщение Yufil » 14 Ноябрь 2018, 18:42

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

У меня работает без библиотеки sqlite3.dll в текущем каталоге, может настройках путей системы есть доступ к ней :wink:
Дизассемблировал программу - четыре функции из sqlite3.dll используются....

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2276
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

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

Сообщение Дед Пахом » 14 Ноябрь 2018, 19:59

Спасибо за интересное обсуждение и указанные недочёты ;-)
С уважением, ДП

kreator
✯ Ветеран ✯
Сообщения: 3334
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

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

Сообщение kreator » 14 Ноябрь 2018, 22:47

Дед Пахом писал(а):
14 Ноябрь 2018, 19:59
Спасибо за интересное обсуждение и указанные недочёты
Молодец!!! Только мне пока смысл решения непонятен.
We are hard at work… for you. :)

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

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

Сообщение RaFaeL » 14 Ноябрь 2018, 23:03

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

arlean1
Активист
Сообщения: 109
Зарегистрирован: 24 Июль 2016, 22:34

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

Сообщение arlean1 » 15 Ноябрь 2018, 0:29

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

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

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

Сообщение Developer » 15 Ноябрь 2018, 1:11

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
✯ Ветеран ✯
Сообщения: 3334
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

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

Сообщение kreator » 15 Ноябрь 2018, 11:38

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
✯ Ветеран ✯
Сообщения: 1265
Зарегистрирован: 06 Ноябрь 2014, 12:48

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

Сообщение finsoftrz » 15 Ноябрь 2018, 12:18

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

Ответить