Arkadaşlar Delphi 7 yazdığım kodlar Rad Studio da çalışmadı
kod:
procedure Tsdtmf.siradegistir(Tables:String;aramaalani,Degistirilecekalan,suankiID,degisecekID:integer);
var
suankisira,degiseceksira:integer;
sl1,sl2:string;
Table_degistir:TFDtable;
tables_degistir_SRC:TDatasource;
Begin
Table_degistir:=TFDTable.create(nil);
tables_degistir_SRC:=Tdatasource.Create(nil);
Table_degistir.Connection:=sdtmf.mksuruconnection;
Table_degistir.Tablename:=Tables;
tables_degistir_SRC.DataSet:= Table_degistir;
Table_degistir.CachedUpdates:=True;
Table_degistir.FieldDefs.Update;
Table_degistir.IndexFieldNames:=Table_degistir.FieldDefs.Items[0].Name ;
Sl1:=Table_degistir.FieldDefs.Items[1].Name;
Sl2:=Table_degistir.FieldDefs.Items[2].Name;
Table_degistir.open();
if Table_degistir.locate(Table_degistir.FieldDefs.Items[aramaalani].Name,suankiID,[loCaseInsensitive]) then
Begin
Table_degistir.GotoKey;
suankisira:=Table_degistir.Fields[Degistirilecekalan].Value;
End;
End;
Verdiği Hata mesajı da :
Acces Violation at the address 008CAA8C in module read of address 00000002
delphi 7 de çalışan procedure şimdi rad studio da çalışmıyor. Ayrıca ; delphi 7 de yazılmış kod ve companentler neden üst versiyonda eksik ve yanlışlarla dolu hata veriyor?
Yardımınız için şimdiden teşekkür ederim
TFDTable.Gotokey Access Violation Hataası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: TFDTable.Gotokey Access Violation Hataası
Merhaba,
Hatayı hangi satırda aldığınızı net olarak belirtmemişsiniz. Ancak konu başlığına bakınca GotoKey satırında olduğunu tahmin ediyorum.
Paylaştığınız kod ile yapmak istediğiniz tam olarak nedir? Bir tabloda, belli bir satırdaki belli bir kolona ait değeri değiştirmek gibi anlaşılıyor.
Eğer amacınız bu ise TFDTable.GotoKey kullanımınız hatalı. Bu komut öncesinde bir yerde TFDTable.SetKey kullanmadığınız için hata alıyor olmanız normal.
Diğer taraftan, amacınız mevcut kaydı bulmak ise TFDTable.Locate zaten sizi istediğiniz kayda odaklamış olur. Kaydı bulduktan sonra ekstra TFDTable.GotoKey kullanmanıza gerek yok.
Tabi hata farklı bir satır için geliyor olabilir. RAD Studio'da sağ üst kısımda kalan Proje Yöneticisi içinde projeniz için DEBUG modu seçili olduğu halde F9 tuşu ile debug run yaparsanız, hata aldığınızda gelen mesaja da Break butonunu tıklayarak işleyişi durdurur iseniz sol üst kısımda call stack listesini görürsünüz.
Call Stack hata oluşan son prosedür/fonksiyonu en üstte olacak şekilde gösterir. Bu fonksiyon her zaman gerçek hata olan yeri veya sebebini anlamanıza yardımcı olmaz. Bazı hataların kaynağını bulabilmek için listede aşağı doğru inerek size ait kodların olduğu ilk prosedür/fonksiyonu tespit etmelisiniz. Bunu tespit ettiğinizde üzerine çift tıklayarak ilgili satıra gidersiniz. sol alt kısımda Local Variables içinde de yerel değişkenlerin değerlerini görürsünüz. Bu bilgileri kullanarak hata kaynağını daha sağlıklı tespit edebilirsiniz.
Hatayı hangi satırda aldığınızı net olarak belirtmemişsiniz. Ancak konu başlığına bakınca GotoKey satırında olduğunu tahmin ediyorum.
Paylaştığınız kod ile yapmak istediğiniz tam olarak nedir? Bir tabloda, belli bir satırdaki belli bir kolona ait değeri değiştirmek gibi anlaşılıyor.
Eğer amacınız bu ise TFDTable.GotoKey kullanımınız hatalı. Bu komut öncesinde bir yerde TFDTable.SetKey kullanmadığınız için hata alıyor olmanız normal.
Diğer taraftan, amacınız mevcut kaydı bulmak ise TFDTable.Locate zaten sizi istediğiniz kayda odaklamış olur. Kaydı bulduktan sonra ekstra TFDTable.GotoKey kullanmanıza gerek yok.
Tabi hata farklı bir satır için geliyor olabilir. RAD Studio'da sağ üst kısımda kalan Proje Yöneticisi içinde projeniz için DEBUG modu seçili olduğu halde F9 tuşu ile debug run yaparsanız, hata aldığınızda gelen mesaja da Break butonunu tıklayarak işleyişi durdurur iseniz sol üst kısımda call stack listesini görürsünüz.
Call Stack hata oluşan son prosedür/fonksiyonu en üstte olacak şekilde gösterir. Bu fonksiyon her zaman gerçek hata olan yeri veya sebebini anlamanıza yardımcı olmaz. Bazı hataların kaynağını bulabilmek için listede aşağı doğru inerek size ait kodların olduğu ilk prosedür/fonksiyonu tespit etmelisiniz. Bunu tespit ettiğinizde üzerine çift tıklayarak ilgili satıra gidersiniz. sol alt kısımda Local Variables içinde de yerel değişkenlerin değerlerini görürsünüz. Bu bilgileri kullanarak hata kaynağını daha sağlıklı tespit edebilirsiniz.
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: TFDTable.Gotokey Access Violation Hataası
Evet Gotokey Satırında hata alıyorum. Amacım Anne, Baba, hastalik gibi tablolara (Sql server Veritabanı)tek tek FDTable oluşturmak yerine bir procedure ile ulaşarak örneğin Anne tablosunu belirtmiş isem anne tablosunda arama yapıp eğer kayıt var ise o kayda gitmek istiyorum dediğim gibi Delphi 7 de çalışıyordu kodlar burada hata veriyor
Re: TFDTable.Gotokey Access Violation Hataası
Daha önce kullandığınız veritabanı ve bileşenler ile şu anda kullandıklarınızdan farklı olmalı. Yeni bileşenlerin kullanımına uygun kodlar yazmalısınız.
GotoKey kullanımınızın hatalı olduğunu daha önce de yazmıştım. Delphi 7 ile kullanıyor iken de hatalı kullanmışsınız. Özetle o satıra hiç ihtiyacınız olmamalı. Silip kodun doğru çalıştığını test edebilirsiniz.
GotoKey kullanımınızın hatalı olduğunu daha önce de yazmıştım. Delphi 7 ile kullanıyor iken de hatalı kullanmışsınız. Özetle o satıra hiç ihtiyacınız olmamalı. Silip kodun doğru çalıştığını test edebilirsiniz.