{ 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;