![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проверка существования поля в таблицах
LDV © (2010-06-18 12:08:00)в цикле нужно открывать таблицы и проверять имеют ли они поле. Посоветуйте наиболее быстрый алгоритм. Пока что сделал так:
procedure chk_fld(const fld_name: string; tbl_ID: Integer;
out fld: TField);
const
TBL_NAME_GROUP = 'group_%d';
var
cmp_tbl: TDBISAMTable;
tbl_name: string;
begin
tbl_name := Format(TBL_NAME_GROUP, [tbl_ID]);
cmp_tbl := TDBISAMTable.Create(nil);
try
cmp_tbl.DatabaseName := DB_NAME;
cmp_tbl.SessionName := SESSION_NAME;
cmp_tbl.TableName := tbl_name;
cmp_tbl.Open;
fld := cmp_tbl.FindField(fld_name);
finally
cmp_tbl.Free;
end;
end;
procedure Tfrm_Test.Button1Click(Sender: TObject);
var
All, I: Integer;
begin
for I := 0 to All - 1 do
begin
{ ... }
if tbl_ID_exists(tbl_ID) then
begin
chk_fld(fld_name, tbl_ID, fld);
if fld <> nil then
{ ... }
else
{ ... }
end;
end;
end;
LDV (2010-06-18 12:28:00) [1]то что надо. спасибо. тему можно закрывать
Ega23 (2010-06-18 12:25:00) [2]А, стоп. Тебе поле.
Тогда так:
select COLUMNPROPERTY(OBJECT_ID(N'[Имя_таблицы]'), 'Имя_столбца', 'precision')
Ega23 (2010-06-18 12:21:00) [3]
Select 1 from sysobjects where id=object_id(N'[ttt]') and OBJECTPROPERTY(id, N'IsProcedure')=1