Program Tutarsız Çalışmakta

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

Program Tutarsız Çalışmakta

Mesaj gönderen ufb1453 »

Derlediğim projede,projeyi hazırladığım makinada oluşturduğum trigger çalışıyorken, diğer makinalarda çalışmıyor, programda fatura kaydı yapıldığında triggerde garanti tablosuna fatura tarihinin yıl alanına +2 yapılarak garanti sonu alanına eklenmektedir.

sql kodu;

Kod: Tümünü seç

create trigger [dbo].[garanti_sonu_aktar] 
on [dbo].[Fatura]

after insert
as 
declare @id int,
--@tarih nvarchar(10),
@i datetime
begin
select @i = dateadd(year,2,Fatura_Tarihi) from inserted
select @id = FaturaID  from inserted
insert into [dbo].[Garanti] values (@i,@id)
end
Ayrıca ana açılış ekranında trigger sonucu olarak değerler gelmesi gerekirken gelmiyor,

Kod: Tümünü seç

SELECT TOP (100) PERCENT dbo.Fatura.Fatura_Tarihi AS [Ftr. Tarihi], dbo.Malzeme.Seri_No AS [S.No], dbo.Fatura.Fatura_No AS [Ftr.No], dbo.Marka.Marka, dbo.Model.Model, dbo.Firma.Firma, 
                  dbo.Garanti.Garanti_Sonu AS [Garanti Sonu]
FROM     dbo.Firma INNER JOIN
                  dbo.Malzeme ON dbo.Firma.FirmaID = dbo.Malzeme.FirmaID INNER JOIN
                  dbo.Fatura ON dbo.Malzeme.FaturaID = dbo.Fatura.FaturaID INNER JOIN
                  dbo.Model ON dbo.Malzeme.ModelID = dbo.Model.ModelID INNER JOIN
                  dbo.Marka ON dbo.Malzeme.MarkaID = dbo.Marka.MarkaID INNER JOIN
                  dbo.Garanti ON dbo.Garanti.FaturaID = dbo.Fatura.FaturaID
WHERE  (0 <=
                      (SELECT DATEDIFF(day, GETDATE(), dbo.Garanti.Garanti_Sonu) AS Expr1))
ORDER BY [Ftr. Tarihi]
delphi kodu;

Kod: Tümünü seç

procedure TForm3.FormActivate(Sender: TObject);
var
 RowCount,rc,i1,j2,K1,L2: Integer;
begin

  adoconnection1.Connected:=True;
  adoquery1.Active:=true;
  adoquery2.Active:=true;
  dbgrid1.Refresh;
  RowCount := TmyDBGrid(DBGrid1).VisibleRowCount;
  RC := TmyDBGrid(DBGrid2).VisibleRowCount;
  i1 := (RowCount);
  j2:= (RC);
  K1:=adoquery1.RecordCount;
  l2:=adoquery2.RecordCount;
  IF (i1<>k1) OR (j2<>L2) then
   begin
    adoquery1.Active:=false;
    adoquery1.Active:=true;
    adoquery2.Active:=false;
    adoquery2.Active:=true;
  end;
end;
sizce neden tutarsız çalışmaktadır.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Program Tutarsız Çalışmakta

Mesaj gönderen csunguray »

Hangi veritabanı sunucusunu kullanıyorsunuz? (MS-SQL Server, Firebird vs.) İki makinedeki sürüm aynı mı?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

Re: Program Tutarsız Çalışmakta

Mesaj gönderen ufb1453 »

MSSQL Server, derlediğim alan 2014 iş yerindeki 2008 ancak 2008 uyumlu olarak script aldım sorunsuz kuruldu 2008'e.
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

Re: Program Tutarsız Çalışmakta

Mesaj gönderen ufb1453 »

sorunum çözüldü, server 2008 ile kendi makinem arasındaki tarih saat ayar farklılıktan dolayı hatalı çalışmaktaymış, ilginiz için ayrıca teşekkürler
Cevapla