merhaba;
Kod: Tümünü seç
collate, uzunluğu, charset i ve diğer özelliklerine nasıl bakarız?
Forma 5 tane edit koy,Name'leri şöyle olsun;1 tane de buton koymayı unutma
TabloAdi.Text:=Tablo ismi
Fieldismi.Text:=İlgili tablo alanı
Uzunluk.Text :=Alanın uzunluğu
TIP.Text:=Field'in Alan Tipi;
charset.Text.=Charseti;
Butonun Click'ine;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var uzunluk_adi: string; charset_id: integer;
begin
with IBQuery1 do
begin
SQL.clear;
Sql.Add('select * from RDB$FIELDS,RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME=''' + TabloAdi.Text + ''' ');
Sql.Add('and RDB$FIELD_NAME=''' + Fieldismi.Text + ''' ');
Open;
//=================================================
uzunluk_adi := IBQuery1.FieldByName('RDB$FIELD_SOURCE').AsString;
//====================================================================================
SQL.Clear;
Sql.Add('select * from RDB$FIELDS WHERE RDB$FIELD_NAME=''' + uzunluk_adi + ''' ');
Open;
//===================================================================
// ShowMessage(IntToStr(IBQuery1.fieldByName('RDB$FIELD_TYPE').AsInteger));
case IBQuery1.FieldByName('RDB$FIELD_TYPE').AsInteger of
261: TIP.Text := 'BLOB';
14: TIP.Text := 'CHAR';
40: TIP.Text := 'CSTRING';
11: TIP.Text := 'D_FLOAT';
27: TIP.Text := 'DOUBLE';
10: TIP.Text := 'FLOAT';
16: TIP.Text := 'INT64';
8: TIP.Text := 'INTEGER';
9: TIP.Text := 'QUAD';
7: TIP.Text := 'SMALLINT';
12: TIP.Text := 'DATE';
13: TIP.Text := 'TIME';
35: TIP.Text := 'TIMESTAMP';
37: TIP.Text := 'VHARCHAR';
end;
//===============================================================================
uzunluk.Text := IntToStr(IBQuery1.FieldByName('RDB$CHARACTER_LENGTH').AsInteger);
charset_id := IBQuery1.FieldByName('RDB$CHARACTER_SET_ID').AsInteger;
//=====================================================================
SQL.clear;
Sql.Add('select * from RDB$CHARACTER_SETS WHERE RDB$CHARACTER_SET_ID=''' + IntToStr(charset_id) + ''' ');
open;
//=====================================================================
charset.Text := IBQuery1.FieldByName('RDB$CHARACTER_SET_NAME').AsString;
end;
end;
TabloAdi.Text:=Tablo ismi
Fieldismi.Text:=İlgili tablo alanı
Tablo ismi ile field ismini giriyorsunuz text'lere,büyük harflerle;
Yalnız sadece Numeric'leri bulamıyor.Fazla da üstelemedim
iyi günler...