Delphi 7 de MyStoredProc1 kullanımında hata mesajı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kamilalan2
Üye
Mesajlar: 2
Kayıt: 15 Tem 2010 12:12

Delphi 7 de MyStoredProc1 kullanımında hata mesajı

Mesaj gönderen kamilalan2 »

Delphi Türkiye arkadaşları merhaba;
Delphi7, MySql 5.1 ve Mydac_v3.10.17_Full versiyonu ile amtörce yazılım yapmaya çalışıyorum.
Dadabase içinde oluşturduğum iki adet MyStoredProc1 var bunların bir tanesini çağırken hata almıyorum.
ama aşağıdaki MyStoredProc olan 'sp_sql' çağırıken "PROCEDURE alandat.sp_sql can't return a result set in the given context"
hatası dönmektedir.
Nerde hata yaptığımı anlayamadım yardımcı olabilirseniz memnun olurum
Selamlar

------ Mysql datasında oluşturulan procedure-------
-- Procedure: sp_sql

-- DROP PROCEDURE IF EXISTS `sp_sql`;

DELIMITER |

CREATE PROCEDURE `sp_sql`

BEGIN
/* Procedure text */
select *from musteri;
END|

DELIMITER ;

-------delphi 7.0 da MyDac ile Proceduru çağırıyorum------------
MyStoredProc1.name:='sp_sql';
MyStoredProc1.active:=True;

----------- dönen hata mesajı -----------------------
PROCEDURE alandat.sp_sql can't return a result set in the given context
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı

Mesaj gönderen thelvaci »

Delphi'de MySql bileşenleri ile hiç çalışmadım ama kullandığınız bileşenin bir Resultset getiren metodu bir de ResultSet döndürmeye ihtiyaç duymadığınız metodu olabilir. Misal; TADOStoredProc nesnesinde ExecProc ile Open metodları gibi. ExecProc çağrımlarını genellikle Insert, Update, Delete işlemleri yapan sp'leri çağırırken kullanırız, Open metodunu ise geriye bir ResultSet döndüren Select stored procedure'lerinde kullanırız. İlk aşamada bu gibi bir ayrım yapıp yapmadığınızı kontrol edebilirsiniz.
kamilalan2
Üye
Mesajlar: 2
Kayıt: 15 Tem 2010 12:12

Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı

Mesaj gönderen kamilalan2 »

Tuğrul arkadaşım
Teşekkür ederim yanıtın için,

Zaten sıkıntım Resulset döndürmek istediğimde yaşıyorum. Yoksa update işlemi veya insert yaparkken Execute kullanıyorum
ve bahsettiğim hata mesajını almıyorum. Sadece SELECT ifadesi kullandığımda sıkıntı yaşıyorum.
Zaten proğram içinde (stroredproc dan çağırmadan QUERY ile çağırırken)
QUERY1.SQL.Text:='SELECT * FROM MUSTERI';
open;
dediğimde sıkıntı yok.

Ama sp içinden bu ifadeyi çağırdığımda
QUERY1.SQL.Text:='Call sp_Sql' ;
open;

dediğimde PROCEDURE alandat.sp_sql can't return a result set in the given context hatasını alıyorum
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı

Mesaj gönderen thelvaci »

Merhaba, sp_sql isimli stored procedure'nizde sadece basit bir select ifadesi bulunacak şekilde bir değişiklik yapıp tekrar çağırmayı deneyebilirmisiniz. MySQL'in yapısını bilmiyorum ama, SQL Server'da GO, PRINT vb komutlarla birlikte kullanıldığında bazen sp'lerden beklediğimiz sonuçları alamadığımız oluyor. Sizde de buna benzer bir durum hasıl olmuş olabilir.
Cevapla