Firebird Stored Procedure ve Trigger Bilgisi
Selamlar,
SET TRANSACTION, COMMIT ve ROLLBACK aynen çalışır.
Detay için Interbase'in LANGREF.PDF'e göz atın orada örnekleri ile var.
Kolay Gelsin.
SET TRANSACTION, COMMIT ve ROLLBACK aynen çalışır.
Detay için Interbase'in LANGREF.PDF'e göz atın orada örnekleri ile var.
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Teşekkür ediyorum, peki şunu sorayım mesela Bir birini çağıran SP lerde atıyorum 1.SP de aşlattığım TRANSACTION sonuncuda COMMIT edebilirim değilmi sorun olmaz yani.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Selamlar,
FB v1.5'de Transactionlara name verebiliyorsun ve istediğin anda istediğin transaction'ı commit edebiliyorsun veya rollback edebiliyorsun.
Şeklinde bloklar ve içi içe transaction'lar kurabilirsiniz ve her SP'ye kendi içinde transactionlar açıp rollback filan yapabilirsiniz.
Kolay Gelsin
FB v1.5'de Transactionlara name verebiliyorsun ve istediğin anda istediğin transaction'ı commit edebiliyorsun veya rollback edebiliyorsun.
Kod: Tümünü seç
SET TRANSACTION AHMET
.
.
IVIR ZIVIR KODLAR
.
.
SET TRANSACTION ADNAN
.
.
IVIR ZIVIR KODLAR
.
.
COMMIT ADNAN
.
.
IVIR ZIVIR KODLAR
.
.
COMMIT AHMET
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Evet gerçekten çok işime yaradı. ilginizden dolayı teşekkür ederim.
İyi çalışmalar
İyi çalışmalar
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
SelamunAleykum arkadaşlar;
ben @Kuri_TLJ hocamın yukarıda dediği gibi ufak bir sp yaptım ama
şu TRANSACTION olayını bir türlü sp içinde yaptıramadım... acaba bu TRANSACTION ları bir yerlerde tanımlıyormuyuz yok sa
SET TRANSACTION AHMET demek yeterli oluyormu..
my_sp DBWorkBench YAPIYORUM ;
eğer yanlış anlamadıysam ben bunu Sql Editorden
dediğimde commit etmeden kendisi sp içinde commit etmesi lazım..
teşekkürler..
ßurak
ben @Kuri_TLJ hocamın yukarıda dediği gibi ufak bir sp yaptım ama
şu TRANSACTION olayını bir türlü sp içinde yaptıramadım... acaba bu TRANSACTION ları bir yerlerde tanımlıyormuyuz yok sa
SET TRANSACTION AHMET demek yeterli oluyormu..
my_sp DBWorkBench YAPIYORUM ;
Kod: Tümünü seç
Begin
SET TRANSACTION T1
INSERT INTO PERSONEL(PSICIL,P_AD,PSOY,PISEGIR) VALUES(:PPS,:PPA,:PPSY,:PPI);
COMMIT T1
End
Kod: Tümünü seç
EXECUTE PROCEDURE MY_SP ......( PARAMETRELER) ;
teşekkürler..
ßurak
A.S.
Pardon sorun nerede ben anlayamadım? Dediklerin doğru ve görünen o ki, senin SP'deki transaction'nın da commit etmesi gerekir.
Ama DBWorkbench'de (SQL Editöründe) bir iş yaptığında en sonunda commit etmen gerekir. Zira işleme başlarken o da bir Transaction Başlatıyor, içi içe transaction'lar varken içerdeki transactionı commit etmen demek bilgilerin commit edildi anlamına gelmez
(Burasını ayrıca reel olarak denemek lazım) En dıştaki transaction commit edildiğinde bilgi Tüm yapılan değişiklikler commit edilir.
İç transactionlar, genelde seri işlemler yapılırken ve eğer işlem sonucu yanlış oldu ama bir önceki noktaya yani, içerdeki işlemlerin bir kısmının yapılmış ama bazılarının yapılmamış olduğu ana dönmek için kullanılır.
En son olarakta ana Transaction'ı (En dıştakini) commit ederek, yapılanları DB'ye reel olarak aktarılmasını sağlayabilirsiniz.
Kolay Gelsin.
Pardon sorun nerede ben anlayamadım? Dediklerin doğru ve görünen o ki, senin SP'deki transaction'nın da commit etmesi gerekir.
Ama DBWorkbench'de (SQL Editöründe) bir iş yaptığında en sonunda commit etmen gerekir. Zira işleme başlarken o da bir Transaction Başlatıyor, içi içe transaction'lar varken içerdeki transactionı commit etmen demek bilgilerin commit edildi anlamına gelmez

