Четверг, 19.06.2025, 01:23
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Сканирование версии структуры базы данных
    Сканирование версии структуры базы данных
    Очевидно, BDE содержит номер версии структуры, по крайней мере для файлов Paradox. (Я не могу поручиться за dBase и другие форматы.) Всякий раз при изменении структуры (например, в Database Desktop) BDE увеличивает номер версии. Следующий модуль содержит функцию, которая возвращает версию структуры базы данных:
    (*****************************************************************************
    * DbUtils.pas
    *
    * Утилита для работы с базами данных
    *****************************************************************************)
    unit Dbutils;

    (****************************************************************************)
    (****************************************************************************)

    interface
    (****************************************************************************)
    (****************************************************************************)

    uses

    DbTables;

    function DbGetVersion(table: TTable): LongInt;

    (****************************************************************************)
    (****************************************************************************)

    implementation
    (****************************************************************************)
    (****************************************************************************)

    uses

    Db, DbiProcs, DbiTypes, {DbiErrs,}
    SysUtils;

    {-}
    (*

    * Цель: определение номера версии структуры таблицы
    * Параметры: table (I) - интересующая нас таблица
    * Возвращаемая величина: номер версии
    * Исключительная ситуация: EDatabaseError
    *)
    function DbGetVersion(table: TTable): LongInt;
    var

    hCursor : hDBICur;
    tableDesc: TBLFullDesc;
    cName : array[0..255] of Char;
    begin

    { копируем имя таблицы в строку 'с' }
    StrPCopy(cName, table.TableName);

    { просим BDE создать запись, содержащую информацию об определенной таблице }
    Check(DbiOpenTableList(table.DBHandle, True, False, cName, hCursor));

    { получаем запись, содержащую информацию о структуре }
    Check(DbiGetNextRecord(hCursor, dbiNOLOCK, @tableDesc, nil));

    { возвращаем поле записи, содержащее номер версии структуры нашей таблицы }
    Result := tableDesc.tblExt.iRestrVersion;

    Check(DbiCloseCursor(hCursor));
    end;

    end.

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 349 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: