merhaba
delphi 7 ile bir program yazıyorum, paradox veritabanı kullandım,
çalışma esnasında bazen şöyle bir hata veriyor
record already locked by this sesion.
Q_SERI.Edit ;
Q_SERISIP_NO.VALUE :=EDIT1.TEXT;
Q_SERISAT_FAT_NO.VALUE :=EDIT3.TEXT;
Q_SERISAT_TAR.TEXT := MASKEDIT1.TEXT;
Q_SERIALICI.VALUE := EDIT2.TEXT;
Q_SERIONAY.VALUE := EDIT4.TEXT;
Q_SERIFIYATI.VALUE :='S';
Q_SERI.Refresh ;
yaptığım işlemde bu, nerede hata yaptığımı gösterebilirmisiniz acaba.
database hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
önerilerim :
* paradox'u Table nesnesi ile kullanmak daha iyidir. Sadece raporlarda Query kullanın.
* Adım adım çalıştırarak hatanın nerde olduğunu bulabilirsiniz. Ama bence sanki Refresh satırından önce Post komutunu verseniz düzelir gibi. Orda Post'u unutmuşsunuz. Yani :
* Value şeklinde kullanırsanız, değerler Variant tipte gelir ve buda programı yavaşlatır. Atamalarınızı aşağıdaki gibi yapın :
FieldByName('alan_adı').AsInteger := ....;
FieldByName('alan_adı').AsString := ....;
FieldByName('alan_adı').AsFloat := ....;
vs.
Kolay gelsin.
önerilerim :
* paradox'u Table nesnesi ile kullanmak daha iyidir. Sadece raporlarda Query kullanın.
* Adım adım çalıştırarak hatanın nerde olduğunu bulabilirsiniz. Ama bence sanki Refresh satırından önce Post komutunu verseniz düzelir gibi. Orda Post'u unutmuşsunuz. Yani :
Kod: Tümünü seç
Q_SERIFIYATI.VALUE :='S';
Q_SERI.Post; // bu satırı ekledim
Q_SERI.Refresh ;
FieldByName('alan_adı').AsInteger := ....;
FieldByName('alan_adı').AsString := ....;
FieldByName('alan_adı').AsFloat := ....;
vs.
Kolay gelsin.
Bu hızlı cevap için teşekkür.
post komutunu bende denedim ama sonuç alamadı. benim garibime giden şu oluyor ben bu komutları dbgridin cift tıklama bölümüne yazdım ve ordan seçilen alan içinde değişiklik yapıyorum. bu hata sadece gridin ilk satırında veriyor diğerlerinde vermiyor. yani ilk satır hata veririsede diğerlerini alıp değiştirebiliyorum. ve bunu bazen yapıyor bazen yapmıyor.
sizin dediğiniz
FieldByName('alan_adı').AsInteger := ....;
FieldByName('alan_adı').AsString := ....;
FieldByName('alan_adı').AsFloat := ....;
şeklindede yaptım ama olmadı. aynı hatayı gene verdi
post komutunu bende denedim ama sonuç alamadı. benim garibime giden şu oluyor ben bu komutları dbgridin cift tıklama bölümüne yazdım ve ordan seçilen alan içinde değişiklik yapıyorum. bu hata sadece gridin ilk satırında veriyor diğerlerinde vermiyor. yani ilk satır hata veririsede diğerlerini alıp değiştirebiliyorum. ve bunu bazen yapıyor bazen yapmıyor.
sizin dediğiniz
FieldByName('alan_adı').AsInteger := ....;
FieldByName('alan_adı').AsString := ....;
FieldByName('alan_adı').AsFloat := ....;
şeklindede yaptım ama olmadı. aynı hatayı gene verdi