Адрес этой странички : http://doc-prg.narod.ru/art_00905/art_00905.htm 
Дата обновления: 28.03.2009

(c) Sergey Popov, Usinsk, Komi, 2007

© 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 Сергей Попов

 


Hosted by uCoz
-->