Подскажите по работе с MSSQL из Clarion 5EE
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Подскажите по работе с MSSQL из Clarion 5EE
Пытался в лоб перевести приложение с топспидовских таблиц в MSSQL, шаблоны стандартные, не ABC. Ничего хорошего не вышло, browse еще худо бедно показывает данные, а вот в форме подымаются данные только в тех полях, которые описаны в browse, остальные - пустые.
И добавление/удаление/изменение записи тоже не работает - только ошибками сыпет.
Как в общем и целом сделать правильно?
И добавление/удаление/изменение записи тоже не работает - только ошибками сыпет.
Как в общем и целом сделать правильно?
Подскажите по работе с MSSQL из Clarion 5EE
Для начала в Словаре в каждой таблице найди уникальный ключик и поставь на него флажок Primary.
Разумеется, каждая таблица в SQL тоже должна иметь ключ Primary...
Разумеется, каждая таблица в SQL тоже должна иметь ключ Primary...
Подскажите по работе с MSSQL из Clarion 5EE
Вот ведь...у меня как раз табличка без уникального ключика, соответственно Primary закрыт. Это обязательное требование?
Подскажите по работе с MSSQL из Clarion 5EE
Абсолютно обязательное. SQL драйвер просто не в состоянии найти запись в таблице, если не знает её первичного ключа, Pointer здесь не канает...
Подскажите по работе с MSSQL из Clarion 5EE
Yufil, мне думается, что это не совсем так. Драйвер не ищет конкретную запись, ему это не нужно. Он генерирует sql-команду и передает её на исполнение на сервер, при этом в предложении where он перечисляет все поля с их необновлёнными текущими значениями. И если в таблице имеется несколько совершенно одинаковых записей, то все они будут обновлены или удалены в зависимости от того, что вы пытаетесь сделать.
Последний раз редактировалось Shur 09 Июнь 2016, 16:57, всего редактировалось 1 раз.
Подскажите по работе с MSSQL из Clarion 5EE
Специфику работы legacy шаблонов в применении с SQL не очень знаю, поскольку работал с ABC.
Но посоветовать можно пометить не участвующие поля броуза как Hot Fields.
И прислать нам сюда точные сообщения об ошибках. Может что и прояснится.
Подскажите по работе с MSSQL из Clarion 5EE
SQL Accelerator Unique Keys
The SQL Accelerator drivers should generally be used only on tables with unique keys. The drivers will function on files without unique keys, but only with substantially limited capabilities. Without a unique key, the RESET and REGET commands return errors, and the driver cannot update the SQL database.
Most Clarion templates also require that you define a primary key for each table in order to generate code.
Так говорил Заратустра....
The SQL Accelerator drivers should generally be used only on tables with unique keys. The drivers will function on files without unique keys, but only with substantially limited capabilities. Without a unique key, the RESET and REGET commands return errors, and the driver cannot update the SQL database.
Most Clarion templates also require that you define a primary key for each table in order to generate code.
Так говорил Заратустра....
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Подскажите по работе с MSSQL из Clarion 5EE
Мало того, что Primary должен быть, но и ещё сам броуз должен быть по уникальному ключу (иначе задвоение записей получите). Плюс хорошо бы метод загрузки "File", что легаси не делает. Думаю, в легаси так и будете косяки устранять.
We are hard at work… for you.
Подскажите по работе с MSSQL из Clarion 5EE
Заратустра Заратустрой, но вот работающий тест.
Обратите внимание, что таблица в SQL вообще не имеет ни уникального ID, ни каких бы то ни было индексов.
Уникальный ключ действительно потребовалось объявить в Кларионе. Без его формального объявления выползали ошибки unsupported function при попытках изменить или удалить запись. Флаг Primary не играет совершенно никакой роли для драйвера.
Дублирование действительно есть (3 записи вместо двух реальных -- см. скриншот) -- здесь с Kreator'ом не поспоришь -- ну да это особенность броуза, и драйвер вместе с SQL здесь не при чём. Но это при наличии дублей в самой таблице.
Ну и последнее. Изменение и удаление происходит по описанному мной ранее сценарию -- меняется и удаляется запись вместе с дублями.
Обратите внимание, что таблица в SQL вообще не имеет ни уникального ID, ни каких бы то ни было индексов.
Уникальный ключ действительно потребовалось объявить в Кларионе. Без его формального объявления выползали ошибки unsupported function при попытках изменить или удалить запись. Флаг Primary не играет совершенно никакой роли для драйвера.
Дублирование действительно есть (3 записи вместо двух реальных -- см. скриншот) -- здесь с Kreator'ом не поспоришь -- ну да это особенность броуза, и драйвер вместе с SQL здесь не при чём. Но это при наличии дублей в самой таблице.
Ну и последнее. Изменение и удаление происходит по описанному мной ранее сценарию -- меняется и удаляется запись вместе с дублями.
Последний раз редактировалось Shur 10 Июнь 2016, 10:14, всего редактировалось 2 раза.
Подскажите по работе с MSSQL из Clarion 5EE
Ошибка при изменении записи через форму такая
An error (record not available(33)) was experienced when atteзmting to update record from the file. Probable cause: ИмяПроблемногоФайла.
Направление куда копать и о чем думать понял, всем большое спасибо за помощь.
An error (record not available(33)) was experienced when atteзmting to update record from the file. Probable cause: ИмяПроблемногоФайла.
Направление куда копать и о чем думать понял, всем большое спасибо за помощь.
Подскажите по работе с MSSQL из Clarion 5EE
Объявите уникальный ключ в словаре данных Клариона, можно даже формальный -- лишь бы был хоть какой.
Подскажите по работе с MSSQL из Clarion 5EE
Еще раз благодарю - форма ожила, добавляет/изменяет/удаляет записи и поля подтягиваються