Главная страница
    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.009 c
3-28586
Ihtiandr
2003-01-20 13:25
2003.02.10
Install BDE


7-29134
MSAlex
2002-12-08 15:00
2003.02.10
Floppy


1-28916
xZeus
2003-01-30 12:13
2003.02.10
Использование C++Builder в Delphi


1-28892
maxim2
2003-01-25 23:09
2003.02.10
Покидание мыши с компонента


1-28885
thick
2003-01-30 16:03
2003.02.10
initialization ???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский