Доступ к базе TPS через SQL (без ODBC драйвера)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5002
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
А для тех, кто в танке - текста нет в выложенном примере? Скачать не могу, на работе.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4657
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Неа, только exe. Но без sqlite3.dll не запускается.
C6/C11, ШВС, tps/btrieve.
Доступ к базе TPS через SQL (без ODBC драйвера)
Очень интересный пример
Надо искать исходники или "смоделировать" предположения реализации.
У меня работает без библиотеки sqlite3.dll в текущем каталоге, может настройках путей системы есть доступ к ней
С Уважением, Developer
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4657
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Конечно, надо папочку клариона переименовать, например... А можете и не париться, я уже проверял.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7410
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Пойдём логическим путём, хотя до Нового года ещё время есть …
1. По сути, таблицы SQLite ничем не отличаются от TPS;
2. SQLite - проект OpenSource, т.е. никто не мешает подменить таблицы SQLite на TPS …
3. Видимо, для простоты, используется некоторые вызовы готовых функций SQLite. Например трансляция T-SQL.
4. Не так давно, ДП "откларионил" какой-то OpenSource парсер JSON, видимо это продолжение проекта …
1. По сути, таблицы SQLite ничем не отличаются от TPS;
2. SQLite - проект OpenSource, т.е. никто не мешает подменить таблицы SQLite на TPS …
3. Видимо, для простоты, используется некоторые вызовы готовых функций SQLite. Например трансляция T-SQL.
4. Не так давно, ДП "откларионил" какой-то OpenSource парсер JSON, видимо это продолжение проекта …
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5002
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Забавно. Мои наблюдения. База в броузе - tps. Потому что, изменение teachers.tps внешним средством сразу отображается в броузе. Русские буквы в базе поддерживаются. В SQL запросах не поддерживаются. Что может быть? ODBC-драйвер tps, sqlite3.dll - скрыть правду. Второй вариант. SQL синтаксис "на лету" преобразуется в обычный кларионовский код. Но несколько вариантов я проверил, не поймал.
В Query по-другому. Изменение в БД не приводят к изменениям в запросе. Закрытие этого окна и вновь открытие приводит.
Похоже как-то создаётся всё-таки SQLite база.
Ну и напоследок вот такая фигня. Запись должна быть по идее одна и та же. Но броуз сработал как-то хитро. Одна запись из базы tps, другая из созданной в памяти SQLite. Чтобы получить такую картину, не надо нажимать на кнопку Apply, нужно колёсико мышки крутануть. Похоже, "синхронизация" баз происходит при нажатии на кнопки Apply и Reset.
В Query по-другому. Изменение в БД не приводят к изменениям в запросе. Закрытие этого окна и вновь открытие приводит.
Похоже как-то создаётся всё-таки SQLite база.
Ну и напоследок вот такая фигня. Запись должна быть по идее одна и та же. Но броуз сработал как-то хитро. Одна запись из базы tps, другая из созданной в памяти SQLite. Чтобы получить такую картину, не надо нажимать на кнопку Apply, нужно колёсико мышки крутануть. Похоже, "синхронизация" баз происходит при нажатии на кнопки Apply и Reset.
We are hard at work… for you.
Доступ к базе TPS через SQL (без ODBC драйвера)
Решил посмотреть, как оно работает с трассировкой по драйверу tps. Вызвал trace.exe и прописал трассировку. Запустил, всё сработало, посмотрел. Решил трассировку отключить - и облом!
В общем, при первом обращении создался файл c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\10.0\drivers.ini
А при повторном - c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\drivers.ini.
Естественно, сбросить трассировку у меня не получилось, пришлось искать файлы и удалять передними конечностями...
В общем, при первом обращении создался файл c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\10.0\drivers.ini
А при повторном - c:\Users\Yufil\AppData\Roaming\SoftVelocity\Clarion\drivers.ini.
Естественно, сбросить трассировку у меня не получилось, пришлось искать файлы и удалять передними конечностями...
Доступ к базе TPS через SQL (без ODBC драйвера)
Дизассемблировал программу - четыре функции из sqlite3.dll используются....
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
Доступ к базе TPS через SQL (без ODBC драйвера)
Спасибо за интересное обсуждение и указанные недочёты
С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 5002
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Молодец!!! Только мне пока смысл решения непонятен.
We are hard at work… for you.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Доступ к базе TPS через SQL (без ODBC драйвера)
Смысл например может быть такой: у нас основное (коммерческое) приложение на MS SQL, плюс есть бесплатная однопользовательская демо-версия на TPS. Местами код пишется два раза - для SQL запросы, для TPS по старинке. Наверное, решение позволило бы этого избежать. Правда, у нас еще куча хранимок, х.з. как тут с этим, не вникал
Доступ к базе TPS через SQL (без ODBC драйвера)
Да, так и работает. Синхронизация может быть разной. В данном случае Apply - это скорее новая полная закачка, т.к. крутить колёсико - это просто обновление ListBox после подкачки изменённой строки.kreator писал(а): ↑13 Ноябрь 2018, 23:49Запись должна быть по идее одна и та же. Но броуз сработал как-то хитро. Одна запись из базы tps, другая из созданной в памяти SQLite. Чтобы получить такую картину, не надо нажимать на кнопку Apply, нужно колёсико мышки крутануть. Похоже, "синхронизация" баз происходит при нажатии на кнопки Apply и Reset.
Это же просто демонстрация, обсуждать можно технологию и вряд ли больше )))
Если нет исходников, то хотя бы откуда пример? А то скучно всухую
Последний раз редактировалось arlean1 15 Ноябрь 2018, 1:24, всего редактировалось 1 раз.
Доступ к базе TPS через SQL (без ODBC драйвера)
https://clarionhub.com/t/sql-access-to- ... river/2228
We magicians do not reveal our secrets - фокусники не раскрывают секреты
Михаил молодец!!! Этот пример и есть фокус
С Уважением, Developer
-
- ✯ Ветеран ✯
- Сообщения: 5002
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Притянутый за уши пример. Сейчас не начало 2000-х. Однопользовательская версия может быть сразу на sqlite. TPS-то зачем? Вот у нас есть "мобильный" модуль. Да, немного неудобно, нужно установить на планшет FB (Firebird). SQLite был бы легче. Но возможности SQLite несравнимы с FB. И синтаксис, и хранимки, и триггеры.RaFaeL писал(а): ↑14 Ноябрь 2018, 23:03 Смысл например может быть такой: у нас основное (коммерческое) приложение на MS SQL, плюс есть бесплатная однопользовательская демо-версия на TPS. Местами код пишется два раза - для SQL запросы, для TPS по старинке. Наверное, решение позволило бы этого избежать. Правда, у нас еще куча хранимок, х.з. как тут с этим, не вникал
Подозреваю, ДП знает больше, чем я, например. На выходе обещанная SV поддержка REACT. Предложен лёгкий способ переноса приложений с tps (а это во многих случаях однопользовательские системы) в мобильную среду. Возможно как временное решение. В общем, размечтался что-то я .
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4657
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Доступ к базе TPS через SQL (без ODBC драйвера)
Дедушка ищет, чтобы еще такого впарить буржуям...
Как идея прикольно, но в моих проектах точно такое не нужно. У кого-то, возможно, в генераторах отчетов может быть задействована. Не обязательно загонять в sqlite всю базу. Можно какую-то начальную выборку (документы за период и записи из справочников по ссылкам, к примеру), а затем к ней применить дополнительную фильтрацию и сортировку на sql, сохраненную в настройках отчета. Как-то так...
Как идея прикольно, но в моих проектах точно такое не нужно. У кого-то, возможно, в генераторах отчетов может быть задействована. Не обязательно загонять в sqlite всю базу. Можно какую-то начальную выборку (документы за период и записи из справочников по ссылкам, к примеру), а затем к ней применить дополнительную фильтрацию и сортировку на sql, сохраненную в настройках отчета. Как-то так...
C6/C11, ШВС, tps/btrieve.