MYSQL Function

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
alguli
Üye
Mesajlar: 35
Kayıt: 04 Nis 2007 01:03

MYSQL Function

Mesaj gönderen alguli »

MYSQL 5.0, Delphi 2010 ve Unidac kullanıyorum.
EMS MySQL Manager aracılığı ile hazırladığım bir sıralama fonksiyonum var.
Fonksiyon dışardan sinavkod parametresini alıp işlemi yaptıktan sonra Result:=1 dönderiyor.
Bu Fonksiyonu EMS içerisinden execute ediyorum ve gayet güzel çalışıyor.
Program İçerisinde bir türlü execute etmeyi başaramadım.
Denediğim bir kaç yöntemde işlem yapıyor görünüyor fakat istediğim değerleri ilgili alanlara yazmıyor.

Kod: Tümünü seç

  dm.sira.Close;
  dm.sira.StoredProcName := 'gsira2';
  dm.sira.sql.Text := 'SELECT gsira2(:2 )';
  dm.sira.ExecSQL;
Function ı Delphi içinde nasıl execute edeceğim konusunda yardımcı olursanız sevinirim.
Şimdiden teşekkürler
Hayat yalanlarla dolu bir aşktır.
Gerçek aşka erişince o da biter.
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: MYSQL Function

Mesaj gönderen omurolmez »

Kullandığınız komponent nedir bilmiyorum ancak tahminimce hem StoredProcName özelliğini hem de SQL özelliğini aynı anda kullanmak doğru değildir.
Eğer sp ye parametre geçmek istiyorsanız, komponentin Params, Parameters, vb isimli özelliğini kullanmalısınız. Google da arayabilirsiniz.
Öte yandan, storedProcName özelliğine sp adını atadıktan sonra komponent sizin için Params ı oluşturabilir de. Bu durumda Params.Count 0 dan farklı olur. Siz sadece değerleri girersiniz. Params.Params, Params.Items, Params.ParamByName('parametre_adi'), vb.
Sp den dönen veriyi yine params ın In/out veya out tipli olanlarından öğrenirsiniz veya tıpkı bir query veya table gibi result set dönüyorsa, while not eof next ile fields dan öğrenirsiniz veya datasource ile grid e vs bağlayabilirsiniz.

Kullandığınız component adı ile google da örnek arayabilirsiniz.
Ömür Ölmez
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: MYSQL Function

Mesaj gönderen vkamadan »

Merhaba ,
özel bir StoredProcedure çalıştırıcı bileşen kullanmadan doğrudan sql cümlesiyle aşağıdaki gibi CALL rezerve kelimesiyle çalıştırabilirsiniz ;

Kod: Tümünü seç

 dm.sira.Close;
  dm.sira.sql.Text := 'CALL  gsira2(:parametre )';
 dm.sira.ParamByName('parametre').AsInteger := 2;
  dm.sira.ExecSQL;
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla