aşağıdaki kod ile excelden tabloya kayıt aktarıyorum.
Kod: Tümünü seç
ibquery1.Close;
ibquery1.SQL.Clear;
ibquery1.SQL.Add('Delete from TAMPON');
ibquery1.ExecSQL;
ibquery1.open;
datamodule1.IBTransaction1.CommitRetaining;
ibquery1.Close;
try
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
label5.Visible:=True;
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
ProgressBar1.Visible := True;
label3.Visible := True;
sheet := book.worksheets[1];
for satir:=2 to 300 do
begin
str := sheet.cells[satir, 1];
iF (str <> '') then
if (str <> '') And (str <> '') then
begin
Update;
Label4.Caption := str;
ProgressBar1.Position := satir;
ibtable2.Append;
for sutun:=1 to 7 do
ibtable2.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
ibtable2.Post;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
ProgressBar1.Position := 0;
ProgressBar1.Visible := False;
LAbel3.Caption:= 'Liste tampon tablodan kursiyer tablosuna aktarılıyor ';
ibtable2.Close;
ibtable2.Open;
ibtable2.FetchAll;
ibtable2.first;
ibtable1.Open;
ProgressBar1.Visible:=True;
progressBar1.Max:= ibtable2.RecordCount;
while not ibtable2.Eof do
BEGIN
Screen.Cursor := crHourGlass;
if (ibtable2ADI.Value <> '') and (ibtable2SOYADI.Value <> '') then
begin
ibtable1.Append;
ibtable1.Edit;
ibtable1KURSNO.Value:= label19.Caption;
ibtable1KURSADI.Value:= label20.Caption;
ibtable1BASLAYIS.Value:= strtodate(frm_Ana.label21.Caption);
ibtable1BITIS.Value:= strtodate(frm_Ana.label22.Caption);
ibtable1KURS_GUN.Value:= strtointdef(frm_Ana.label23.Caption,0);
ibtable1SIRANO.Value:= strtoint(ibtable2SIRANO.Value);
ibtable1ADISOYADI.Value:= ibtable2ADI.Value+' '+ibtable2SOYADI.Value;
ibtable1UNVAN.Value:= ibtable2UNVANI.Value;
ibtable1GOREV_YERI.Value:= ibtable2GOREVYERI.Value;
ibtable1ISLEMYILI.Value:= strtoint(frm_Ana.Label27.Caption);
ibtable1ILI.Value:= ibtable2ILI.Value;
ibtable1ILCESI.Value:= ibtable2ILCESI.Value;
ibtable1ZAR_ODENSINMI.Value:= 'ÖDENMESİN';
ibtable1GEC_BASLADI.Value:= 'HAYIR';
ibtable1RAYIC_ODENSINMI.Value:= 'ÖDENSİN';
ibtable1.Post;
datamodule1.IBTransaction1.CommitRetaining;
ibtable2.Next;
ProgressBar1.Position := ibtable2.RecNo;
end;
daha sonra tampon tablodan asıl tabloya aktarma oluyor.
buraya kadar her şey normal.
ama daha sonra listeye baktığımda iki tane boş kayıt görülüyor. ve bu kayıtlar excel listesi ile karşılaştırıldığında fazla kayıt oluyor.
daha sonra ibexpert ile dahi bu boş kayıtları silemiyorum.
delphiden aşağıdaki kod ile silmeyi denediğimde kayıtların silinmesi mümkün olmuyor
Kod: Tümünü seç
ibquery2.Close;
ibquery2.SQL.Clear;
ibquery2.SQL.Add('Delete From KURSIYER');
ibquery2.SQL.Add('Where ADISOYADI = ''''');
ibquery2.ExecSQL;
datamodule1.IBTransaction1.CommitRetaining;
bu arada firebird 1.5 ve ibx bileşenlerini kullanıyorum.
iyi çalışmalar.