Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQL Procedure Script Oluşturma Hakkında
#1
Sql 2008 yazılımını kullanarak procedure yazmaktayım ve bu procedure yazmış olduğum programa gömerek güncelleme işlemini yapmaktayım. Yalnız script çıkarmayı bir türlü beceremedim her seferinden not defterinde kendim manuel olarak yazmak durumunda kalıyorum. Türkçe karakter kullanmak istediğimde baya uğraştırıyor beni. Örneğin (ü=#252 , ö=#216, alt satır=#13#10 gibi). Önereceğiniz daha kolay bir yol var mı?
Cevapla
#2
selamlar,
stored procedure'yi programa gömmek ne demek anlamadım. SQL cümlesini gömdüm deseniz anlarım. Script çıkartmak'tan neyi kastediyorsunuz? Bunları biraz açıklar mısınız lütfen.
Not : MSSQL 2008 çok eski bir versiyon. Bildiğim kadarıyla BDE'nin çalışabildiği son MSSQL sürümü. Bence tez zamanda yenileyin.
Cevapla
#3
ALTER PROCEDURE [dbo].[Rp_ReceteRaporlari]
(@Evrak as nvarchar(100),
@ckod as int,@ekod as int,
@Hesaptur as nvarchar(10),
@tarih1 as datetime,
@tarih2 as datetime)
AS
BEGIN
if @Evrak='Yazılan Tüm Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT
'Reçete' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and (Ust.tarih Between @tarih1 and @tarih2)
Group By
Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
order by Ust.tarih
end
Else if @Evrak='Reçete Detay Bilgileri'
begin
SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust=@ekod)
end
ELSE if @Evrak='Müşteriye Yazılan Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT 'Reçete' as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,
Ust.agacadet,Ust.ciltno,Ust.aciklama as ustaciklama,Alt.*
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and(Ust.ckod=@ckod)  and (Ust.tarih Between @tarih1 and @tarih2)
order by Ust.tarih
end
END

Yukarıdaki gibi yazmış olduğum sql kod bloğu var. Bu kod bloğunu aşşağıdaki gibi manuel yazarak programa gömüyorum. Bu işlemi otomatik olarak yapabileceğim yani sql tarafından script olarak çıkar diyebileceğim bir buton yada işlem varmı bildiğiniz?

item
       ItemType = ditNone
       Name = 'Rp_ReceteRaporlari'
       ScriptCode =
         'SET QUOTED_IDENTIFIER ON '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'#13#10#13#10'CREATE ' +
         'PROCEDURE [dbo].[Rp_ReceteRaporlari]'#13#10'(@Evrak as nvarchar(100),'#13 +
         #10'@ckod as int,@ekod as int,'#13#10'@Hesaptur as nvarchar(10),'#13#10'@tarih1' +
         ' as datetime,'#13#10'@tarih2 as datetime)'#13#10'AS'#13#10'BEGIN'#13#10'if @Evrak='#39'Yaz'#305'l' +
         'an T'#252'm Re'#231'eteler'#39#13#10'begin'#13#10'--GenelToplamToplamOtv,ToplamKdv,Arato' +
         'plam,'#13#10'SELECT'#13#10#39'Re'#231'ete'#39' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu' +
         ',Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno' +
         ',Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.adr' +
         'es, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'FRO' +
         'M dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.e' +
         'kodust =Ust.ekod'#13#10'where (ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and (' +
         'Ust.tarih Between @tarih1 and @tarih2)'#13#10'Group By'#13#10'Ust.ekod, Ust.' +
         'ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltn' +
         'o,Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.ad' +
         'res, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'ord' +
         'er by Ust.tarih'#13#10'end'#13#10'Else if @Evrak='#39'Re'#231'ete Detay Bilgileri'#39#13#10'b' +
         'egin'#13#10'SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust' +
         '=@ekod)'#13#10'end'#13#10'ELSE if @Evrak='#39'M'#252#351'teriye Yaz'#305'lan Re'#231'eteler'#39#13#10'begi' +
         'n'#13#10'--GenelToplamToplamOtv,ToplamKdv,Aratoplam,'#13#10'SELECT '#39'Re'#231'ete'#39' ' +
         'as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.uru' +
         'nad, Ust.hastalikad,Ust.uygulanacakalan,'#13#10'Ust.agacadet,Ust.ciltn' +
         'o,Ust.aciklama as ustaciklama,Alt.*'#13#10'FROM dbo.ReceteAlt as Alt I' +
         'NNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod'#13#10'where ' +
         '(ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and(Ust.ckod=@ckod)  and (Ust' +
         '.tarih Between @tarih1 and @tarih2)'#13#10'order by Ust.tarih'#13#10'end'#13#10'EN' +
         'D'#13#10#13#10'GO'#13#10'SET QUOTED_IDENTIFIER OFF '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'
     end
