Paradox'da toplu kayıt silme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Paradox'da toplu kayıt silme
Merhaba,
Ben delphi yeni başladım ve paradox veri tabını ile ufak bir çalışma yapmak istiyorum.Programı kapatınca dbgrid'deki bütün bilgiler silinsin istiyorum.Ama bir türlü yapamadım.Yardım eder misiniz.
Ben delphi yeni başladım ve paradox veri tabını ile ufak bir çalışma yapmak istiyorum.Programı kapatınca dbgrid'deki bütün bilgiler silinsin istiyorum.Ama bir türlü yapamadım.Yardım eder misiniz.
-
- Üye
- Mesajlar: 62
- Kayıt: 18 Eyl 2011 02:31
Re: Paradox'da toplu kayıt silme
tahminim şöyle yapabilirsin. formun onclose olayına table nesnesinin active olayını false yaptırırsın.
sadece içindeki kayıtları silmek istersen onu bende bilmiyorum hiç başıma gelmedi.
bide sen formu tekrar çalıştırdığında veri tabanındakiler geri yüklenecekmi soruyu daha detaylı anlatırsan cevabımız basitleşir.
Kod: Tümünü seç
table1.active:=false; // tabi bu dbgridde hiç bişi bırakmaz başlıklarda silinir.
bide sen formu tekrar çalıştırdığında veri tabanındakiler geri yüklenecekmi soruyu daha detaylı anlatırsan cevabımız basitleşir.
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Cevabınız için teşekkürler.Ama benim program açıldığında yine boş bir database ihtiyacım var.Yani programı kapattığımda bütün bilgiler silinecek (Başlıklar hariç).Tekrar programı açtığımda boş database karşıma gelecek.
Re: Paradox'da toplu kayıt silme
formun onclose olayına bu kodu yazar mısın
// tabloyu boşalt
Kod: Tümünü seç
table1.EmptyTable;
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Dediğiniz kodu yazdım ama programı kapattıktan sonra ;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.EmptyTable;
end;
Project Project1.exe raised exception class EDBEngine Error with message 'Tablo cannot be opened for exclusive .'.Process stopped.Use step run to continue
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.EmptyTable;
end;
Project Project1.exe raised exception class EDBEngine Error with message 'Tablo cannot be opened for exclusive .'.Process stopped.Use step run to continue
Re: Paradox'da toplu kayıt silme
kullandığın component ve alanları yollar mısın ?
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Benim amacım bir excel dısyasındaki bilgileri dbgrid ile göstermek ve daha sonra bu db grid üzerinden arama yapabilmek.Ama sürekli farklı excel dosyası kullanacağım için database'in her seferinde boş olmasını istiyorum.
procedure TForm1.Button1Click(Sender: TObject);
var
book:variant;
excel,sheet:variant;
satir, sutun:integer;
str:string;
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
Table1.Append;
for sutun:=1 to 9 do
Table1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
Table1.Post;
//edit1.text:=dbgrid1.Columns.Grid.Fields[1].Text;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
table1.open;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.EmptyTable;
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
book:variant;
excel,sheet:variant;
satir, sutun:integer;
str:string;
begin
excel := createOleObject('Excel.application');
OpenDialog1.Filter := 'Excel Dosyaları (*.xls)|*.xls';
if opendialog1.Execute then
begin
book:= Excel.WorkBooks.Open(OpenDialog1.FileName);
try
Screen.Cursor := crHourGlass;
sheet := book.worksheets[1];
for satir:=1 to 2500 do
begin
str := sheet.cells[satir, 1];
if (str <> '') then
begin
Update;
Table1.Append;
for sutun:=1 to 9 do
Table1.Fields[sutun-1].AsString :=sheet.cells[satir, sutun];
Table1.Post;
//edit1.text:=dbgrid1.Columns.Grid.Fields[1].Text;
end;
end;
Excel.quit;
excel:=Unassigned;
finally
Screen.Cursor := crDefault;
end;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
table1.open;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.EmptyTable;
end;
end.
Re: Paradox'da toplu kayıt silme
Paradox table ı boşaltırken, table i kilitlemek ister, başkaları erişemesin diye ve bunu başamarazsa bu hatayı verir. Büyük ihtimal delphi deki formunda table i aktif yaptıgın için hem delphide hem de çalıştırdıgın programda table aktif oldugundan gerekli kilitlemeleri yapamıyor. Delphideki tablei kapalı tut veya formun oldugu pas dosyasını kapatırsan, bir sorun yaşamazsın. Bazen c:\ deki paradox un lck dosyalarını da silmek gerekebiliyor.
Eğer amacın basit data erişimi ise paradox yerine clientdataset i kullanabilirsin, bde yi kurman da gerekmez ve clientdataset çok daha pratiktir.
Eğer amacın basit data erişimi ise paradox yerine clientdataset i kullanabilirsin, bde yi kurman da gerekmez ve clientdataset çok daha pratiktir.
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Table false olarak görünüyor ama yine hata aldım.Pas dosyasını kapatmaktan kastın nedir.
Re: Paradox'da toplu kayıt silme
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=0 to table1.RecordCount do
begin
table1.Delete;
end;
end.
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Dediğin kodu ekledim ama aşağıdaki gibi hata mesajı aldım.
'Table1:Cannot perform this operation on an empty dataset.'
'Table1:Cannot perform this operation on an empty dataset.'
Re: Paradox'da toplu kayıt silme
kodun sebebi şu zaten veritabanı boş diyor bir tane dandik kayıt gir... öyle açmaya çalış 
yada
başta bir sorgulattır
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
if table1.RecordCount<>0 then
begin
for i:=0 to table1.RecordCount do
begin
table1.Delete;
end;
end.

yada
başta bir sorgulattır
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
if table1.RecordCount<>0 then
begin
for i:=0 to table1.RecordCount do
begin
table1.Delete;
end;
end.
-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Tablo boş olduğu zaman delphinin hatası yerine benim kendi yazdığım hata mesajı gelebilir mi
Re: Paradox'da toplu kayıt silme
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
if table1.RecordCount=0 then
begin
showmessage('tablo boş');
end
else
for i:=0 to table1.RecordCount do
begin
table1.Delete;
end;

-
- Üye
- Mesajlar: 18
- Kayıt: 20 Eyl 2011 12:04
Re: Paradox'da toplu kayıt silme
Yardımların için çok teşekkür ederim ama yine aynı hatayı alıyorum.