Адрес этой странички : http://doc-prg.narod.ru/art_00905/art_00905.htm
Дата обновления: 28.03.2009
© 28.03.2009 Сергей Попов
Delphi-5.
Базы Данных.
Некоторые простые, но
потенциально полезные функции
Uses
DB,
Dialogs,
dbtables,
Classes,
SysUTILS;
Type
TSetBytes = set of byte;
procedure TableMakePOST(Tbl :
TTable);
//Сохранить отредактированные данные в таблицу
begin
if Tbl.Active then begin //набор
данных открыт
TRY
if (Tbl.State<>dsBrowse) then begin
//проверка состояния набора
данных
Tbl.POST; //сохранить (отослать)
данные
end;
FINALLY
END;
end;
end;
procedure Query_Clear(Q :
TQuery);
//Освободить ресурсы, занятые TQuery
//Вспомогательная функция
begin
if Q<>NIL then begin
Q.Close;
Q.SQL.Clear;
Q.Free;
Q:=NIL;
end;
end;
Get_FieldValue_from_Table
//Получить значение заданного поля из заданной таблицы для заданного фильтра sFilter
Insert_Record_in_Table
//Вставить строку в таблицу Б.Д. (без MEMO-полей)
Delete_Records_from_Table
//Удалить строки из таблицы Б.Д. по фильтру
function Field_Exist(T : TDataSet; FieldName : string; YesUpCase : boolean = true) :
boolean;
//Проверить, существует ли поле FieldName в открытом наборе данных T
//YesUpCase - если true, то регистр имен полей (при
сравнении) не имеет значения
//Возвращаемое значение: true, если
тестируемое поле существует
Var
i : integer;
fn : string;
begin
Result:=false;
FieldName:=trim(FieldName);
if length(FieldName)>0 then begin
if T<>NIL then begin
if T.Active then begin
if YesUpCase then FieldName:=AnsiUpperCase(FieldName);
i:=-1;
while i<(T.Fields.Count-1) do
begin
i:=i+1;
fn:=trim(T.Fields[i].FieldName);
if YesUpCase then fn:=AnsiUpperCase(fn);
if fn = FieldName then begin
//поле существует
Result:=true;
i:= T.Fields.Count+1;
end;
end;
end;
end;
end;
end;
© 28.03.2009 Сергей Попов