Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
9-28577
Alek Aaz
2002-08-19 08:50
2003.02.10
Тени


3-28616
cOrps
2003-01-23 11:09
2003.02.10
говорят легко


1-28862
d_oleg
2003-01-30 11:51
2003.02.10
программно сменить формат бумаги


3-28630
Snake
2003-01-23 12:49
2003.02.10
Глюки в FastReport


3-28690
cult
2003-01-24 13:04
2003.02.10
HELP, не работает связка ADOConnection<-ADOTable :( (MSSQL)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский