[решено] Отсутствует ID, SQLQuery как сохранять?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Ism » 26.02.2016 02:26:58

Есть правило, если нужно обновить запись используй уникальный id
Если хотите веселья делайте по другому способы здесь упоминались

И сомневаюсь что phpadmin обновит корректно 2 одинаковые записи без id
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 09:43:42

resident писал(а):Мне нужна локальная база данных с шифрованием. Что бы вы использовали?
з.ы. "гланды через анус", хорошее название для портфельных баз. Они вообще не в тренде?

Я писал исключительно про mysql. Для других БД могут быть другие приемы действенны.
Что такое, для mysql, "локальная база данных с шифрованием"? Там можно шифровать отдельные поля через вызов ф-и encript и расшифровывать через decript. Никакой известный мне компонент это автоматически подставлять в запросы не будет.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение debi12345 » 26.02.2016 10:34:54

Мне нужна локальная база данных с шифрованием. Что бы вы использовали?

SQLite Cypherhttps://github.com/sqlcipher/sqlcipher. Беспалатный при самосборке из исходников.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение sign » 26.02.2016 11:35:57

vitaly_l писал(а):Но когда я редактирую РУЧКАМИ одну единственную строчку

Это неверный (по моему пониманию) подход.
Для редактирования одной записи я создаю "карточку редактирования".
Это позволяет и всякое разное там ввести, и дополнительные проверки втулить, и показать то, что не показано (более детальные части данных) в гриде.
А потом, внести изменения в базу посредством UPDATE или REPLACE. B разумеется, уже заранее всегда продумано, как одну запись отличить от другой, в смысле, что поставить в раздел WHERE.
И никакой зависимости от языка.
Только SQL!
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 12:35:26

sign писал(а):И никакой зависимости от языка.
Только SQL!

На уровне SQL я знаю, как общаться с базой. Меня интересует только Лазарус с его возможностью упростить мне задачу при редактировании.

sign писал(а):Для редактирования одной записи я создаю "карточку редактирования".

Создаю "карточку редактирования" <== Это интересно это как? (остальное понятно)


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 13:25:34

vitaly_l писал(а):Создаю "карточку редактирования" <== Это интересно это как?

В моих программах это - форма с Edit'ами и т.п. И никогда никакого редактирования в Grid'ах! Grid'ы - только для отображения данных.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 13:35:00

Снег Север писал(а):И никогда никакого редактирования в Grid'ах! Grid'ы - только для отображения данных.

Почему? Мне удобно редактировать в гридах цифровые значения, которые там умещаются и редактируются.
Вы шутите или серьёзно? Пожалуйста в этой ветке только обоснованно.
Почему нельзя редактировать в гридах? Я там редактирую... :oops: :cry:
Это удобно... :cry: :cry: :cry: :| :? :(
:arrow: :?: Почему нельзя?


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 13:39:01

Можно. Но не нужно. Этим и отличается опытный программист от дилетанта :D - опытный не использует средства, которые, хотя бы потенциально, приведут в неожиданный момент к труднопреодолимым глюкам.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 13:41:15

Снег Север писал(а):Можно. Но не нужно. Этим и отличается опытный программист от дилетанта - опытный не использует средства, которые, хотя бы потенциально, приведут в неожиданный момент к труднопреодолимым глюкам.

Пример глюка (любого), дайте пожалуйста. А лучше всех глюков о которых Вы знаете, я смогу проанализировать вероятность таковых в моей программе.
:idea: :arrow: Дайте пожалуйста примеры. Спасибо.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 13:48:00

Если вы пишете приложение "на коленке" для себя - одно дело. Если это серьезное приложение для многих, то там в Grid'ах постоянно применяются колонки вычисляемые, связанные, специальным образом отображаемые (например, иконки вместо числового индекса, особый формат и пр.). Из-за этого редактирование данных прямо в таблице оказывает в принципе невозможным. Поэтому его сразу лучше избегать.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 13:57:14

Снег Север писал(а):Из-за этого редактирование данных прямо в таблице оказывает в принципе невозможным.

Почему? Я же могу вывести иконку в гриде, на канвас. Редактировать я её по любому не смогу.
В чём проблема?
Иконками Вы называете графические файлы? Да? А что MySQL умеет распознавать графические файлы? Или по имени иконки определение?
Это всё или ещё есть нюансы? Спасибо.


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 14:09:14

В MySQL есть поля blob/longblob в которых можно сохранять любые данные - картинки, файлы и пр. Я это широко использую. Интерпретация данных, разумеется, целиком ложится на программиста - надо знать, что туда положили, чтобы правильно вытащить. И да, есть компонент DBImage.
Часто используется такое - поле является целым числом, индексом изображения из ImageList, в гриде вместо него прорисовывается этот image. Дальше, например, в базе стоит дата/время, а в грид пишется число дней/часов/минут с текущего момента.
Есть, возможно, еще варианты - навскидку все не припомню. Так что редактирование в гриде лучше не использовать вообще. Исключение - простейшие случаи или, как HediSQL, специальные утилиты администрирования.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 14:23:13

Снег Север писал(а):В MySQL есть поля blob/longblob в которых можно сохранять любые данные - картинки, файлы и пр. Интерпретация данных, разумеется, целиком ложится на программиста - надо знать, что туда положили, чтобы правильно вытащить. И да, есть компонент DBImage.
Часто используется такое - поле является целым числом, индексом изображения из ImageList, в гриде вместо него прорисовывается этот image.

Стоп. У меня в гриде, например на текстовое поле написано (MEMO) и редактировать его грид не даёт (но я могу вывести содержимое на канвас). Соответственно в гриде априори возможно только чтение даже полей с переменными TEXT. А уж тем более blob/longblob.

Что будет написано в гриде, на переменную типа: blob/longblob, DBImage ?
Я уверен что грид не даст их редактировать, также как не даёт редактировать TEXT.


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение Снег Север » 26.02.2016 14:44:21

Грид не даст. А на своей форме редактирования я могу посмотреть и поменять image и переписать его в базе. Посему еще раз - грид НЕ для редактирования. Он - для показа.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: [решено] Отсутствует ID, SQLQuery как сохранять?

Сообщение vitaly_l » 26.02.2016 14:49:53

Снег Север писал(а):Грид не даст.

Ну и слава разработчикам грида, т.к. я и не собирался там редактировать: blob/longblob и DBImage.
Соответственно в гриде можно редактировать только: строки и цифры и это удобно. Остальное пофиг.
В общем пока не вижу подводного рифа, для программы.

Спасибо всем!


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 250

Рейтинг@Mail.ru