Главная страница
    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-1182770012
DrAndrew
2007-06-25 15:13
2007.07.22
Как записать значение языка в ini файл при инсталляции Inno Setup


15-1182836940
Kolan
2007-06-26 09:49
2007.07.22
Локализация встроенных констант


15-1182519740
Petr V.Abramov
2007-06-22 17:42
2007.07.22
Посоветйте книжку по Access для чайников


2-1183047527
Nikfel
2007-06-28 20:18
2007.07.22
Как рисовать без потерь bitmap на canvas.


2-1183203762
Qzzma
2007-06-30 15:42
2007.07.22
TTreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский