MySQL - для чайника

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 01 Апрель 2019, 11:14

gopstop2007 писал(а):
01 Апрель 2019, 10:10
вас поле time не напрягает? оно вроде как в clarion-e зарезервировано и mysql
"А ларчик просто открывался..."
Точно, спасибо, а в другой проблемной таблице было поле с именем DATE. MySQL видать такие штуки разрешает.

Ал
Ветеран
Сообщения: 798
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

MySQL - для чайника

Сообщение Ал » 01 Апрель 2019, 12:27

Андрей писал(а):
01 Апрель 2019, 11:14
gopstop2007 писал(а):
01 Апрель 2019, 10:10
вас поле time не напрягает? оно вроде как в clarion-e зарезервировано и mysql
"А ларчик просто открывался..."
Точно, спасибо, а в другой проблемной таблице было поле с именем DATE. MySQL видать такие штуки разрешает.
CW 10, если не ошибаюсь, должен "такие" поля показывать...

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 01 Апрель 2019, 13:10

Ал писал(а):
01 Апрель 2019, 12:27
Андрей писал(а):
01 Апрель 2019, 11:14
gopstop2007 писал(а):
01 Апрель 2019, 10:10
вас поле time не напрягает? оно вроде как в clarion-e зарезервировано и mysql
"А ларчик просто открывался..."
Точно, спасибо, а в другой проблемной таблице было поле с именем DATE. MySQL видать такие штуки разрешает.
CW 10, если не ошибаюсь, должен "такие" поля показывать...
Ничего не показывает, приложение компилирует себе спокойно, надо на 11 попробовать

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

MySQL - для чайника

Сообщение kreator » 01 Апрель 2019, 13:34

Андрей писал(а):
01 Апрель 2019, 11:14
Точно, спасибо, а в другой проблемной таблице было поле с именем DATE. MySQL видать такие штуки разрешает.
В принципе разрешают все. Поле должно быть в двойных кавычках, типа "Time". Другое дело - можно ли эти двойные кавычки в External Name написать? Никогда так не делал. Но, думаю, должно прокатывать. Подозреваю, существует мало людей, которым нравиться объекты сервера писать в двойных кавычках. Поэтому всегда есть список зарезервированных "слов". Разработчик их знает и старается не использовать в своих объектах.
We are hard at work… for you. :)

gopstop2007
✯ Ветеран ✯
Сообщения: 1269
Зарегистрирован: 25 Март 2009, 21:55

MySQL - для чайника

Сообщение gopstop2007 » 01 Апрель 2019, 19:24

kreator писал(а):
01 Апрель 2019, 13:34
Андрей писал(а):
01 Апрель 2019, 11:14
Точно, спасибо, а в другой проблемной таблице было поле с именем DATE. MySQL видать такие штуки разрешает.
В принципе разрешают все. Поле должно быть в двойных кавычках, типа "Time". Другое дело - можно ли эти двойные кавычки в External Name написать? Никогда так не делал. Но, думаю, должно прокатывать. Подозреваю, существует мало людей, которым нравиться объекты сервера писать в двойных кавычках. Поэтому всегда есть список зарезервированных "слов". Разработчик их знает и старается не использовать в своих объектах.
там больше не состыковка по mysql и кавычки для названия поля не обычные, а обратные, в первый раз столкнулся на close )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

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

MySQL - для чайника

Сообщение kreator » 01 Апрель 2019, 22:57

gopstop2007 писал(а):
01 Апрель 2019, 19:24
там больше не состыковка по mysql и кавычки для названия поля не обычные, а обратные, в первый раз столкнулся на close )
Апострофы то бишь? Оригинально.
We are hard at work… for you. :)

gopstop2007
✯ Ветеран ✯
Сообщения: 1269
Зарегистрирован: 25 Март 2009, 21:55

MySQL - для чайника

Сообщение gopstop2007 » 02 Апрель 2019, 0:06

да, как здесь )

Код: Выделить всё

Fstr{PROP:SQL}='ALTER TABLE `user` ADD `PHOTO_SAVE` tinyint(4) DEFAULT NULL AFTER `ROZN_USE`'
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

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

MySQL - для чайника

Сообщение kreator » 02 Апрель 2019, 11:01

Сейчас "вендоры" SQL-серверов стараются привести свои "эксклюзивы" к стандарту. И слава богу. А то жесть какая-то. Например, сейчас в руководстве по FB можно встретить такое (обратите внимание на "Важно"):
firstskip.png
We are hard at work… for you. :)

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 04 Апрель 2019, 10:06

Продолжаю освоение...
Сделал тестовую базу на своем компе. 2 таблицы: Person и Docs, подчиненная Person. Ну типа Люди и Документы людей. Без чтения инструкций, по аналогии с рабочей базой сделал Ограничения. Так понял, что в отличие от Clarion-а, в MySQL relation задается только со стороны дочерней таблицы ? Ну ладно сделал, как обычно: на изменение Cascade, на удаление Restrict. Проверил в dbForge - работают оба правила.
Собираю тестовое приложение на автомате, проверяю: на Удаление работает, на изменение Id в Person ничего не происходит...
Или надо отдельно было в Person помимо Id первичного, завести еще некий IdPerson, хотя он и тождественен Id ?

Аватара пользователя
Admin
Администратор
Сообщения: 3473
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

MySQL - для чайника

Сообщение Admin » 04 Апрель 2019, 10:19

Андрей писал(а):
04 Апрель 2019, 10:06
на изменение Id в Person
Нельзя ID менять в Person! неправильно это.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 04 Апрель 2019, 10:56

Admin писал(а):
04 Апрель 2019, 10:19
Андрей писал(а):
04 Апрель 2019, 10:06
на изменение Id в Person
Нельзя ID менять в Person! неправильно это.
Я с этим согласен для реальных задач. Однако на уровне MySQL нет такого ограничения ? В dbForge меняется, в Clarion приложении - нет.

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

MySQL - для чайника

Сообщение kreator » 04 Апрель 2019, 16:11

Андрей, какая политика на сервере и в словаре? Должно быть на сервере "Cascade", в кларионовском словаре "CascadeServer". ID - первичный ключ?
We are hard at work… for you. :)

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 04 Апрель 2019, 17:17

kreator писал(а):
04 Апрель 2019, 16:11
в кларионовском словаре "CascadeServer". ID - первичный ключ?
А у меня вообще не задан Relation в кларионовском словаре. Значит для Update нужен ? А для Delete работает MySQL движок ?
ID для мат. таблицы, да первичный ключ, он же используется для дочерней таблицы как ид-р род. записи.

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

MySQL - для чайника

Сообщение kreator » 04 Апрель 2019, 17:31

Я думаю, если не задан Relation, то всё на сервере. Получается, что и родительский ID в таблице на сервере не меняется?
We are hard at work… for you. :)

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 05 Апрель 2019, 16:32

kreator писал(а):
04 Апрель 2019, 17:31
Я думаю, если не задан Relation, то всё на сервере. Получается, что и родительский ID в таблице на сервере не меняется?
Не меняется... что-то запутался. Есть Relation в MySQL и есть Relation в словаре Clarion. Когда что используется ?

Ответить