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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2010, 19:26   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
Восклицание Редактирование данных, по нажатию на кнопку "Отмена"

У меня такая проблема: я нажимаю на правую кнопку мыши и нажимаю "Редактировать", выходит форма с редактированием записи, у меня в ней есть ListBox1, в которой есть 2 выражения (Да, Нет) и Listbox2 (Муж, Жен). Редактирую запись где в 2 столбцах стоит соответсвенно - Listbox1 (Да), Listbox2 (Муж). Я просто выбираю к примеру Нет, Жен и нажимаю не BitBtn3, а BitBtn2 (это кнопка отмены), то данные которые я выбирал в ListBox1, 2 все равно сохраняются... хотя я нажимал кнопку отмена.
Код:
procedure TFD_PAC.BitBtn3Click(Sender: TObject);
var
id: integer;

begin
//Редактирование пациента
try
id:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Text:='UPDATE pacient SET nomer_med=:e1, familiya=:e2, imya=:e3,otchestvo=:e4,data_rogdeniya=:d,telefon=:e5, 
kollichestvo_detey=:e6,obrazovanie=:e7,opekun=:o1,pol=:p1 WHERE id_pacienta=:id';
dm.ADOQ_PAC.Parameters.ParamByName('e1').Value:=Edit1.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e2').Value:=Edit2.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e3').Value:=Edit3.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e4').Value:=Edit4.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e5').Value:=Edit5.Text;
DM.ADOQ_PAC.Parameters.ParamByName('e6').Value:=strtoint(Edit6.Text);
DM.ADOQ_PAC.Parameters.ParamByName('e7').Value:=Edit7.Text;
dm.ADOQ_PAC.Parameters.ParamByName('o1').Value:=o;
dm.ADOQ_PAC.Parameters.ParamByName('p1').Value:=p;
DM.ADOQ_PAC.Parameters.ParamByName('d').Value:=FormatDateTime('yyyy-mm-dd', datetimepicker1.Date);
DM.ADOQ_PAC.Parameters.ParamByName('id').Value:=id;
DM.ADOQ_PAC.ExecSQL;

DM.ADOQ_PAC.Close;
DM.ADOQ_PAC.SQL.Clear;
DM.ADOQ_PAC.SQL.Add('SELECT * FROM pacient;'); //pt LEFT OUTER JOIN vid_ucheta vu ON pt.id_pacienta=vu.id_pacienta  ORDER BY familiya ASC');
DM.ADOQ_PAC.Open;
except
  on E: Exception do Application.MessageBox('Сохранение','Данные не сохранены !!!');
end;
end;
1 старый программист, лучше новых 2-х

Последний раз редактировалось mihali4; 12.03.2010 в 23:50.
Droid вне форума Ответить с цитированием
Старый 12.03.2010, 23:52   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А где код для procedure TFD_PAC.BitBtn2Click(Sender: TObject) ?
mihali4 вне форума Ответить с цитированием
Старый 13.03.2010, 01:14   #3
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А где код для procedure TFD_PAC.BitBtn2Click(Sender: TObject) ?
Код:
procedure TFD_PAC.BitBtn2Click(Sender: TObject);
begin

FD_PAC.Close;
end;
Только что пробовал так
Код:
for i:=0 to fd_pac.DBListBox1.Count-1 do
dm.ADOQ_PAC.Parameters.ParamByName('o1').Value:=fd_pac.DBListBox1.Items[i];
for j:=0 to fd_pac.DBListBox2.Count-1 do
dm.ADOQ_PAC.Parameters.ParamByName('p1').Value:=fd_pac.DBListBox2.Items[j];
Но результат тот же
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 13.03.2010 в 01:24.
Droid вне форума Ответить с цитированием
Старый 13.03.2010, 01:32   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
FD_PAC.Close;
Забавно... А что в обработчике FD_PAC.OnClose ?
Код:
DM.ADOQ_PAC.Cancel;
Так не пробовали ?
mihali4 вне форума Ответить с цитированием
Старый 13.03.2010, 01:38   #5
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

все разобралсо... вроде все пашет...
Код:
procedure TFD_PAC.FormActivate(Sender: TObject);
begin
o:=1;
p:=1;
end;
procedure TFD_PAC.ListBox1Click(Sender: TObject);
begin
o:=listbox1.ItemIndex+1;
end;

procedure TFD_PAC.ListBox2Click(Sender: TObject);
begin
p:=listbox2.ItemIndex+1;
end;
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая память или кнопка "Отмена" и "Назад" Ilnour1986 Microsoft Office Excel 2 27.10.2009 04:49
Как сделать кнопку "больше"-"меньше" Clericos HTML и CSS 8 30.09.2009 20:20
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
MsgBox кнопка "Отмена" Siver Microsoft Office Excel 4 23.12.2008 20:10
Прцедура для Кнопки "Отмена" Inbox Общие вопросы Delphi 4 04.06.2007 01:32