|
#1
|
|||
|
|||
Обновление
Здрасте ^_^ Вот хотел спросить, как такую процедуру написать, чтобы когда я заполнил таблицу одну, после нажатия кнопки, эта таблица обновила другую, если есть там поля по индексу похожие добавила кол-во, а если нет, то добавила всю новую строку, и второй раз уже кнопку нельзя было нажать. Надо ли эти таблицы связывать, да и как вообще такое написать ^_^ подскажите пожалуста ^_^
|
#2
|
|||
|
|||
спаксибо народ, я уже сам сделал ^_^
Код:
procedure TForm2.Button1Click(Sender: TObject); var a,b,c: integer; f:boolean; buttonSelected : Integer; begin buttonSelected:=MessageDlg('Вы действительно хотите обновить склад',mtInformation,[mbYes,mbCancel], 0); if buttonSelected = mrYes then begin DBGrid1.SetFocus; dm.Prixod.First; while not dm.prixod.Eof do begin f:=true; dm.tovar.First; while not (dm.tovar.Eof) and (f) do begin if DM.Tovar['TID'] = dm.prixod['PID'] then begin dm.Tovar.Edit; dm.Tovar['TID']:=dm.Prixod['PID']; dm.Tovar['TName']:=dm.Prixod['PName']; dm.Tovar['TPriceZak']:=dm.Prixod['PriceZak']; dm.Tovar['TPriceProd']:=0; a:=StrToInt(DM.Tovar['TKolvo']); b:=StrToInt(dm.prixod['PKolPr']); c:=a+b; dm.Tovar['TKolvo']:=IntToStr(c); dm.Tovar.Post; f:=false; end; dm.tovar.next; end; if f then begin dm.Tovar.append; dm.Tovar['TID']:=dm.Prixod['PID']; dm.Tovar['TName']:=dm.Prixod['PName']; dm.Tovar['TPriceZak']:=dm.Prixod['PriceZak']; dm.Tovar['TKolvo']:=dm.Prixod['PKolPr']; dm.Tovar.Post; end; dm.prixod.Next; end; end; end; вот что я хотел ^_^ Последний раз редактировалось Sabotender, 03.01.2009 в 16:06. |
#3
|
|||
|
|||
Ну, только маленькое замечание.
1. Обычно такие вещи делаются с помощью триггеров. 2. Обычно такие вещи делаются в транзакции. |
#4
|
|||
|
|||
ну я таких штук не знаю, я не начитаный ^_^ да и почему сразу не написать об этом? ^_^ Я уже и курсовую сдал, жаль на 4 ^__^ 5 хотелось, старался всё-таки, а **** училка меня ненавидит и завалила ^_^
|