Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Оцените дизайн сайта

Супер
Симпатично
Пойдет
Ничего хорошего
Просто клиника


Результаты
Другие опросы

Всего голосов: 891
Комментарии: 2


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



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

Статьи по объектно-ориентированному программированию на языке Pascal и в среде программирования 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 и TurboPascal Сканирование версии структуры базы данных Очевидно содержит номер версии структуры по крайней мере для файлов Paradox не могу поручиться за dBase другие форматы Всякий раз при изменении например Database Desktop увеличивает Следующий модуль функцию которая возвращает версию базы данных Код ***************************************************************************** DbUtils Утилита работы базами unit Dbutils **************************************************************************** interface uses