field yapısını tespit etmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
field yapısını tespit etmek
mrb .
for i:=0 to SimpleDataSet1.FieldCount-1 do begin
ListBox1.Items.Add(SimpleDataSet1.Fields.Fields.FieldName);
end;
komutu ile field isimlerini listbox a alıyorum . bunlar beraber
eğer o field yapısı CHAR(30) ise onuda görmek istiyorum . data yapısın gösteren sistemi yapamadım yardımcı olabilirseniz sevinirim. iyi çalışmalar.
for i:=0 to SimpleDataSet1.FieldCount-1 do begin
ListBox1.Items.Add(SimpleDataSet1.Fields.Fields.FieldName);
end;
komutu ile field isimlerini listbox a alıyorum . bunlar beraber
eğer o field yapısı CHAR(30) ise onuda görmek istiyorum . data yapısın gösteren sistemi yapamadım yardımcı olabilirseniz sevinirim. iyi çalışmalar.
Kod: Tümünü seç
Var
x : TFieldType;
begin
x := Table1.FieldDefs[0].DataType;
end;
Help ten TFieldType diye bakabilirsin.
slm
fakat bunu string bir değişkene aktaramıyorum. nasıl string olarak yazabilirim ? tşk.
Adı bilinen bir alanın tipini bulmak için aşağıdaki fonksiyon kullanılabilir.
Function TypeField(DatabaseName, TableName, FieldName: String): String;
Var
Table : TTable;
FieldIndex : Integer;
FieldType : TFieldType;
Begin
Result := '';
If Not IsTable(DatabaseName, TableName) Then Exit;
If Not IsField(DatabaseName, TableName, FieldName) Then Exit;
Table := TTable.Create(nil);
Try
Try
Table.Active := False;
Table.DatabaseName := DatabaseName;
Table.TableName := TableName;
Table.Active := True;
FieldIndex :=
Table.FieldDefs.IndexOf(FieldName);
FieldType :=
Table.FieldDefs[FieldIndex].DataType;
If FieldType=ftUnknown Then Result := 'Unknown';
If FieldType=ftString Then Result := 'String';
If FieldType=ftSmallInt Then Result := 'SmallInt';
If FieldType=ftInteger Then Result := 'Integer';
If FieldType=ftWord Then Result := 'Word';
If FieldType=ftBoolean Then Result := 'Boolean';
If FieldType=ftFloat Then Result := 'Float';
If FieldType=ftCurrency Then Result := 'Currency';
If FieldType=ftBCD Then Result := 'BCD';
If FieldType=ftDate Then Result := 'Date';
If FieldType=ftTime Then Result := 'Time';
If FieldType=ftDateTime Then Result := 'DateTime';
If FieldType=ftBytes Then Result := 'Bytes';
If FieldType=ftVarBytes Then Result := 'VarBytes';
If FieldType=ftBlob Then Result := 'Blob';
If FieldType=ftMemo Then Result := 'Memo';
If FieldType=ftGraphic Then Result := 'Graphic';
{$IFDEF WIN32}
If FieldType=ftAutoInc Then Result := 'AutoInc';
If FieldType=ftFmtMemo Then Result := 'FmtMemo';
If FieldType=ftParadoxOle Then Result := 'ParadoxOle';
If FieldType=ftDBaseOle Then Result := 'DBaseOle';
If FieldType=ftTypedBinary Then Result := 'TypedBinary';
{$ENDIF}
Except
End;
Finally
Table.Free;
End;
End;
Function TypeField(DatabaseName, TableName, FieldName: String): String;
Var
Table : TTable;
FieldIndex : Integer;
FieldType : TFieldType;
Begin
Result := '';
If Not IsTable(DatabaseName, TableName) Then Exit;
If Not IsField(DatabaseName, TableName, FieldName) Then Exit;
Table := TTable.Create(nil);
Try
Try
Table.Active := False;
Table.DatabaseName := DatabaseName;
Table.TableName := TableName;
Table.Active := True;
FieldIndex :=
Table.FieldDefs.IndexOf(FieldName);
FieldType :=
Table.FieldDefs[FieldIndex].DataType;
If FieldType=ftUnknown Then Result := 'Unknown';
If FieldType=ftString Then Result := 'String';
If FieldType=ftSmallInt Then Result := 'SmallInt';
If FieldType=ftInteger Then Result := 'Integer';
If FieldType=ftWord Then Result := 'Word';
If FieldType=ftBoolean Then Result := 'Boolean';
If FieldType=ftFloat Then Result := 'Float';
If FieldType=ftCurrency Then Result := 'Currency';
If FieldType=ftBCD Then Result := 'BCD';
If FieldType=ftDate Then Result := 'Date';
If FieldType=ftTime Then Result := 'Time';
If FieldType=ftDateTime Then Result := 'DateTime';
If FieldType=ftBytes Then Result := 'Bytes';
If FieldType=ftVarBytes Then Result := 'VarBytes';
If FieldType=ftBlob Then Result := 'Blob';
If FieldType=ftMemo Then Result := 'Memo';
If FieldType=ftGraphic Then Result := 'Graphic';
{$IFDEF WIN32}
If FieldType=ftAutoInc Then Result := 'AutoInc';
If FieldType=ftFmtMemo Then Result := 'FmtMemo';
If FieldType=ftParadoxOle Then Result := 'ParadoxOle';
If FieldType=ftDBaseOle Then Result := 'DBaseOle';
If FieldType=ftTypedBinary Then Result := 'TypedBinary';
{$ENDIF}
Except
End;
Finally
Table.Free;
End;
End;
merhaba ,
mesela MySQL gibi bir veritabanında bir tablonun tüm filedlerini indexlerine kadar öğrenmek için,
indexler için
bu bir veri kümesi olarak sonucu döndürür.
kolay gelsin.
mesela MySQL gibi bir veritabanında bir tablonun tüm filedlerini indexlerine kadar öğrenmek için,
Kod: Tümünü seç
SHOW FIELDS FROM TABLO_ADI
Kod: Tümünü seç
SHOW KEYS FROM TABLO_ADI
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
tşk
ama tam olarak ifade edemedim. sonuçta table ın karakter yapısına kadar nasıl olduğunu yazmak istiyorum.
örneğin
CODE VARCHAR(30) CHARACTER SET WIN1254
yani bir table ın yapısını yazdırmak istediğim .
ibconsole dan interbase table yapısına baktığımızda
properties ekranında
Name Type Character Set Collation Default Value Allow Nulls
şeklinde gösteriyor ve bende aynı bu şekilde ekrana basmak istiyorum ilgili table ın içeriğini
örneğin
CODE VARCHAR(30) CHARACTER SET WIN1254
yani bir table ın yapısını yazdırmak istediğim .
ibconsole dan interbase table yapısına baktığımızda
properties ekranında
Name Type Character Set Collation Default Value Allow Nulls
şeklinde gösteriyor ve bende aynı bu şekilde ekrana basmak istiyorum ilgili table ın içeriğini
sayın MakPRO
şu sıralar MySQL kullanıyorum emin olmamakla birlikte bu komut setlerinin firebird tarafındanda desteklendiğini zannediyorum mesela
şeklide bir ifade bize iki alanlı bir kayt seti döndürüyor ve bunlardan iki numaralı (1 indisli) alan belirttiğimiz tablonun tam olarak tüm yapısıyla indexler dahil oluşturmak için gerekli kodunu veriyor. bence bunları bir dene.
örneğin
şeklinde bir ifade bana ;
şeklinde değere sahiptek satırlı bir sonuç kümesi döndürüyor.
kolay gelsin.
şu sıralar MySQL kullanıyorum emin olmamakla birlikte bu komut setlerinin firebird tarafındanda desteklendiğini zannediyorum mesela
Kod: Tümünü seç
SHOW CREATE TABLE TABLO_ADI
örneğin
Kod: Tümünü seç
SHOW CREATE TABLE EVRAK
Kod: Tümünü seç
CREATE TABLE `evrak` (
`id` double NOT NULL auto_increment,
`numara` double default NULL,
`yer` tinyint(3) unsigned default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) TYPE=InnoDB
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
:)
üstadım bunları konsoldan yapınca döndürüyor tahminim. ben dbexpres ve clientdataset kullanıyorum. ve bu bilgileri delphiden almak istiyorum. sql textine bu komutları yazdığım zaman dönen değer nereye atanacak ?
delphi içinde listbox a nasıl aktarabilirim örneğin
delphi içinde listbox a nasıl aktarabilirim örneğin

