Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Внизпроверка существования поля в таблицах Найти похожие ветки
← →
LDV (2010-06-18 12:08) [0]в цикле нужно открывать таблицы и проверять имеют ли они поле. Посоветуйте наиболее быстрый алгоритм. Пока что сделал так:
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;
← →
Ega23 © (2010-06-18 12:21) [1]
Select 1 from sysobjects where id=object_id(N"[ttt]") and OBJECTPROPERTY(id, N"IsProcedure")=1
← →
Ega23 © (2010-06-18 12:25) [2]А, стоп. Тебе поле.
Тогда так:select COLUMNPROPERTY(OBJECT_ID(N"[Имя_таблицы]"), "Имя_столбца", "precision")
← →
LDV (2010-06-18 12:28) [3]то что надо. спасибо. тему можно закрывать
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c