Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
Внизговорят легко Найти похожие ветки
← →
cOrps (2003-01-23 11:09) [0]Приветствую вас мастаки
Как сделать чтоб при добавлении новой записи в таблицу
числовое поле "номер" увеличивалось на единицу
надо чтоб оно было не автоинкриниментное.
Заранее хочу сказать что я в дельфи и ваще в программировании
неочень, по учебе понадобилось!
← →
Reindeer Moss Eater (2003-01-23 11:10) [1]числовое поле "номер" увеличивалось на единицу
По сравнению с чем?
← →
Чудак (2003-01-23 11:23) [2]если оно у тебя типа Number то можно сделать так:
Table1.Last;
k:=Table1.FieldByName("Number").AsInteger;
Table1.Append;
Table1.FieldByName("Number").AsInteger:=k+1;
Table1.Post;
где k указываешь типа k:integer; в разделе описания переменных var
← →
Johnmen (2003-01-23 11:34) [3]Как сказал Чудак не делай !!!
SELECT MAX(id)+1 FROM Table - нужное тебе значение
← →
MsGuns (2003-01-23 11:39) [4]"Легко" говорят те, кто написал 2-3 проги с парой таблиц, к тому же эти проги или вообще не юзаются или юзаются "По воскресеньям после понедельника".
Есть несколько способов для Парадокса:
1. Номер определяется как Max(Num)+1
2. Номер хранится в некоей таблице БД, где и модифицируется каждый раз при добавлении любым юзером новой записи (эмуляция генератора или автоинкремента для не клиент-серверных БД)
Оба способа имеют минуса, как-то:
-нет гарантии от KeyViolation (дублирования ключей)
-"дырки" в нумерации, возникающие при удалениях
-проблемы с массовыми вставками (Insert into ... Select From ..)
В общем, нормального, корректного и надежного способа получения первого "свободного" номера не существует (по крайней мере я об этом не знаю)
← →
cOrps (2003-01-23 11:46) [5]простите за еще один глупый вопрос
а куда это все пишут ?:)
Заранее прошу меня непретиснять всякими приколами
Мне действительно надо это по учебе.
Я ваще на спортфаке учусь. По информатике препод
требовательный срыву недает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c