Mega Code Archive

 
Categories / Delphi / ADO Database
 

[] Veritabanına pratik kayıt

{ Merhaba arkadaşlar.. Eğer veritabanı ile ilgili işlemler yapıyorsanaız kendinize ait bir kayıt procedure nizin olması çok büyük fayda sunuyor. Eğer bütün formlarda kaydetin komutlarını tekrar yazmak istemiyorsanız kodlar sizinde goşunuza gidecek.. ben normal table yöntemiyle yaptım. isteyenler sql lede yapabilir. Bu kodları herhangi bir unitin içine yapışıtırıp kaydetmek istediğiniz formdaki nesnelerin taglarını 0 dan büyük olarak veritabanındaki sırasına göre atayın. mesela 3 tane edit nesnesi var. veritabanına sadece bunların 1 ve 3. sü kaydedilecek. (veritabanındaki alanlar = 1.si 'ad', 2.s, 'soyad') edit1 in tagını 1, edit3 ünkünü 2 yaparsanız bunlar aşağıdaki procedure ile ilgili alanlara kayır yapılacak. default tag değeri 0 olan edit 2 ise kaydedilmeyecek. Çalışmalarınızda Başarılar .. -- illegal Silence -- } Procedure Kaydet(formname:tform; queryname:tadoquery); var x: integer; begin if queryname.State <> dsedit then queryname.Insert; for x := 0 to formname.ComponentCount-1 do begin if formname.Components[x] is tedit then begin if(formname.Components[x]as tedit).Tag > 0 then begin queryname.Fields[(formname.Components[x]as tedit).Tag -1].AsString := (formname.Components[x] as tedit).text; end; Continue; end; if formname.Components[x] is TDateTimePicker then begin if(formname.Components[x]as tDateTimePicker).Tag > 0 then begin if (formname.Components[x]as tDateTimePicker).Kind = dtkdate then queryname.Fields[(formname.Components[x]as tDateTimePicker).Tag -1].AsString := datetostr((formname.Components[x] as tDateTimePicker).date) else queryname.Fields[(formname.Components[x]as tDateTimePicker).Tag -1].AsString := timeTOstr((formname.Components[x] as tDateTimePicker).time) end; Continue; end; if formname.Components[x] is TMaskEdit then begin if(formname.Components[x]as tMaskEdit).Tag > 0 then begin queryname.Fields[(formname.Components[x]as tMaskEdit).Tag -1].AsString := (formname.Components[x] as tMaskEdit).text; end; Continue; end; if formname.Components[x] is Tcombobox then begin if(formname.Components[x]as Tcombobox).Tag > 0 then begin queryname.Fields[(formname.Components[x]as Tcombobox).Tag -1].AsString := (formname.Components[x] as Tcombobox).text; end; Continue; end; if formname.Components[x] is Tmemo then begin if(formname.Components[x]as Tmemo).Tag > 0 then begin queryname.Fields[(formname.Components[x]as Tmemo).Tag -1].AsString := (formname.Components[x] as Tmemo).text; end; Continue; end; end; queryname.Post; end; {------------Kullanımı-------------} procedure TForm1.Button1Click(Sender: TObject); begin kaydet(Form1,AdoQuery1); end; { ---------------NOT---------------------} { Procedurün içinde tanımlı olan componentlerden farklı bi component kullanırsanız onları iflerin içine eklemeyi unutmayın :) ------------------------------------------------------------------------------------------------ Kayıdınızı Geri almak için de aşağıdaki procedur işinize yarayacak sanırım} Procedure Gerial(formname: tform; queryname : tadoquery); var x: integer; begin for x := 0 to formname.ComponentCount -1 do begin if formname.Components[x] is tedit then begin if (formname.Components[x] as tedit).Tag > 0 then (formname.Components[x] as tedit).Text := queryname.Fields[(formname.Components[x] as tedit).tag - 1 ].AsString; Continue; end; if formname.Components[x] is TDateTimePicker then begin if (formname.Components[x] as tDateTimePicker).Tag > 0 then if (formname.Components[x] as tDateTimePicker).Kind =dtkTime then begin showmessage(inttostr((formname.Components[x] as tDateTimePicker).Tag)+' - '+ queryname.Fields[(formname.Components[x] as tDateTimePicker).tag - 1 ].asstring); (formname.Components[x] as tDateTimePicker).Time := strtotime(queryname.Fields[(formname.Components[x] as tDateTimePicker).tag - 1 ].asstring) end else (formname.Components[x] as tDateTimePicker).Date := strtodate(queryname.Fields[(formname.Components[x] as tDateTimePicker).tag - 1 ].asstring); Continue; end; if formname.Components[x] is TComboBox then begin if (formname.Components[x] as TComboBox).Tag > 0 then (formname.Components[x] as TComboBox).Text := queryname.Fields[(formname.Components[x] as TComboBox).tag - 1 ].AsString; Continue; end; if formname.Components[x] is TMaskEdit then begin if (formname.Components[x] as TMaskEdit).Tag > 0 then (formname.Components[x] as TMaskEdit).Text := queryname.Fields[(formname.Components[x] as TMaskEdit).tag - 1 ].AsString; Continue; end; if formname.Components[x] is TMemo then begin if (formname.Components[x] as TMemo).Tag > 0 then (formname.Components[x] as TMemo).Text := queryname.Fields[(formname.Components[x] as TMemo).tag - 1 ].AsString; Continue; end; end; end; {------------Kullanımı-------------} procedure TForm1.Button1Click(Sender: TObject); begin Gerial(Form1,AdoQuery1); end;