Alter table nasıl oluşturuluyor
Alter table nasıl oluşturuluyor
slmlar
1.Firebird veritabı kullanıyorum veri tabanına kod ile alan eklemek istiyorum ki bu Alter table işlemi ile oluyormuş forumda bulduğum bilgilerle derleyemedim bu işi.Veritabanımda TBL_FIRMALAR adında Tablom var (C:\StokTakip\Data\Stok.fdb) bu tabloya örnegin Not diye bir alan eklemek istiyorum kodla nasıl yapabilirim örnek verirseniz çok iyi olur.
2.Yine kodla TBL_FIRMALAR tablomdaki alan adlarını denetleyerek örneğin adı,soyadı... gibi olan bölümleri var olup olmadığına bakmak bu tabloda Not diye bir alan olmadığını görmesi durumunda bu alanın eklemesi nasıl sağlanır. tabloyu açılışta kontrol ettirerek ekleme yapmatırmak istiyorum.(Fieldlerin FK,PK larınında belirlenmesi)
3.Genarators isimlerin yine 2. sorudaki gibi denetleyip olmayan Genarators ları ekleme
konusunda yardımcı olacak arkadaş varsa çok memnun olacağım.Teşekkürler
1.Firebird veritabı kullanıyorum veri tabanına kod ile alan eklemek istiyorum ki bu Alter table işlemi ile oluyormuş forumda bulduğum bilgilerle derleyemedim bu işi.Veritabanımda TBL_FIRMALAR adında Tablom var (C:\StokTakip\Data\Stok.fdb) bu tabloya örnegin Not diye bir alan eklemek istiyorum kodla nasıl yapabilirim örnek verirseniz çok iyi olur.
2.Yine kodla TBL_FIRMALAR tablomdaki alan adlarını denetleyerek örneğin adı,soyadı... gibi olan bölümleri var olup olmadığına bakmak bu tabloda Not diye bir alan olmadığını görmesi durumunda bu alanın eklemesi nasıl sağlanır. tabloyu açılışta kontrol ettirerek ekleme yapmatırmak istiyorum.(Fieldlerin FK,PK larınında belirlenmesi)
3.Genarators isimlerin yine 2. sorudaki gibi denetleyip olmayan Genarators ları ekleme
konusunda yardımcı olacak arkadaş varsa çok memnun olacağım.Teşekkürler
slangeri hocam
not( Field) alanını ben örnek olarak verdim alter table,table diye forumda aradım ama sql kodlarından bir şey anlamadım yapmak istediğim form açılışında tabloları be içindeki alanları kontrol ederek yoksa tablo,alan ve Genarators eklemesi yapmak istiyorum.Tabloya ekleme denemdim çünkü kodlar nereye nasıl yazılıyor bir örnek verebilirseniz sevinrim.İlginiz için teşekkürler.
not( Field) alanını ben örnek olarak verdim alter table,table diye forumda aradım ama sql kodlarından bir şey anlamadım yapmak istediğim form açılışında tabloları be içindeki alanları kontrol ederek yoksa tablo,alan ve Genarators eklemesi yapmak istiyorum.Tabloya ekleme denemdim çünkü kodlar nereye nasıl yazılıyor bir örnek verebilirseniz sevinrim.İlginiz için teşekkürler.
s.a.
diğer sql kodlarını nereye yazıyorsan onlarıda oraya yazacaksın.
alan varmı yokmu onun kontrolunude yapabilirsin. (fields i döngüye sokarak alan isimlerini kontrol edebilirsin. Fielddeflist ide kullanabilirsin).
generator varmı yokmu bakmak içinse
sql i ile bulabilirsin. count=1 ise generator var 0 ise yok. aksi durumda zaten bi hata vardır
kolay geslin.
diğer sql kodlarını nereye yazıyorsan onlarıda oraya yazacaksın.
alan varmı yokmu onun kontrolunude yapabilirsin. (fields i döngüye sokarak alan isimlerini kontrol edebilirsin. Fielddeflist ide kullanabilirsin).
generator varmı yokmu bakmak içinse
Kod: Tümünü seç
select count(*) from rdb$generator where rdb$generator_name='gen_bilmemne_id'

kolay geslin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Merhaba,
şeklinde yeni bir alan ekleyebilirsiniz.
Kolay gelsin..
Kod: Tümünü seç
ALTER TABLE TABLE_ADI ADD ALAN_ADI VARCHAR(20);
Kolay gelsin..
Kod: Tümünü seç
If DataModule1.IBDataSet_STOK.FieldList.IndexOf('ALANADI') < 0 then
begin
DataModule1.IBQuery1.Close;
DataModule1.IBQuery1.SQL.Clear;
DataModule1.IBQuery1.SQL.Add('ALTER TABLE TBL_STOK ADD ALANADI VARCHAR(20)') ;
DataModule1.IBQuery1.Open;
DataModule1.IBQuery1.ExecSQL;
end
else
SHOWMESSAGE('ZATEN VAR');
end;
Kod: Tümünü seç
UNSECCESSFUL METADATA UPDATE
store rdb$relatıon_filelds
attep to store duplicate value (visible to active transsactions) in unique index "rdb$ındex_15"
mrmarman hocamın cevaplarına baktım
viewtopic.php?t=21033&highlight=alter+table
viewtopic.php?t=20993&highlight=alter+table
linklerini inceledim ama malasef

s.a.
eğer IBDataSet_STOK un fields editöründe stok diye bir alan eklmemişsen ordaki değer her zaman 0 döner.
fields editöründe hiç alan olmayan bir query kullan.
onun sql ine yaz ve fielddeflist i kullan.
exec yapacağın zamanda önce open sonra exec deme.
select yapıyorsan open insert,update, delete, alter vs. yapıyorsan exec...
verdiği hata mesajıda zaten alanı eklmişsin önceden...
tekrar eklemeye çalışıyor..
kolay gelsin.
eğer IBDataSet_STOK un fields editöründe stok diye bir alan eklmemişsen ordaki değer her zaman 0 döner.
fields editöründe hiç alan olmayan bir query kullan.
onun sql ine
Kod: Tümünü seç
select * from stok
exec yapacağın zamanda önce open sonra exec deme.
select yapıyorsan open insert,update, delete, alter vs. yapıyorsan exec...
verdiği hata mesajıda zaten alanı eklmişsin önceden...
tekrar eklemeye çalışıyor..
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Hocam doğru söylüyorsunuz dediğinizi yaptım burada bir ikisoru daha olacak
1.Alanı FOREIGN yapmak istediğimizde aşağıdaki denemeyi yaptım ama olmadı örnek olarak veriyorum
FOREIGN tanımı sql nasıl yazılıyor.(Master a detay tablo bağlama için)
2.If DataModule1.IBDataSet_STOK.fielddeflist.IndexOf('ALANADI') < 0 then sorgusu yerine STOK Tablosunda tüm alanaları tek tek nasıl denetletebiliriz yani STOK tablosunda ALAN1,ALAN2,ALAN3... varmı diye kontrol ettirip ALAN yoksa ekleme yaptıracağım bu öneriyi zaten bana yazmışsınız ama döngüsü nasıl olacak bilemedim örnek verirseniz sevinirm
3.Generator ekleme nasıl alacak alter generator mü deniliyor
1.Alanı FOREIGN yapmak istediğimizde aşağıdaki denemeyi yaptım ama olmadı örnek olarak veriyorum
Kod: Tümünü seç
IBQuery1.SQL.Add('FOREIGN KEY(KAYIT), ConstraintName(FK_KAYITT),On Field(KATEGORIID),FKTable(TBL_KATEGORI),FKField(KATEGORIID),UpdateRule(CASCADE),DeleteRule(CASCADE),IndexName(FK_KAYITT),IndexSorting(Ascending) ');
FOREIGN tanımı sql nasıl yazılıyor.(Master a detay tablo bağlama için)
2.If DataModule1.IBDataSet_STOK.fielddeflist.IndexOf('ALANADI') < 0 then sorgusu yerine STOK Tablosunda tüm alanaları tek tek nasıl denetletebiliriz yani STOK tablosunda ALAN1,ALAN2,ALAN3... varmı diye kontrol ettirip ALAN yoksa ekleme yaptıracağım bu öneriyi zaten bana yazmışsınız ama döngüsü nasıl olacak bilemedim örnek verirseniz sevinirm

3.Generator ekleme nasıl alacak alter generator mü deniliyor
