Форум: "Базы";
Текущий архив: 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