Delphi'de yazdığım bir DLL'i (UDF = User Defined Function) MySQL içinde kullanıyorum. Kendi sistemimde hiç bir sorun yaşamaz iken, bir başka sistemde Delphi'de yazdığım metodları MySQL içinden kullanmaya çalışır iken bir modülün bulunamadığına ilişkin hata aldım. Aklıma ilk olarak "DLL'imi mi bulamıyor acaba ?" sorusu geldi. Bu bağlamda, DLL'imin yerini kontrol ettim, olması gerektiği gibi \lib\plugin altında idi. My.ini dosyasında mı bir problem var acaba diye kontrol ettim ve hiç bir fark bulamadım. Acaba yükleyemediği , bulamadığı modül ne idi ?
Bütün iş MySQL içinde gerçekleştiği için (benim DLL'imi MySQL yüklemeye çalışıyor ve bir hata alıyordu) mysql'in EXE 'sini takibe almayı düşündüm. Bunun için sysinternals'in
Velhasıl, bunca şeyi neden yazdım ? Hata bulup tespit etmenin de bir sanat olduğunu ifade edebilmek için. Hatalar bulunup, düzeltilebilirler. Sizler yeterki azimli olun ve neyi nasıl ve nerede arayacağınızı bilin. İşte bu amaç ile belki sizlere de ileride faydası olur niyeti ile, bu tecrübemi paylaşmak istedim.
Hatasız günler dilerim...
Bütün iş MySQL içinde gerçekleştiği için (benim DLL'imi MySQL yüklemeye çalışıyor ve bir hata alıyordu) mysql'in EXE 'sini takibe almayı düşündüm. Bunun için sysinternals'in
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.
(Process Monitor) uygulamasını kullandım. Filtre olarak ilgili EXE'yi verince, kısa bir zaman sonra hatayı gözlemledim. Hata borlandmm.dll dosyasının bulunamaması idi. Yazdığım DLL'de ShareMem unit'înin uses'da ekli olmasından kaynaklı bu DLL'e ihtiyaç var idi. Karşı sistemde de bu dll olmayınca modül bulunamadı hatası alıyordum. Çözüm basit; borlandmm.dll dosyasını karşı sisteme atmak ya da ShareMem unit'inden kurtulmak (tabii proje dosyasındaki açıklamaları okuyarak dikkat etmek kaydı ile).Velhasıl, bunca şeyi neden yazdım ? Hata bulup tespit etmenin de bir sanat olduğunu ifade edebilmek için. Hatalar bulunup, düzeltilebilirler. Sizler yeterki azimli olun ve neyi nasıl ve nerede arayacağınızı bilin. İşte bu amaç ile belki sizlere de ileride faydası olur niyeti ile, bu tecrübemi paylaşmak istedim.
Hatasız günler dilerim...