Paradox'da toplu kayıt silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

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.
ercanskose
Üye
Mesajlar: 62
Kayıt: 18 Eyl 2011 02:31

Re: Paradox'da toplu kayıt silme

Mesaj gönderen ercanskose »

tahminim şöyle yapabilirsin. formun onclose olayına table nesnesinin active olayını false yaptırırsın.

Kod: Tümünü seç

table1.active:=false;  // tabi bu dbgridde hiç bişi bırakmaz başlıklarda silinir.
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.
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

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.
esrehmaan

Re: Paradox'da toplu kayıt silme

Mesaj gönderen esrehmaan »

formun onclose olayına bu kodu yazar mısın

Kod: Tümünü seç

table1.EmptyTable;
// tabloyu boşalt
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

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
esrehmaan

Re: Paradox'da toplu kayıt silme

Mesaj gönderen esrehmaan »

kullandığın component ve alanları yollar mısın ?
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

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.
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Paradox'da toplu kayıt silme

Mesaj gönderen emin_as »

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.
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

Table false olarak görünüyor ama yine hata aldım.Pas dosyasını kapatmaktan kastın nedir.
esrehmaan

Re: Paradox'da toplu kayıt silme

Mesaj gönderen esrehmaan »

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.
bunu dene bakalım olur gibi bu
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

Dediğin kodu ekledim ama aşağıdaki gibi hata mesajı aldım.

'Table1:Cannot perform this operation on an empty dataset.'
esrehmaan

Re: Paradox'da toplu kayıt silme

Mesaj gönderen esrehmaan »

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.
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

Tablo boş olduğu zaman delphinin hatası yerine benim kendi yazdığım hata mesajı gelebilir mi
esrehmaan

Re: Paradox'da toplu kayıt silme

Mesaj gönderen esrehmaan »

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;
üsteki kod olur gibi ;)
berkeryuksel
Üye
Mesajlar: 18
Kayıt: 20 Eyl 2011 12:04

Re: Paradox'da toplu kayıt silme

Mesaj gönderen berkeryuksel »

Yardımların için çok teşekkür ederim ama yine aynı hatayı alıyorum.
Cevapla