Отправляет email-рассылки с помощью сервиса Sendsay

Delphi для профессионалов

  Все выпуски  

Delphi для профессионалов - Сканирование версии структуры базы данных


Информационный Канал Subscribe.Ru


Профессиональная реклама в интернет. Русскоязычный рекламный брокер.

Рассылка: Delphi для профессионалов

Количество подписчиков: 4354
Рассылка 'Delphi для профессионалов'

Выберите действие:
Заглавие (одной строкой) :
Содержание :

От кого :
Не показывать мой e-mail другим пользователям


Сканирование версии структуры базы данных

Спасибо за идеи, высказанные в группах новостей и присланные по электронной почте. Я думаю, что нашел лучшее решение.

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

(*****************************************************************************
 * DbUtils.pas                                                               *
 *                                                                           *
 * Утилита для работы с базами данных                                        *
 *                                                                           *
 * Создана 09/20/96                                                          *
 *****************************************************************************)
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-ask@igp.org.ua
Все ответы присылайте по адресу: delphi-reply@igp.org.ua
Все подсказки присылайте по адресу: delphi-hint@igp.org.ua

Со всем списком советов можно познакомиться по адресу: http://igp.org.ua/delphine/.
Наш проект Delphine можно найти по следующей ссылке: http://igp.org.ua/products/delphine/.

Заходите в наш форум: Форум Delphi-профессионалов. Адрес: http://forum.igp.org.ua/.
Здесь Вы найдете ответы на все Ваши вопросы!

Выберите действие:
Заглавие (одной строкой) :
Содержание :

От кого :
Не показывать мой e-mail другим пользователям



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное