Merhabalar;
Üzerinde çalıştığım bir projede, kullanıcı varsayılan database de tablo adını, alanları(sayısı ve özellikleri kullanıcıya özel) kendisi oluşturacak. örneğin bir kullanıcı ahmet adında bir tablo ve 4 tane alan adı ile bir tablo oluşturabilirken diğer bir kullanıcı daha farklı bir tablo oluşturabilir. Ben tabloyu oluşturabiliyorum. bi edit koydum oraya tablonun adını yazıyor ve tablo oluşuyor. Sorun şu; alan adlarını ve veri türlerini de dışarıdan paremetreyle gönderemiyorum. Örnek;
procedure TForm1.Button1Click(Sender: TObject);
var
tabloadi:string;
begin
tabloadi:=tbadi.Text;
table1.DatabaseName:='c:\data';
table1.TableType:=ttparadox;
table1.TableName:= tabloadi;
table1.FieldDefs.Add('Sicilno', ftinteger, 0, true);
table1.CreateTable;
showmessage('Tablo Oluşturuldu')
end;
aynı tabloya ikinci bir alan eklemek için ise şu kodu yazdım.
table1.FieldDefs.Add(alan.Text,tip.text ,uzunluk.text, gerekli.Text);
ve sorun burda başladı. nasıl bir yol izlemem lazım. yardımlarınız için teşekkür ederim.
Kod ile Tablo Oluşturma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
bir projede aradox kullanmayın. bu forumda kimse önermez.
bunun için en uygun önerim isi ttable degil tquery ve alter table ile yapmanızdır.
bunun için en uygun önerim isi ttable degil tquery ve alter table ile yapmanızdır.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
biraz ugraşarak aşağıdaki kodla olayın bir kısmını çözdüm. kodu çalıştırdıgımda hata mesajı veriyor ama yinede tabloya istediğim alanı ekliyor.
procedure TForm2.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('ALTER TABLE tablo1 ADD COLUMN ''+ edit1.Text +'' text(25)') ;
Query1. open;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('ALTER TABLE tablo1 ADD COLUMN ''+ edit1.Text +'' text(25)') ;
Query1. open;
end;
open değil. execsql deyin. anladığım kadarıyla verdiği mesaj etkilenen kayıt yo türü bir mesaj.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
unutmayınki foruma üye olmayan ama arama ile buraya gelenler var. o yüzden bir sorun çözüldüğünde; çalışan halinide buraya koyuyoruzki insanlar faydalansın.aydogan46 yazdı:sonunda halloldu. teşekkür ederim.
kanun değil tabii ama forum geleneği diyelim..
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
canın sağolsun kardeş. biz bu siteden 2002 den beri yararlanmaktayız. http://www.mussimsek.com halinden beri takipcisiyiz. dediğin e katılıyorum . sadece yukarıdaki kod d a
Query1. open; yerine query1.execsql; yazılacak.
Query1. open; yerine query1.execsql; yazılacak.