ADOTable'daki FieldList'e göre Table oluşturma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

ADOTable'daki FieldList'e göre Table oluşturma

Mesaj gönderen csunguray »

Biliyorsunuz ADOTable'ın CreateTable metodu yok. Acaba FieldList'ten o tabloyu create edebilecek bir sql deyimi oluşturan hazır kod var mıdır? Veritabanı MS-SQL 2000.
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/)
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

AdoQuery nesnesini kullanarak SQL komutları yardımıyla tablo oluşturabilirsiniz.
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

Create table MSSQL diye aratin
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Mesaj gönderen csunguray »

AdoQuery nesnesini kullanarak SQL komutları yardımıyla tablo oluşturabilirsiniz.
Evet oluşturabilirim. Zaten sorum da bu. Bu SQL deyimini otomatik oluşturacak hazır kodunuz var mı? Olmazsa kendim yazacağım.
Create table MSSQL diye aratin
Bu kadar genel düzeydeki anahtar kelimelerle böyle bir sonuca ulaşabileceğimi sanmıyorum.
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/)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Otomatik bir yazılım mutlaka vardır ancak yapacağın işlem çok basit olduğundan zaman kaybından öte gitmeyecektir.

- Projelendirdiğim veritabanı bazlı yazılımlarda bir unit daima bulunur. Bu unit'in adını Structures.PAS olarak adlandırırım.

- Bu unit içerisinde veritabanı tablolarımın yapısal içeriğini her tablo için bağımsız olarak bulundururum. Lazım olduğunda buradan çağırırım.

- Her tablo için bunun gibi bir procedure bulundururum.

Kod: Tümünü seç

Procedure StrucOlustur_Tablo1(KomutListesi  : TStringList);
Const
  FieldTanimi     = '%s %s(%d),';
  FieldTanimiDate = '%s %s,';
begin
 { --- Table Structure --- }
  With KomutListesi do
  begin
    Clear;
    Add( 'CREATE TABLE Tablo1 (');
    Add( Format(FieldTanimiDate, ['S_KaySiraNo' ,'AutoIncrement',  0  ] ) );
    Add( Format(FieldTanimiDate, ['S_SerieId'   ,'Numeric',        0  ] ) );
    Add( Format(FieldTanimiDate, ['S_MovieId'   ,'Numeric',        0  ] ) );
    Add( Format(FieldTanimi,     ['S_Ses'       ,'Text',           3  ] ) );
    Add( Format(FieldTanimi,     ['S_EpNum'     ,'Text',           3  ] ) );
    Add( Format(FieldTanimi,     ['S_EpName'    ,'Text',         100  ] ) );
    KomutListesi[KomutListesi.Count-1] := Copy(KomutListesi[KomutListesi.Count-1], 1, Length(KomutListesi[KomutListesi.Count-1])-1); // Son Virgülü Attık
    Add( ')');
  end;
end;
- Şimdi bunları nasıl kullanıyorum. Tablo oluşturmak istediğimde aşağıdaki kurguyu barındırdığım procedure içerisinden çağırarak. KomutListesini dinamik verdiğinde her tablo için aynı aşağıdaki kurguyu çalıştırabilirsin. KomutListesi içinde ne varsa ( create, drop vs. ) execute edilecek ve hayata geçecektir.

Kod: Tümünü seç

Var
  AdoCommand    : TADOCommand;
  KomutListesi  : TStringList;
begin
  AdoCommand    := TADOCommand.Create(Self);
  AdoCommand.Connection := AdoConnection_seninki;
  KomutListesi := TStringList.Create;
    StrucOlustur_Tablo1( KomutListesi );
    ADOCommand.CommandText:=  KomutListesi.Text;
  KomutListesi.Free;
  ADOCommand.Prepared := true;
  ADOCommand.Execute;
  ADOCommand.Free;
end;
Resim
Resim ....Resim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

csunguray yazdı:
AdoQuery nesnesini kullanarak SQL komutları yardımıyla tablo oluşturabilirsiniz.
Evet oluşturabilirim. Zaten sorum da bu. Bu SQL deyimini otomatik oluşturacak hazır kodunuz var mı? Olmazsa kendim yazacağım.
Create table MSSQL diye aratin
Bu kadar genel düzeydeki anahtar kelimelerle böyle bir sonuca
ulaşabileceğimi sanmıyorum.
torryda table to sql gibi bir tool vardı. tabloları oluşturuan sql kodunu veriyordu. tip analizini kendi yaparak. bir vt için komple pascal unititni verebilenide vardı ama detaylı adını şimdi hatırlamıyorum
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
Cevapla