program güncelleme ile ilgili bir yöntem ve sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
guney
Üye
Mesajlar: 88
Kayıt: 19 Ağu 2003 03:04
Konum: İstanbul

program güncelleme ile ilgili bir yöntem ve sorun

Mesaj gönderen guney »

ben programı güncellerken bir gdb dosyasına güncellemeleri sql cümlesi olarak yazıyor. sonra onları güncellenecek veritabanına başka bir exe yardımı ile ekliyorum.
güncelleme exe de giridde getiriyorum güncellenecek sql cümlelerini. sonra memo alandan query nın sql text ine aktarıp güncellemeyi yaptırıyorum. tabii 1 den var olan kayıt sayısına kadar bir döngü var.
aşağıdaki verdiğini söylediğim uyarılar benim döngümü kırıyor.

benim istediğim mesela var olan bir table yeniden oluşturmak istediğimde "bu tablo var" hatası ile benimı döngüm kırılmasın. varsa bir sornaki kayda gecip ordan devam etsin güncellmeye. benzer şekilde bir filed ekliyorsam onu hata mesajı gelmesin. sonraki kayda geçsin.

yardımcı olursanız sevinirim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
query yi exex ettiğiniz satırı try except arasına alırsanız verdiği hata kodunu işleyip ona göre işleme devam edebilirsiniz kanaatindeyim.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
guney
Üye
Mesajlar: 88
Kayıt: 19 Ağu 2003 03:04
Konum: İstanbul

Mesaj gönderen guney »

hocam bana kod ile örnek verirsen daha makbule gecer.

sorun hangi kodu nerde kullanmayı tam bilmediğimden kaynaklanıyor.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Merhaba;

Kod: Tümünü seç

try
  Sorgu.Lines:=DBMemo1.Lines;
  Sorgu.ExecSQL;
except
end;
şeklinde kullanırsan SQL hatalı olsa bile döngü kırılmaz ama benim başka bir önerim var. SQL kodunu tablo yoksa oluştur şekline çevirebilirsen daha sağlıklı olur. FireBird'de SQL nasıl olur bilmem ama SQL Server dan bir örnek.

Kod: Tümünü seç

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Servis]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE [dbo].[Servis] (
	[Tarih] [smalldatetime] NULL ,
	[Versiyon] [int] NULL ,
	[ServisTarihi] [smalldatetime] NULL 
) ON [PRIMARY]
Bu sql cümlesi SQL Server da tablo yoksa tabloyu oluşturur, varsa hiç bir işlem yapmaz. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla