mysql artık programı donduruyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seci20

mysql artık programı donduruyor

Mesaj gönderen seci20 »

merhaba ustalarım ilk zamanlarda mysql sorgusunda hiç bir sıkıntı yasamıyordum servere kuralı 15 gun oldu ama simdi programı donduruyor mecbur kapatmak zorunda kalıyorum.form ılk acılısta sorgu yapıyor acılıyor bıde her ısleme yapıldıgında sorgu yapıyor ama sımdı ılk programı acıyorum sorgu yapıyorum sorunsuz oluyor ama ısleme basladıgımda olmuyor.Öncelerı sağlam sekılde calısıyordu sımdı o calısan hiç dokunmadıgım işlemler bile donuyor kodlarda soyle..

Kod: Tümünü seç

MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add('select * from kullanici where kullanici='+chr(39)+(edit1.Text)+chr(39)+'and sifre='+chr(39)+(edit2.Text)+chr(39));
MyQuery1.Open;
MyQuery1.Refresh;
sonucmysql:=MyQuery1.RecordCount;
if (sonucmysql>0) then else
begin
yardımcı olursanız cok sevinirim şimdiden tesekkur ederım
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: mysql artık programı donduruyor

Mesaj gönderen vkamadan »

merhabalar ,
ilk akla gelen MySQL tablolarınıza uyguladığınız sorgularda WHERE kısmında kullandığınız alanların uygun "Index" lere sahip olmaması durumu, mesela sizin örneğinizde "kullanici" tablonuzda en azından "kullanici" isimli sahanızda bir index olmalı, hatta teknik mimari olarak kullanıcı tablosunda aynı ada sahip bir başka kullanıcının olmasının mümkün olmaması gerekliliğinden dolayı tablonuzda "kullanici" sahası direk Primary Key olabilir ve en iyi verimi Primary Key lerden alınırsınız. diğer bir önerim performansı etkilemez ama daha güvenli bir kullanım olduğu için Query lerde Parametre kullanmanız sizin örnek aşağıdaki gibi daha güvenli olacaktır

Kod: Tümünü seç

MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add('select * from kullanici where kullanici=:kullanici and sifre=:sifre LIMIT 1');
MyQuery1.ParamByName('kullanici').AsString := Edit1.Text;
MyQuery1.ParamByName('sifre').AsString := Edit2.Text;
MyQuery1.Open;
if MyQuery1.isempty then 
begin
kolay gelsin..
Volkan KAMADAN
www.polisoft.com.tr
seci20

Re: mysql artık programı donduruyor

Mesaj gönderen seci20 »

vkamadan yazdı:merhabalar ,
ilk akla gelen MySQL tablolarınıza uyguladığınız sorgularda WHERE kısmında kullandığınız alanların uygun "Index" lere sahip olmaması durumu, mesela sizin örneğinizde "kullanici" tablonuzda en azından "kullanici" isimli sahanızda bir index olmalı, hatta teknik mimari olarak kullanıcı tablosunda aynı ada sahip bir başka kullanıcının olmasının mümkün olmaması gerekliliğinden dolayı tablonuzda "kullanici" sahası direk Primary Key olabilir ve en iyi verimi Primary Key lerden alınırsınız. diğer bir önerim performansı etkilemez ama daha güvenli bir kullanım olduğu için Query lerde Parametre kullanmanız sizin örnek aşağıdaki gibi daha güvenli olacaktır

Kod: Tümünü seç

MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add('select * from kullanici where kullanici=:kullanici and sifre=:sifre LIMIT 1');
MyQuery1.ParamByName('kullanici').AsString := Edit1.Text;
MyQuery1.ParamByName('sifre').AsString := Edit2.Text;
MyQuery1.Open;
if MyQuery1.isempty then 
begin
kolay gelsin..
hocam cevap verdiğiniz çok teşekkür ederim private key aktif yaptım şuan düzeldi ilerde verirmi pek bilmiyorum sorunu çok çok teşekkür ederim tekrardan...
Cevapla