İç transactionlar, genelde seri işlemler yapılırken ve eğer işlem sonucu yanlış oldu ama bir önceki noktaya yani, içerdeki işlemlerin bir kısmının yapılmış ama bazılarının yapılmamış olduğu ana dönmek için kullanılır.
En son olarakta ana Transaction'ı (En dıştakini) commit ederek, yapılanları DB'ye reel olarak aktarılmasını sağlayabilirsiniz.
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
hocam anladım ama ben
bu yazdığım SP hata veriyor ...
Hata Mesajı: Unknown Command 'SET'
Unknown Command 'TRANSACTION'
Unknown Command 'BRK'
Unknown Command 'COMMIT'
Unknown Command ' BRK'
hocam örnekteki gibi bir sp oluşturamadım...
cevap için teşekkürler... iyi çalışmalar...
Kod: Tümünü seç
Begin
SET TRANSACTION BRK
INSERT INTO PERSONEL(PSICIL,P_AD,PSOY,PISEGIR) VALUES(:PPS,:PPA,:PPSY,:PPI);
COMMIT BRK
End
Hata Mesajı: Unknown Command 'SET'
Unknown Command 'TRANSACTION'
Unknown Command 'BRK'
Unknown Command 'COMMIT'
Unknown Command ' BRK'
hocam örnekteki gibi bir sp oluşturamadım...
cevap için teşekkürler... iyi çalışmalar...
merhaba,
SP nizin tamamı buysa gayet tabiki hatalı bir SP
bir SP CREATE PROCEDURE SP_ADI.... şeklinde başlar
Başarılar
Örnek;
SP nizin tamamı buysa gayet tabiki hatalı bir SP
bir SP CREATE PROCEDURE SP_ADI.... şeklinde başlar
Başarılar
Örnek;
Kod: Tümünü seç
CREATE PROCEDURE PROC_KIMLIKAUTOINC
RETURNS (
NUM INTEGER)
AS
BEGIN
NUM = GEN_ID(KIMLIK_GEN,1);
END
// makalelerden alıntıdır.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Hacam ben sadece DBWorbench teki SP editorunde geliştiriyorum onun için o benim için DDL ini kendi oluşturuyor yok sa benim DDL şöyle;
ama ben hala şu
SET TRANSACTION BRK
ıvır zıvır
.......
COMMIT BRK
yapamadım
teşekkürler...
Kod: Tümünü seç
SET TERM ^^ ;
CREATE PROCEDURE SP_KAYIT (
PPS Integer,
PPA VarChar(20),
PPSY VarChar(20),
PPI Date)
AS
Begin
SET TRANSACTION BRK
INSERT INTO PERSONEL(PSICIL,P_AD,PSOY,PISEGIR) VALUES(:PPS,:PPA,:PPSY,:PPI);
COMMIT BRK
End
^^
SET TERM ; ^^
SET TRANSACTION BRK
ıvır zıvır
.......
COMMIT BRK
yapamadım
teşekkürler...
merhaba
SET TRANSACTION BRK nin sonuna ; koyarak denermisin, birde tabi COMMKIt in sonunada alakalı olabilir.
SET TRANSACTION BRK nin sonuna ; koyarak denermisin, birde tabi COMMKIt in sonunada alakalı olabilir.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
hocam gene aynı hata
Kod: Tümünü seç
Begin
SET TRANSACTION BRK;
INSERT INTO PERSONEL(PSICIL,P_AD,PSOY,PISEGIR) VALUES(:PPS,:PPA,:PPSY,:PPI);
COMMIT BRK;
End
Selamlar,
Database Version ve Adı nedir?
DBWorkbench'in Versionu Kaç?
Kolay Gelsin.
Database Version ve Adı nedir?
DBWorkbench'in Versionu Kaç?
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Ben SET Transaction ı ve COMMIT olayını hala daha yapamadım..
SP nin içinde ;
yukarıdaki gibi kullanıyorum ama hep set transaction tanımlama hatası veriyor acaba nasıl kulllanmam gerekiyor...
şimdiden teşekkürler;
SP nin içinde ;
Kod: Tümünü seç
SET TERM ^^ ;
CREATE PROCEDURE SP_KAYIT (
PPS Integer,
PPA VarChar(20),
PPSY VarChar(20),
PPI Date)
AS
Begin
set transaction a;
INSERT INTO PERSONEL(PSICIL,P_AD,PSOY,PISEGIR) VALUES(:PPS,:PPA,:PPSY,:PPI);
commit a;
End
^^
SET TERM ; ^^
şimdiden teşekkürler;
Şu transaction meselesine bi açıklık getirelim isterseniz... Transaction genel manada Oturum anlamına gelir... Windows Oturumu gibi düşünün... Bir işlemler yumağıdır.. Transactionu başlattığınız anda kayıt, ekleme, silme, düzeltme, görüntüleme gibi tüm işlemleri yapabilir durumdasınız anlamına gelir. Yani bir veritabanı oturumudur transaction... Database e Open mesajı gittiği anda transaction otomatik başlatılmıştır zaten.. Bütün işlemlerinizi tek transaction içerisinde yapabileceğiniz gibi bi kaç transactionla birlikte de çalışabilirsiniz.. Şimdi gelelim SP ler içindeki transaction meselesine...Sp hangi Transaction içinde kullanılacaksa o Transactionu SET etmeniz gerekiyor... Ancak tek transaction kullanıyorsanız ki genel de böyle kullanılır Transaction zaten aktif haldedir tekrar set etmeniz gerekmiyor... Hiç bir transaction komutu göndermeden SP yi tetiklediğinizde zaten aktif olan transaction üzerinde Procedure nüz çalışacaktır... Bence farklı transactionları çok elzem olmadıkça farklı databaseler kullandığınız zamanlarda çalıştırın. Tek database üzerinde farklı transactionlar mantıklı değil...
Sevgiler...
Sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz