ADO, ADOX, OLEDB, SQL veri tipleri..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

ADO, ADOX, OLEDB, SQL veri tipleri..

Mesaj gönderen oklawa »

Veri tabanı konusunda oldukça amatörüm.
Şuan üzerinde uğraştığım uygulama, veri tabanını ve tabloları kendisi yaratacak ve kullanacak.
Yani sadece exe'yi kopyalayıp çalıştırmak bunlar için yeterli olacak.

Başlangıç noktamsa about.delphi.com'daki şu yazı.

Kod: Tümünü seç

procedure TForm1.btnNewDatabaseClick(Sender: TObject);
var
 DataSource : string;
 dbName     : string;
begin
 dbName:='c:\aboutdelphi.mdb';

 DataSource :=
    'Provider=Microsoft.Jet.OLEDB.4.0' +
    ';Data Source=' + dbName +
    ';Jet OLEDB:Engine Type=4';

  ADOXCatalog1.Create1(DataSource);
end;
Bu şekilde veritabanını oluşturup,

Kod: Tümünü seç

 cs:='CREATE TABLE Authors (' +
       'authorname TEXT(50),' +
       'email TEXT(50),' +
       'web TEXT(50))';
 ADOCommand1.CommandText := cs;
 ADOCommand1.Execute;
Bu şekilde de tabloları oluşturuyorum.

Buraya kadar çok basit zaten, en azından bir örnek var.

Örneğin; boolean tipi veri tipi tanımlamasında;
..
'aktifmi LOGICAL,' +
..

Byte için 'BYTE', Memo içinse 'MEMO' kullanıyorum.

Ama yukarıdaki şekilde bir tablo oluşturmak için kullanabileceğim veri tiplerini tam olarak açıklayan bir bilgiye ulaşamadım.
ADO, ADOX, OLEDB, SQL için araştırma yaptım ama ulaştığım bilgiler hem birbirinden farklı hemde ben kıymetlendiremiyorum.

Boolean için LOGICAL gerektiğini anlamak bir hayli zor oldu :)
Mesela LongWord bir değeri saklamak için hangi veri tipini kullanmalıyım?
Bunu bilemediğimden hep 'FLOAT' kullanıyorum.

Bu konuda bana referans gösterebilirseniz çok minnettar kalırım.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Mesaj gönderen csunguray »

Kullanabileceğiniz seçenekler kullandığınız veritabanına göre değişir. Veritabanlarının çoğu bu konuda ISO kurallarına uyumlu veritiplerini destekler. Access in ISO'ya ne kadar uyumlu olduğu tartışılır. http://www.techonthenet.com/sql/datatypes.php adresinde hemen tüm veritabanı sunucuları tarafından kabul edilecek veri tipleri var.
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/)
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

Teşekkürler.

Bu tip sayfaları bende inceledim ve yazdığınızı da anlıyorum, 'hemen tüm veritabanı sunucuları tarafından kabul edilecek veri tipleri' ile açıklamışsınız.

Veridiğiniz linkte benim kullandığım veri tiplerinden; BYTE, DATETIME, LOGICAL ve TEXT yok. Denediğimde gördüm ki, DATETIME yerine TIMESTAMP kullanabilirim ama NUMERIC(6,2) için bu sitede geçmesine rağmen ben 'Invalid field data type' hatası alıyorum.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Mesaj gönderen CiTiZEN »

Bi Yerde Görmüştüm Ve Faydalı Olacagını Düşündüm (MS Access için):

Kod: Tümünü seç

VeriTabanı Oluşturacak Kod::


procedure TForm1.Button1Click(Sender: TObject);
var
veritabani , veritabaniyolu : String;
Begin
Veritabaniyolu := Edit1.Text;
veritabani := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source =' + veritabaniyolu + ';Jet OLEDB:Engine Type=5';
AdoCommand1.ConnectionString := veritabani;
CatalogDt1.Create1(Veritabani);
End;

Tablo Oluşturacak Kod::

procedure TForm1.Button2Click(Sender: TObject);
Var
Tabloadi : String;
Begin
Tabloadi := 'Musteri';
AdoCommand1.CommandText := 'CREATE TABLE '+ tabloadi +' (MusteriNo Integer , MusteriAdi TEXT(10) )';
AdoCommand1.Execute;
End;

Umarım Faydalı Olmuşumdur Kolay Gelsin.
[/code]
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

Evet.

Bende tabloyu bu şekilde yaratıyorum zaten.
Halen desteklenen veri tiplerinin (BYTE, DATETIME, FLOAT vs.) bir listesini bulamadım..

Teşekkürler..
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

Teşekkürler..
Çok işime yaradı.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Mesaj gönderen CiTiZEN »

ewet faydalı bir kaynak saolun.
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Mesaj gönderen F.Atagun »

Cevapla