Суббота, 09 Ноя 2024, 01:29
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
Статистика
Зарегистрировано на сайте:
Всего: 51642


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

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


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

Работа с автоинкрементальными (AutoInc) полями
Работа с автоинкрементальным типом поля (Auto-increment, поле с
автоприращением)

В приложениях Delphi, при использовании таблиц, содержащих
автоинкрементальные поля или поля, автоматически увеличивающие каким-либо
способом, неизвестным приложению, свое значение, могут наблюдаться проблемы.
Таблицы Paradox, InterBase, Sybase и Informix имеют средства автоматической
вставки и обновления значений полей, без вмешательства сервисов и конечных
приложений. Тем не менее, не каждая операция с таблицой поддерживается таким
механизмом. Данный документ призван продемонстрировать основные методы работы с
такими типами полей в таблицах Paradox 5.0, Informix 5.x, MS/Sybase SQL Server
4.x, InterBase 4.0 и Local InterBase.

У каждого типа таблицы за кулисами работает собственный механизм. Таблицы
Paradox поддерживают автоинкрементальный (Autoincrement) тип поля. Когда к таким
таблицам добавляются новые записи, Borland Database Engine определяет
максимальное текущее значение в данной колонке, прибавляет единицу, и обновляет
новую строку с новым значением.

Для таблиц Informix данное поведение предусматривается специфическим типом
Informix-поля, названного Serial. Колонки Serial отличаются от автоприращиваемых
(Autoincrement) полей Paradox тем, что в таблицах Informix значения этого типа
полей могут быть изменены, тогда как в таблицах Paradox они предназначены только
для чтения.

Таблицы InterBase и MS/Sybase SQL Server не имеют поддерживающего данную
характеристику специального типа поля, но для выполнения той же задачи можно
воспользоваться триггерами. Триггеры являются специализированными процедурами,
которые находятся на сервере баз данных и автоматически выполняются в ответ на
какое-либо событие, например, добавление в таблицу, обновление и удаление.
Использование таблиц со связанными триггерами может быть особенно
проблематичным, поскольку триггеры способны делать намного больше функций, чем
просто увеличивать значения приращиваемой колонки.

Три функциональные области, которые могут влиять на данный тип поля в случае
простой вставки, batchmoves и привязки (Linking) таблицы.

Обработка Update и/или Append BatchMoves

Таблицы Paradox

Поскольку автоинкрементальный тип поля является типом только для чтения, то
попытка вызвать операцию batchmove с данной колонкой в целевой таблице может
привести к ошибке. Для того, чтобы обойти это, свойство компонента TBatchMove
Mappings должно быть установлено так, чтобы поля исходной таблицы
соответствовали полям целевой таблицы, за исключением ее автоинкрементальных
полей.

Таблицы Informix

Групповое перемещение строк в таблицу Informix с колонками, имеющими тип
Serial, ошибки не вызовет. Тем не менее, должны вас предупредить о возможных
проблемах, поскольку Serial-колонки имеют возможность обновления и часто
используются в качестве первичного ключа.

Таблицы InterBase
Таблицы MS/Sybase SQL Server

Триггеры в таблицах InterBase и SQL Server могут отследить любые неверные
изменения, сделанные в таблице, но это всецело зависит от установок самого
триггера. Здесь также вас необходимо предупредить о возможных проблемах,
поскольку обновляемые триггером колонки могут быть использованы в качестве
первичного ключа.

Привязки таблиц посредством MasterSource &
MasterFields

Таблицы Paradox
Таблицы Informix

Если свойства MasterFields и MasterSource используются для привязки
таблиц с отношениями мастер-деталь и одно из полей в "деталь"-таблице является
автоинкрементальным или Serial-полем, то соответствующее поле в "мастер"-таблице
должно иметь тип Long Integer или быть Serial-полем. Если "мастер"-таблица не
является таблицей Paradox, то ключевое поле "мастер"-таблицы может быть полем
любого целого типа, которого она поддерживает.

Таблицы InterBase
Таблицы MS/Sybase SQL Server

Привязка с использованием данного типа таблиц не вызывает проблем, если
пользоваться полями, изменяемые триггером. Единственное требование заключается в
сопоставлении необходимых типов колонок обоих таблиц.

Простая вставка/обновление (Inserts/Updates)

Таблицы Paradox

Поскольку автоинкрементальные поля Paradox имеют аттрибут только для чтения,
они обычно не предназначены для обновления и вставки новых записей.
Следовательно, свойство Required для field-компонентов, базирующихся на
автоинкрементальных полях, должны всегда быть установлены в False. Это может
быть выполнено из Delphi с помощью Fields Editor определением field-компонентов
в режиме разработки) двойной щелчок на компоненте TQuery или TTable), или во
время работы программы с помощью следующего кода:

Table1.Fields[0].Required := False;
Категория: Не стандартные примеры на Delphi | Добавил: Lerka (22 Ноя 2012)
Просмотров: 616 | Рейтинг: 1.0/ 4 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


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


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

Профиль
Суббота
09 Ноя 2024
01:29


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