Среда, 24 Апр 2024, 10:28
Uchi.ucoz.ru
Меню сайта
Форма входа

Категории раздела
Высшая математика [11]
Экономическая социология [95]
Основы Менеджмента [64]
Бухгалтерский учёт [157]
Философия [163]
Мировая Экономика [603]
Бизнес планирование [29]
Финансирование и кредитование инвест [105]
Ценообразование [46]
Гражданское право [196]
Права Человека [173]
Основы Маркетинга [207]
Основы энергосбережения [55]
Информатика [0]
Экология и устойчивое развитие [0]
Физика для студентов [0]
Основы права [0]
Политология [0]
Не стандартные примеры на Delphi [169]
Примеры на Delphi7 [108]
Алгоритмы [94]
API [110]
Pascal [152]
Базы Данных [6]
Новости
Чего не хватает сайту?
500
Статистика
Зарегистрировано на сайте:
Всего: 51635


Онлайн всего: 18
Гостей: 18
Пользователей: 0
Яндекс.Метрика
Рейтинг@Mail.ru

Каталог статей


Главная » Статьи » Студентам » Не стандартные примеры на Delphi

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

Очевидно, 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 | Добавил: Lerka (22 Ноя 2012)
Просмотров: 530 | Рейтинг: 1.0/ 6 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


Для форума (BB-Code)


Прямая ссылка

Профиль
Среда
24 Апр 2024
10:28


Вы из группы: Гости
Вы уже дней на сайте
У вас: непрочитанных сообщений
Добавить статью
Прочитать сообщения
Регистрация
Вход
Улучшенный поиск
Поиск по сайту Поиск по всему интернету
Наши партнеры
Интересное
Популярное статьи
Портфолио ученика начальной школы
УХОД ЗА ВОЛОСАМИ ОЧЕНЬ ПРОСТ — ХОЧУ Я ЭТИМ ПОДЕЛИТ...
Диктанты 2 класс
Детство Л.Н. Толстого
Библиографический обзор литературы о музыке
Авторская программа элективного курса "Практи...
Контрольная работа по теме «Углеводороды»
Поиск
Главная страница
Используются технологии uCoz