Netsis Alan Kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Netsis Alan Kontrol

Mesaj gönderen ozcank »

Arkadaşlar şu şekilde bir triger var ben burda şunu yapmak istedim, Kullanıcı Vergi No ve TC Kimlik No boş geçmeyecek Vergi No yazmamışsa TC Kimlik No boş geçmeyecek, Vergi No yazılmışsa TC Kimlik No boş geçebilecek. Yardımcı olabilecek misiniz?

Kod: Tümünü seç

CREATE TRIGGER [dbo].[BIOSOFT_CARI_KONTROL] 
ON [dbo].[TBLCASABIT,TBLCASABITEK] FOR INSERT AS
BEGIN
DECLARE @BioSoft_Kontrol VARCHAR(300)
IF(SELECT COUNT(*)
FROM INSERTED 
WHERE (VERGI_NUMARASI IS NULL OR VERGI_NUMARASI=''))>0
BEGIN
		SET @BioSoft_Kontrol = 'MSSQLVALIDATION'+'VERGI NO BOS GECILEMEZ !'
RAISERROR (@BioSoft_Kontrol, 16, 1)
ROLLBACK 
END 
IF(SELECT COUNT(*)
FROM INSERTED 
WHERE (VERGI_DAIRESI IS NULL OR VERGI_DAIRESI=''))>0
BEGIN
		SET @BioSoft_Kontrol = 'MSSQLVALIDATION'+'VERGI DAIRESI BOS GECILEMEZ !'
RAISERROR (@BioSoft_Kontrol, 16, 1)
ROLLBACK 
END 
IF(SELECT COUNT(*)
FROM INSERTED 
WHERE (TBLCASABITEK.TCKIMLIKNO IS NULL OR TBLCASABITEK.TCKIMLIKNO=''))>0
BEGIN
		SET @BioSoft_Kontrol = 'MSSQLVALIDATION'+'TC KIMLIK NO BOS GECILEMEZ !'
RAISERROR (@BioSoft_Kontrol, 16, 1)
END
END
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Netsis Alan Kontrol

Mesaj gönderen ozcank »

Arkadaşlar başka bir şekilde yapılabilir mi ? Vergi Dairesi , Vergi No ve TC Kimlik no boş geçirtmeyecem.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen mkysoft »

Bildiğim kadarıyla VBA desteği var, onunla yapıyorlar diye biliyorum.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Netsis Alan Kontrol

Mesaj gönderen ozcank »

mkysoft elinizde örnek var mı ? Gönderebilir misiniz?
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen mkysoft »

Daha önce hiç yapmadım, yapıldığını duydum danışmanlığını yapanlardan. Aşağıdaki adreste asri arkadaşımızın yaptığı bir araç var belki işinize yarar, bir inceleyin isterseniz.

http://asriakdeniz.com/netsis-vba-kosul ... -programi/
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen thelvaci »

Neden Visual Basic'e ihtiyacınız olması gerektiğini anlamlandıramadım. T-SQL ile rahatlıkla yapılabilir bu tarz bir şey. Öncelikle bir instead of trigger'ı yazmanızı tavsiye ederim. Bir nevi before insert trigger'ı. Bu trigger aslında tam da istediğiniz işleri yapabilmek adına düşünülmüştür. Insert isteği nereden gelirse gelsin(ister A programından, ister B programından, ister Enterprise Manager'dan) farketmez ve sizin yazdığınız kodlar öncelikle işletilir. Trigger içinde de ilgili alanların NULL olup olmadıklarını ihtiyacınıza göre kontrol edersiniz.

Hatalı giriş mevcut ise Raiserror/return ile işleme devam etmezsiniz. Bu sayede aslında ilgili tabloya hiç bir şekilde kayıt da girilmemiş olur. Instead of trigger'larının en dikkat edilesi durumu, bu trigger'ı kodladığınızda SQL Server'a şunu demiş oluyorsunuz: "Sen zahmet etme, insert işlemini ben yöneteceğim.!"

Dolayısı ile ilgili trigger içinde her türlü kontrolünüzü yaptıktan sonra insert into .... ile ilgili tabloya verileri de kayıt etmeyi unutmamanız gerekir.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Netsis Alan Kontrol

Mesaj gönderen ozcank »

thelvacı kardeşim bana bu konuda yardımcı olabilir misin peki ? Benim istediğim çok da detaylı bir triger değil sadece "vergi dairesi" "vergi no" ve "vergi no" yu boş girmemesini kontrol ettirecem.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen mkysoft »

@thelvaci konu netsis olduğu için kendi yapısı içinde çözüm bulunmasının daha iyi olacağını düşündüm. db seviyesinde yapılacak bir koruma uygulamada ne gibi hatalara neden olur bilemiyorum, netsis tecrübem bulunmuyor. DB'den dönen hata nedeniyle uygulama farklı hatalar verebilir. Eksik veriler ile kayıt sürecini tamamlayabilir.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen thelvaci »

@mkysoft arkadaşımız sorusunun içinde trigger kullandığı için ben de trigger istikametinde bir yanıt verdim. Paylaştığı trigger bir after insert trigger'ı olduğu için; tavsiye ettiğimiz instead of insert trigger'ı veritabanında hiç bir aksamaya neden olmaz. Çünkü kayıt fiziksel olarak veritabanına yazılmadan önce devreye girecek bu trigger ve kullanıcı bu trigger içinde ilgili tabloya insert into .... kodu yazmadığı müddetçe ilgili tabloya kayıt girilememiş olacak.

Yapılan kontrollerin aşılmasının ardından işletilecek olan insert into ... kodu, after insert trigger'ına dallanılmasına ve sistemin geri kalan işleyişi düzgün bir şekilde yürütmesine neden olacak.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Netsis Alan Kontrol

Mesaj gönderen ozcank »

thelvaci kardeşim tamda istediğimi izah ettin. Peki bana sadece böyle bir kontrol için kod anlamında yardımcı olabilir misin ?
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Netsis Alan Kontrol

Mesaj gönderen thelvaci »

ozcank yazdı:thelvaci kardeşim tamda istediğimi izah ettin. Peki bana sadece böyle bir kontrol için kod anlamında yardımcı olabilir misin ?
Üstad zaten yardımcı olamadık mı acaba ? Tek yapacağınız "SQL Server'da Instead of triggerları nasıl yazılır" konusunu araştırmak. Syntax'ı anladıktan sonra trigger'ın içine yazılacak mantığı kurmak da sizin için zaten kolay olacaktır diye düşünüyorum.
Cevapla