Cevapla
#4
Doğru anladım isem sorunun çözümü
sql managementte yazdığımız procedure çalıştırın.
Bu işlem procedure database kaydecektir.
sonra

resimdeki gibi hangi procedure script  yapacak iseniz
üzerinde sağ tuş
script store proced create secin 
query olarak ekrana  gelecektir.
sonra text olarak kaydedim veya kopyala yapıştır yapın.

Bu script çıkarma sorusuna cevap.


Programa gömme kısmı icin
siz zaten procedure yazmış ve sql kaydetmişsiniz.
ado veya benzeri bir component ile bu procedure çağırmanız gerekli
en azından ben bu şekilde anlıyorum


Ek Dosyalar Resimler
   
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#5
(16-07-2022, Saat: 12:52)glagher Adlı Kullanıcıdan Alıntı:
ALTER PROCEDURE [dbo].[Rp_ReceteRaporlari]
(@Evrak as nvarchar(100),
@ckod as int,@ekod as int,
@Hesaptur as nvarchar(10),
@tarih1 as datetime,
@tarih2 as datetime)
AS
BEGIN
if @Evrak='Yazılan Tüm Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT
'Reçete' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and (Ust.tarih Between @tarih1 and @tarih2)
Group By
Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
order by Ust.tarih
end
Else if @Evrak='Reçete Detay Bilgileri'
begin
SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust=@ekod)
end
ELSE if @Evrak='Müşteriye Yazılan Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT 'Reçete' as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,
Ust.agacadet,Ust.ciltno,Ust.aciklama as ustaciklama,Alt.*
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and(Ust.ckod=@ckod)  and (Ust.tarih Between @tarih1 and @tarih2)
order by Ust.tarih
end
END

Yukarıdaki gibi yazmış olduğum sql kod bloğu var. Bu kod bloğunu aşşağıdaki gibi manuel yazarak programa gömüyorum. Bu işlemi otomatik olarak yapabileceğim yani sql tarafından script olarak çıkar diyebileceğim bir buton yada işlem varmı bildiğiniz?

item
       ItemType = ditNone
       Name = 'Rp_ReceteRaporlari'
       ScriptCode =
         'SET QUOTED_IDENTIFIER ON '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'#13#10#13#10'CREATE ' +
         'PROCEDURE [dbo].[Rp_ReceteRaporlari]'#13#10'(@Evrak as nvarchar(100),'#13 +
         #10'@ckod as int,@ekod as int,'#13#10'@Hesaptur as nvarchar(10),'#13#10'@tarih1' +
         ' as datetime,'#13#10'@tarih2 as datetime)'#13#10'AS'#13#10'BEGIN'#13#10'if @Evrak='#39'Yaz'#305'l' +
         'an T'#252'm Re'#231'eteler'#39#13#10'begin'#13#10'--GenelToplamToplamOtv,ToplamKdv,Arato' +
         'plam,'#13#10'SELECT'#13#10#39'Re'#231'ete'#39' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu' +
         ',Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno' +
         ',Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.adr' +
         'es, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'FRO' +
         'M dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.e' +
         'kodust =Ust.ekod'#13#10'where (ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and (' +
         'Ust.tarih Between @tarih1 and @tarih2)'#13#10'Group By'#13#10'Ust.ekod, Ust.' +
         'ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltn' +
         'o,Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.ad' +
         'res, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'ord' +
         'er by Ust.tarih'#13#10'end'#13#10'Else if @Evrak='#39'Re'#231'ete Detay Bilgileri'#39#13#10'b' +
         'egin'#13#10'SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust' +
         '=@ekod)'#13#10'end'#13#10'ELSE if @Evrak='#39'M'#252#351'teriye Yaz'#305'lan Re'#231'eteler'#39#13#10'begi' +
         'n'#13#10'--GenelToplamToplamOtv,ToplamKdv,Aratoplam,'#13#10'SELECT '#39'Re'#231'ete'#39' ' +
         'as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.uru' +
         'nad, Ust.hastalikad,Ust.uygulanacakalan,'#13#10'Ust.agacadet,Ust.ciltn' +
         'o,Ust.aciklama as ustaciklama,Alt.*'#13#10'FROM dbo.ReceteAlt as Alt I' +
         'NNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod'#13#10'where ' +
         '(ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and(Ust.ckod=@ckod)  and (Ust' +
         '.tarih Between @tarih1 and @tarih2)'#13#10'order by Ust.tarih'#13#10'end'#13#10'EN' +
         'D'#13#10#13#10'GO'#13#10'SET QUOTED_IDENTIFIER OFF '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'
     end
SP'yi (Stored Procedure) bu şekilde koda gömerseniz şunlar olur;
1-SP içindeki kodlar çalışmaz, bunun yerine asıl en başta vermiş olduğunuz create procedure çaışır ve bu SP'yi (eğer sentaksı düzgünse) yaratır.
2-İkinci defa bu kısmı çalıştırdığınızda hata verir. Çünkü 1. seferde create ettiği SP'yi tekrar create etmeye çalıştığında SQL server "aynı isimde bir SP var!" şeklinde bir hata döner. 

Burada bunun nasıl yapılması gerektiğini anlatamıyorum çünkü sizin neyi amaçladığınızı bilmiyorum. Eğer amacınız kod içinden SP yaratmaksa doğrı işlem. Ama bir takım SQL işlemleri yaptırmaksa bu şekilde yapmak yerine, SP'yi kod içinden çalıştırarak yapmanız gerekir. Eğer ne yapacağınızı net olarak ifade ederseniz daha fazla yardım edebiliriz.
Cevapla
#6
(16-07-2022, Saat: 14:24)mustafaozpinar Adlı Kullanıcıdan Alıntı:
(16-07-2022, Saat: 12:52)glagher Adlı Kullanıcıdan Alıntı:
ALTER PROCEDURE [dbo].[Rp_ReceteRaporlari]
(@Evrak as nvarchar(100),
@ckod as int,@ekod as int,
@Hesaptur as nvarchar(10),
@tarih1 as datetime,
@tarih2 as datetime)
AS
BEGIN
if @Evrak='Yazılan Tüm Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT
'Reçete' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and (Ust.tarih Between @tarih1 and @tarih2)
Group By
Ust.ekod, Ust.ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltno,Ust.carihesaptur, Ust.ad, Ust.soyad,
Ust.kod,Ust.unvan,Ust.adres, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama
order by Ust.tarih
end
Else if @Evrak='Reçete Detay Bilgileri'
begin
SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust=@ekod)
end
ELSE if @Evrak='Müşteriye Yazılan Reçeteler'
begin
--GenelToplamToplamOtv,ToplamKdv,Aratoplam,
SELECT 'Reçete' as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.urunad, Ust.hastalikad,Ust.uygulanacakalan,
Ust.agacadet,Ust.ciltno,Ust.aciklama as ustaciklama,Alt.*
FROM dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod
where (ltrim(rtrim(Ust.statu))='Aktif')  and(Ust.ckod=@ckod)  and (Ust.tarih Between @tarih1 and @tarih2)
order by Ust.tarih
end
END

Yukarıdaki gibi yazmış olduğum sql kod bloğu var. Bu kod bloğunu aşşağıdaki gibi manuel yazarak programa gömüyorum. Bu işlemi otomatik olarak yapabileceğim yani sql tarafından script olarak çıkar diyebileceğim bir buton yada işlem varmı bildiğiniz?

item
       ItemType = ditNone
       Name = 'Rp_ReceteRaporlari'
       ScriptCode =
         'SET QUOTED_IDENTIFIER ON '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'#13#10#13#10'CREATE ' +
         'PROCEDURE [dbo].[Rp_ReceteRaporlari]'#13#10'(@Evrak as nvarchar(100),'#13 +
         #10'@ckod as int,@ekod as int,'#13#10'@Hesaptur as nvarchar(10),'#13#10'@tarih1' +
         ' as datetime,'#13#10'@tarih2 as datetime)'#13#10'AS'#13#10'BEGIN'#13#10'if @Evrak='#39'Yaz'#305'l' +
         'an T'#252'm Re'#231'eteler'#39#13#10'begin'#13#10'--GenelToplamToplamOtv,ToplamKdv,Arato' +
         'plam,'#13#10'SELECT'#13#10#39'Re'#231'ete'#39' as Evraktur,Ust.ekod, Ust.ckod,Ust.statu' +
         ',Ust.islem,Ust.seri as seri , Ust.tarih,Ust.no as no ,Ust.ciltno' +
         ',Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.adr' +
         'es, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno, Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'FRO' +
         'M dbo.ReceteAlt as Alt INNER JOIN dbo.ReceteUst as Ust ON  Alt.e' +
         'kodust =Ust.ekod'#13#10'where (ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and (' +
         'Ust.tarih Between @tarih1 and @tarih2)'#13#10'Group By'#13#10'Ust.ekod, Ust.' +
         'ckod,Ust.statu,Ust.islem,Ust.seri , Ust.tarih, Ust.no ,Ust.ciltn' +
         'o,Ust.carihesaptur, Ust.ad, Ust.soyad,'#13#10'Ust.kod,Ust.unvan,Ust.ad' +
         'res, Ust.semt, Ust.sehir, Ust.tel, Ust.vd, Ust.vno,Ust.urunad, U' +
         'st.hastalikad,Ust.uygulanacakalan,Ust.agacadet,Ust.aciklama'#13#10'ord' +
         'er by Ust.tarih'#13#10'end'#13#10'Else if @Evrak='#39'Re'#231'ete Detay Bilgileri'#39#13#10'b' +
         'egin'#13#10'SELECT  Alt.* FROM dbo.ReceteAlt as Alt WHERE (Alt.ekodust' +
         '=@ekod)'#13#10'end'#13#10'ELSE if @Evrak='#39'M'#252#351'teriye Yaz'#305'lan Re'#231'eteler'#39#13#10'begi' +
         'n'#13#10'--GenelToplamToplamOtv,ToplamKdv,Aratoplam,'#13#10'SELECT '#39'Re'#231'ete'#39' ' +
         'as Evraktur,Ust.ekod,Ust.tarih,Ust.seri,Ust.no,Ust.islem,Ust.uru' +
         'nad, Ust.hastalikad,Ust.uygulanacakalan,'#13#10'Ust.agacadet,Ust.ciltn' +
         'o,Ust.aciklama as ustaciklama,Alt.*'#13#10'FROM dbo.ReceteAlt as Alt I' +
         'NNER JOIN dbo.ReceteUst as Ust ON  Alt.ekodust =Ust.ekod'#13#10'where ' +
         '(ltrim(rtrim(Ust.statu))='#39'Aktif'#39')  and(Ust.ckod=@ckod)  and (Ust' +
         '.tarih Between @tarih1 and @tarih2)'#13#10'order by Ust.tarih'#13#10'end'#13#10'EN' +
         'D'#13#10#13#10'GO'#13#10'SET QUOTED_IDENTIFIER OFF '#13#10'GO'#13#10'SET ANSI_NULLS ON '#13#10'GO'
     end
SP'yi (Stored Procedure) bu şekilde koda gömerseniz şunlar olur;
1-SP içindeki kodlar çalışmaz, bunun yerine asıl en başta vermiş olduğunuz create procedure çaışır ve bu SP'yi (eğer sentaksı düzgünse) yaratır.
2-İkinci defa bu kısmı çalıştırdığınızda hata verir. Çünkü 1. seferde create ettiği SP'yi tekrar create etmeye çalıştığında SQL server "aynı isimde bir SP var!" şeklinde bir hata döner. 

Burada bunun nasıl yapılması gerektiğini anlatamıyorum çünkü sizin neyi amaçladığınızı bilmiyorum. Eğer amacınız kod içinden SP yaratmaksa doğrı işlem. Ama bir takım SQL işlemleri yaptırmaksa bu şekilde yapmak yerine, SP'yi kod içinden çalıştırarak yapmanız gerekir. Eğer ne yapacağınızı net olarak ifade ederseniz daha fazla yardım edebiliriz.
2. defaya sql meneger da çalıştığında hata veriyor. Delphi tarafında çalıştığında ise procedurede değişen yer var ise değişen yeri güncelleyor. Oyüzden o tarafta hiçbir sıkıntı yok.

(16-07-2022, Saat: 13:29)cinarbil Adlı Kullanıcıdan Alıntı: Doğru anladım isem sorunun çözümü
sql managementte yazdığımız procedure çalıştırın.
Bu işlem procedure database kaydecektir.
sonra

resimdeki gibi hangi procedure script  yapacak iseniz
üzerinde sağ tuş
script store proced create secin 
query olarak ekrana  gelecektir.
sonra text olarak kaydedim veya kopyala yapıştır yapın.

Bu script çıkarma sorusuna cevap.


Programa gömme kısmı icin
siz zaten procedure yazmış ve sql kaydetmişsiniz.
ado veya benzeri bir component ile bu procedure çağırmanız gerekli
en azından ben bu şekilde anlıyorum
Dediğiniz gibi denenedim ama yazmış olduğum kod bloğunun aynısını tekrar yeni bir sekmede açtı . Benim istediğim şekilde vermedi yani.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  timer kullanimi hakkinda sadikacar60 11 278 Dün, Saat: 19:33
Son Yorum: sadikacar60
  store procedure ile toplama islemi sadikacar60 5 297 22-04-2024, Saat: 12:50
Son Yorum: bydelphi
  or komutu hakkinda sadikacar60 1 146 12-04-2024, Saat: 17:17
Son Yorum: sso
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 255 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  AES Şifreleme Hakkında tmrksmt 18 1.568 14-02-2024, Saat: 10:42
Son Yorum: tmrksmt



Konuyu Okuyanlar: 1 Ziyaretçi