Clarion Database Drivers

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

Привет всем!

Для доступа к базам данных сервера SAP Sybase SQL Anywhere IDE Clarion на основе шаблонов генерирует исходный код Clarion из данных словаря (Dictionery), в словаре выбран Clarion Driver SQLAnywhere, после успешной генерации и сборке приложения, самим приложением нормально создаются таблицы в базе данных сервера SAP Sybase SQL Anywhwere с типом данных столбца (Date Type) - "date", как и определено в словаре - "DATE" :D

Однако, когда я добавляю в Global Embeds свои данные (глобальные данные, ссылки на сторонние библиотеки, свои процедуры, функции) без изменений в словаре, моё вновь сгенерированное и собранное Clarion приложение в базе данных сервера SAP Sybase SQL Anywhere создаёт таблицу в базе данных сервера SAP Sybase SQL Anywhere с типом данных столбца (Date Type) - "double", хотя в словаре определён тип "DATE" :idied:

Для совместимости, при использовании баз данных SQL серверов, предпочтительнее использовать в столбцах таблиц SQL серверов стандартные SQL типы :D


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

Clarion Database Drivers

Сообщение kreator »

Вериться с трудом. Уверен, что нет другого описания таблиц и их создания на основе этого описания?
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

kreator писал(а): 05 Декабрь 2018, 11:35 Вериться с трудом. Уверен, что нет другого описания таблиц и их создания на основе этого описания?
Заметил случайно. Само приложение работает нормально, и правильно отображает дату в зависимости от типа столбца и соответствует типу "определения" Clarion SQLAnywhere драйвера - "double" - тип даты Clarion, "date" - тип даты ISO 8601 YYYY-MM-DD :D
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion Database Drivers

Сообщение kreator »

Если на стороне сервака поле типа "double", то в Sybase Central Вы не увидите правильной информации. Но дело не в этом. Надо выяснить какой кусок в глобальных эмбедсах создаёт таблицу, несоответствующую описанию в словаре. Все таблицы с такими проблемами? Поменяйте в словаре поле с типом Date на, допустим, тип String. На сервере будет Double? Я в чудеса не верю.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

kreator писал(а): 05 Декабрь 2018, 17:15Если на стороне сервака поле типа "double", то в Sybase Central Вы не увидите правильной информации. Но дело не в этом. Надо выяснить какой кусок в глобальных эмбедсах создаёт таблицу, несоответствующую описанию в словаре. Все таблицы с такими проблемами? Поменяйте в словаре поле с типом Date на, допустим, тип String. На сервере будет Double? Я в чудеса не верю.

Все таблицы имеют столбцы в базах данных сервера SAP Sybase SQL Anywhere либо "double", либо "date" - одновременно двух типов нет :wink:

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

Clarion Database Drivers

Сообщение kreator »

Не понял. Есть таблица в словаре. В неё поле типа Date. На сервере приложением создаётся эта таблица, у неё поле типа Double. А если в словаре у этого поля поменять тип на String, что будет на сервере?
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

kreator писал(а): 05 Декабрь 2018, 17:40Не понял. Есть таблица в словаре. В неё поле типа Date. На сервере приложением создаётся эта таблица, у неё поле типа Double. А если в словаре у этого поля поменять тип на String, что будет на сервере?
На сервере SAP Sybase SQL Anywhere в базе данных создалась таблица со столбцом типа "char" и дата в ней в формате "Clarion Date": 79596 - 01.12.2018
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion Database Drivers

Сообщение kreator »

Попробую на выходных дома посмотреть. Но вообще странно как-то.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

kreator писал(а): 06 Декабрь 2018, 15:03Попробую на выходных дома посмотреть. Но вообще странно как-то.
Kreator, спасибо за проявленный интерес и помощь :D
Для меня, такая ситуация пока непонятна :(
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion Database Drivers

Сообщение kreator »

Попробовал. Создал таблицу в словаре с полями разных типов и с опцией "Create". Приложение, созданное на основе этого словаря, создало на сервере эту таблицу. Без чудес. Поле типа "Date" стало полем типа "Date", поле типа "Real" стало "Double". Ну и другие соответственно ожиданиям. C10 не самой последней версии, SA12.
Всё-таки предлагаю разобраться с глобальными эмбедсами, раз грешите на них. Можно ещё вот что сделать. Явно, до этих глобальных эмбедсов создать таблицу. Или попробовать открыть эту таблицу, кажется таблица должна создастся при этом. Может где-то декларация таблицы меняется. Повторюсь - в чудеса не верю.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

Kreator, спасибо за проделанную работу! :D

Как я и писал, без подключения Embed-ов, ситуация у меня аналогична.

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

Clarion Database Drivers

Сообщение kreator »

Если посмотреть help, то без потери точности bigint это decimal или pdecimal.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Database Drivers

Сообщение Developer »

kreator писал(а): 09 Декабрь 2018, 19:03Если посмотреть help, то без потери точности bigint это decimal или pdecimal.
Да, всё правильно, вот только как правильно декларировать в словаре (в исходном коде)?
- указываешь DECIMAL - и на сервере создаётся таблица со столбцом типа "decimal" - а надо "Bigint" :wink:
С Уважением, Developer
Ответить