Sayın MakPRO
bir önceki mesajımda belirttiğim gibi bu sorguyu sen IBQuery ile gönder sonuç iki fieldli bir tablo gibi dönüyor birisi table diğeri createtable adında iki alan sen yani sen şöyle bir şey dersen;
bu şekilde almış olursun.
kolay gelsin.
bir önceki mesajımda belirttiğim gibi bu sorguyu sen IBQuery ile gönder sonuç iki fieldli bir tablo gibi dönüyor birisi table diğeri createtable adında iki alan sen yani sen şöyle bir şey dersen;
Kod: Tümünü seç
memo1.text:=IbQuery1.Fields[1].asstring;
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
:)
ben dbexpress kullanıyorum. dediğin komutu denedim hata veriyor sql i çalıştırınca. fahri arkadaşımızın dediği gibi bir fonksiyon yazmak lazım. araştırdım biraz.
aşağıdaki linkler arkadaşlara ilham verir bde tabanlı ama faydalı bi link
http://bdn.borland.com/article/0,1410,20868,00.html
cevap yazan tüm arkadaşlara tşk ederim .
iyi çalışmalar
aşağıdaki linkler arkadaşlara ilham verir bde tabanlı ama faydalı bi link
http://bdn.borland.com/article/0,1410,20868,00.html
cevap yazan tüm arkadaşlara tşk ederim .
iyi çalışmalar