Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 08:14   #1
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
Восклицание НЕ корректное сохранение в БД

Набор:
Форма 1: MyConnection, MyQuery, MyDataSourse, DBGridEh, Кнопки:Создать, Изменить.
Форма 2: cxDBEdit - 3 шт, кнопки: Ок, Cancel.

Ситуация:
При нажатии на кнопку "Создать", вставляется строка в БД путем Insert и запускается Форма 2.
В Форме 2 в cxDBEdit пишу данные, которые почему-то сразу записываются в БД.
При нажатии на "Ок" - все нормально(сохраняется и закрывается окно)
При нажатии на "Cancel" - окно закрывается, но данные в БД записываются, если хоть в одном cxDBEdit были изменения. На кнопке "cANCEL" только написано: Close;
Что нужно сделать, чтобы при вводе в cxDBEdit, инфа сразу не уходила в БД
Что сделать, чтобы по нажатию на кнопку Cancel данные не записывались и строка пропадала?
GreenShuller вне форума Ответить с цитированием
Старый 12.06.2012, 14:05   #2
GreenShuller
Пользователь
 
Регистрация: 23.06.2010
Сообщений: 23
По умолчанию

Никто не в курсе??
GreenShuller вне форума Ответить с цитированием
Старый 13.06.2012, 08:08   #3
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Во первых раз уж взялись за скуль, то не фиг вставку записей делать топорными способами.
Рисуем форму с простыми едитами и запрос вида
Код:
INSERT INTO моячудотаблица(чудополе1бчудополе2) VALUES(:val1, :val2); Commit;
В обработчике кнопки сохранить пишем
Код:
Трампампам.MyQuery.Params.ParamByName('val1').value := edit1.text;
Трампампам.MyQuery.Params.ParamByName('val2').value := edit2.text;
Трампампам.MyQuery.ExecSQL;
Ну вместо ExecSQL может быть просто Exec. Ну и вместо этого Params.ParamByName Может быть сразу ParamByName все зависит от того какими компонентами пользуешься.
Ну а на отмену просто закрываешь форму.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 13.06.2012, 21:10   #4
OlegPrograming5
Пользователь
 
Регистрация: 12.01.2009
Сообщений: 42
По умолчанию

Для сохранения записи в БД для кнопки ОК можно использовать код:
Код:
MyQuery.Post;
Close;//Для закрытия формы
А для кнопки Отмена такой:
Код:
MyQuery.Cancel;
Close;
OlegPrograming5 вне форума Ответить с цитированием
Старый 13.06.2012, 21:10   #5
OlegPrograming5
Пользователь
 
Регистрация: 12.01.2009
Сообщений: 42
По умолчанию

Для сохранения записи в БД для кнопки ОК можно использовать код:
Код:
MyQuery.Post;
Close;//Для закрытия формы
А для кнопки Отмена такой:
Код:
MyQuery.Cancel;
Close;
OlegPrograming5 вне форума Ответить с цитированием
Старый 14.06.2012, 04:15   #6
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Дорогой OlegPrograming5. Не надо давать такие советы как ваши. Зачем работать с БД которая предоставляем гибкий и мощный язык SQL для манипуляции с данными и объектами БД, используя древние методы работы.
Вы сейчас человеку у которого в гараже стоит ферари предлагаете поехать на телеге и на свидание с пышногрудой блондинкой.
Так что извините, но я бы вас с вашим советом отправил в не столь далекое путешествие ака "Иди туда сам знаешь куда, возьми, понюхай и положи на место."

Дорогой ТС если взялись за мускуль, то только SQL и ничего другого.
Каким образом вы будете его использовать это конечно уже ваш выбор.
Т.к. тут можно идти несколькими путями.
1. Параметризированные запросы
2. Динамический SQL
3. Хранимые процедуры
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректное масштабирование рисунка devi409 Мультимедиа в Delphi 16 12.06.2012 21:54
Корректное сохранение в Excel artemavd БД в Delphi 1 19.07.2009 20:57
Корректное сохранение Ico Nester Общие вопросы Delphi 1 25.12.2008 19:50
Корректное закрытие MessageBox Tan4ik Помощь студентам 4 02.05.2008 01:21