Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Вниз

Как узнать тип данных в таблице (ODBC) ?   Найти похожие ветки 

 
SkyN   (2007-04-19 17:14) [0]

Как узнать тип данных хранящихся в таблице?

К БД обращаюсь через ADO -> ODBC

Список таблиц и полей получаю через ADOConnection (GetTableNames, GetFieldNames), осталось узнать какой тип данных в каждом поле.


 
Desdechado ©   (2007-04-19 17:19) [1]

Родной или его дельфийский аналог?


 
SkyN   (2007-04-19 17:29) [2]

Нужно разделение
 Целочисленный
 Дробное число
 Строка
Если тип строка, то размер


 
Плохиш ©   (2007-04-19 17:33) [3]

FieldDefs


 
Desdechado ©   (2007-04-19 17:47) [4]

SELECT * FROM tbl WHERE 1=0


 
sniknik ©   (2007-04-19 17:57) [5]

ADOConnection.OpenSchema()


 
SkyN   (2007-04-20 17:13) [6]

То, что получилось:

uses
 ADODB;
procedure TForm1.Button1Click(Sender: TObject);
var
 adoconnection: Tadoconnection;
begin
 adoconnection := Tadoconnection.Create(Application);
 adoconnection.ConnectionString := "Provider=MSDASQL.1;Persist Security Info=False;Data Source="+BaseName;
 adoconnection.LoginPrompt := False;
 adoconnection.GetTableNames(ListBox1.Items);
 adoconnection.Free;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
 i: integer;
 adoconnection: tadoconnection;
 adodataset: tadodataset;
 S: String;
begin
 for i := 0 to ListBox1.Count-1 do
   if ListBox1.Selected[i] then begin
     ///////////////////
       adoconnection := Tadoconnection.Create(Application);
       adoconnection.ConnectionString := "Provider=MSDASQL.1;Persist Security Info=False;Data Source="+BaseName;
       adoconnection.LoginPrompt := False;
       adodataset := tadodataset.Create(Application);

       adoconnection.OpenSchema(siColumns,VarArrayOf([Null, Null, ListBox1.Items[i]]),EmptyParam,ADODataSet);
       ListBox2.Clear;
       While not ADODataSet.Eof do begin
         if not ADODataSet.FieldByName("CHARACTER_MAXIMUM_LENGTH").IsNull then S := " Текстовый "+ADODataSet.FieldByName("CHARACTER_MAXIMUM_LENGTH").AsString;
         if not (ADODataSet.FieldByName("NUMERIC_PRECISION").IsNull and ADODataSet.FieldByName("NUMERIC_SCALE").IsNull) then S := " Числовой ";
         ListBox2.Items.Add(ADODataSet.FieldByName("COLUMN_NAME").AsString+S);
         ADODataSet.Next;
       end;

       adodataset.Free;

       adoconnection.Free;
     ///////////////////
     Break;
   end;
end;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
15-1182442216
oxffff
2007-06-21 20:10
2007.07.22
Codegear Roadmap


15-1182306120
Slider007
2007-06-20 06:22
2007.07.22
С днем рождения ! 20 июня 2007 среда


6-1166559294
PHPDeveloper
2006-12-19 23:14
2007.07.22
аплоад файлов


15-1182701773
Kostafey
2007-06-24 20:16
2007.07.22
С днем рождения ! 24 июня


15-1182710878
FIL-23
2007-06-24 22:47
2007.07.22
сканер кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский