[решено] Отсутствует ID, SQLQuery как сохранять?
Модератор: Модераторы
Есть правило, если нужно обновить запись используй уникальный id
Если хотите веселья делайте по другому способы здесь упоминались
И сомневаюсь что phpadmin обновит корректно 2 одинаковые записи без id
Если хотите веселья делайте по другому способы здесь упоминались
И сомневаюсь что phpadmin обновит корректно 2 одинаковые записи без id
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
resident писал(а):Мне нужна локальная база данных с шифрованием. Что бы вы использовали?
з.ы. "гланды через анус", хорошее название для портфельных баз. Они вообще не в тренде?
Я писал исключительно про mysql. Для других БД могут быть другие приемы действенны.
Что такое, для mysql, "локальная база данных с шифрованием"? Там можно шифровать отдельные поля через вызов ф-и encript и расшифровывать через decript. Никакой известный мне компонент это автоматически подставлять в запросы не будет.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Мне нужна локальная база данных с шифрованием. Что бы вы использовали?
SQLite Cypherhttps://github.com/sqlcipher/sqlcipher. Беспалатный при самосборке из исходников.
vitaly_l писал(а):Но когда я редактирую РУЧКАМИ одну единственную строчку
Это неверный (по моему пониманию) подход.
Для редактирования одной записи я создаю "карточку редактирования".
Это позволяет и всякое разное там ввести, и дополнительные проверки втулить, и показать то, что не показано (более детальные части данных) в гриде.
А потом, внести изменения в базу посредством UPDATE или REPLACE. B разумеется, уже заранее всегда продумано, как одну запись отличить от другой, в смысле, что поставить в раздел WHERE.
И никакой зависимости от языка.
Только SQL!
sign писал(а):И никакой зависимости от языка.
Только SQL!
На уровне SQL я знаю, как общаться с базой. Меня интересует только Лазарус с его возможностью упростить мне задачу при редактировании.
sign писал(а):Для редактирования одной записи я создаю "карточку редактирования".
Создаю "карточку редактирования" <== Это интересно это как? (остальное понятно)
.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
vitaly_l писал(а):Создаю "карточку редактирования" <== Это интересно это как?
В моих программах это - форма с Edit'ами и т.п. И никогда никакого редактирования в Grid'ах! Grid'ы - только для отображения данных.
Снег Север писал(а):И никогда никакого редактирования в Grid'ах! Grid'ы - только для отображения данных.
Почему? Мне удобно редактировать в гридах цифровые значения, которые там умещаются и редактируются.
Вы шутите или серьёзно? Пожалуйста в этой ветке только обоснованно.
Почему нельзя редактировать в гридах? Я там редактирую...
Это удобно...
.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Можно. Но не нужно. Этим и отличается опытный программист от дилетанта
- опытный не использует средства, которые, хотя бы потенциально, приведут в неожиданный момент к труднопреодолимым глюкам.
Снег Север писал(а):Можно. Но не нужно. Этим и отличается опытный программист от дилетанта - опытный не использует средства, которые, хотя бы потенциально, приведут в неожиданный момент к труднопреодолимым глюкам.
Пример глюка (любого), дайте пожалуйста. А лучше всех глюков о которых Вы знаете, я смогу проанализировать вероятность таковых в моей программе.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Если вы пишете приложение "на коленке" для себя - одно дело. Если это серьезное приложение для многих, то там в Grid'ах постоянно применяются колонки вычисляемые, связанные, специальным образом отображаемые (например, иконки вместо числового индекса, особый формат и пр.). Из-за этого редактирование данных прямо в таблице оказывает в принципе невозможным. Поэтому его сразу лучше избегать.
Снег Север писал(а):Из-за этого редактирование данных прямо в таблице оказывает в принципе невозможным.
Почему? Я же могу вывести иконку в гриде, на канвас. Редактировать я её по любому не смогу.
В чём проблема?
Иконками Вы называете графические файлы? Да? А что MySQL умеет распознавать графические файлы? Или по имени иконки определение?
Это всё или ещё есть нюансы? Спасибо.
.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
В MySQL есть поля blob/longblob в которых можно сохранять любые данные - картинки, файлы и пр. Я это широко использую. Интерпретация данных, разумеется, целиком ложится на программиста - надо знать, что туда положили, чтобы правильно вытащить. И да, есть компонент DBImage.
Часто используется такое - поле является целым числом, индексом изображения из ImageList, в гриде вместо него прорисовывается этот image. Дальше, например, в базе стоит дата/время, а в грид пишется число дней/часов/минут с текущего момента.
Есть, возможно, еще варианты - навскидку все не припомню. Так что редактирование в гриде лучше не использовать вообще. Исключение - простейшие случаи или, как HediSQL, специальные утилиты администрирования.
Часто используется такое - поле является целым числом, индексом изображения из ImageList, в гриде вместо него прорисовывается этот image. Дальше, например, в базе стоит дата/время, а в грид пишется число дней/часов/минут с текущего момента.
Есть, возможно, еще варианты - навскидку все не припомню. Так что редактирование в гриде лучше не использовать вообще. Исключение - простейшие случаи или, как HediSQL, специальные утилиты администрирования.
Снег Север писал(а):В MySQL есть поля blob/longblob в которых можно сохранять любые данные - картинки, файлы и пр. Интерпретация данных, разумеется, целиком ложится на программиста - надо знать, что туда положили, чтобы правильно вытащить. И да, есть компонент DBImage.
Часто используется такое - поле является целым числом, индексом изображения из ImageList, в гриде вместо него прорисовывается этот image.
Стоп. У меня в гриде, например на текстовое поле написано (MEMO) и редактировать его грид не даёт (но я могу вывести содержимое на канвас). Соответственно в гриде априори возможно только чтение даже полей с переменными TEXT. А уж тем более blob/longblob.
Что будет написано в гриде, на переменную типа: blob/longblob, DBImage ?
Я уверен что грид не даст их редактировать, также как не даёт редактировать TEXT.
.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Грид не даст. А на своей форме редактирования я могу посмотреть и поменять image и переписать его в базе. Посему еще раз - грид НЕ для редактирования. Он - для показа.
Снег Север писал(а):Грид не даст.
Ну и слава разработчикам грида, т.к. я и не собирался там редактировать: blob/longblob и DBImage.
Соответственно в гриде можно редактировать только: строки и цифры и это удобно. Остальное пофиг.
В общем пока не вижу подводного рифа, для программы.
Спасибо всем!
.
