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
Delphi 7 de MyStoredProc1 kullanımında hata mesajı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 2
- Kayıt: 15 Tem 2010 12:12
Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı
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.
-
- Üye
- Mesajlar: 2
- Kayıt: 15 Tem 2010 12:12
Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı
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
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
Re: Delphi 7 de MyStoredProc1 kullanımında hata mesajı
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.