Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Как узнать номер новой записи.   Найти похожие ветки 

 
Tempo   (2004-07-20 09:03) [0]

Вопрос, есть БД Paradox. В нее добавляются записи, удаляются... Есть ключевое числовое поле, которое автоматически при добавлении записи увелифивается на 1. Допустим, было в БД 3 записи, их удалили, но следующая запись все-равно будет под номером 4. Как мне узнать до добавления записи какой будет её номер?


 
Johnmen ©   (2004-07-20 09:05) [1]

MAX(ключевое числовое поле,)+1

А зачем вообще это надо ?


 
Reindeer Moss Eater ©   (2004-07-20 09:05) [2]

Если ты про автоинкрементное поле, то никак ты не узнаешь


 
Reindeer Moss Eater ©   (2004-07-20 09:06) [3]

...все-равно будет под номером 4.
У него Autoinc


 
Tempo   (2004-07-20 09:10) [4]

Да, автоинкрементное поле.
Но узнать по-любому можно, только мне такой метод не по душе, сперва добавлять запись временную, затем считывать её ID, увеличивать её на 1, а затем удалять временную запись. Работать будет без отказно, но слишком просто.


 
Reindeer Moss Eater ©   (2004-07-20 09:12) [5]

Но узнать по-любому можно,

Ага. Щазззз.

Про многопользовательский случай не забыл?


 
Anatoly Podgoretsky ©   (2004-07-20 09:15) [6]

Tempo   (20.07.04 09:03)  
Tempo   (20.07.04 09:10) [4]

Нельзя, до записи в таблицу это значение не существует!!!


 
Tempo   (2004-07-21 08:31) [7]

Хорошо, тогда такой вопрос.
Есть 3 таблицы Pаradox. Пишется программа для backupа. В первой хранится общая информация о заданиях - название, тип и активность. Во второй есть только два поля - SID (в нем указывается ID записи из первой таблицы, к которой принадлежит эта строка) и Files - имя файла. В третьей хранится информация о расписании, есть поля - OID (опять ссылается на ID из первой таблицы), типа расписания (еженедельно, ежечасно и т.п.), время и т.д. Так вот, для добавления задания есть отдельная форма, на ней я уместил все, кроме расписания, точнее есть только компнент ListBox, который содержит записи об расписании в читабельном виде и етсь кнопки добавить и удалить. Так вот, при нажатии кнопки добавить открывается другая форма, в которой есть всякие чекбоксы и т.п, зер выбирает параметры, жмет добавить, при закрытии автоматом эти данные сразу заносятся в третью таблицу (т.к. может быть несколько расписаний). НО, пользователь может же в самый последний момент и передумать, и уже в форме добавления ПРОЕКТА нажать отмену, тогда нужно эти записи о рсписании тоже удалить? Как быть?


 
Anatoly Podgoretsky ©   (2004-07-21 08:35) [8]

Удалять все подчиненые записи.


 
Tempo   (2004-07-21 08:38) [9]


> Anatoly Podgoretsky

Извините, не понял? Я же не знаю ID записи, т.к. они не по-порядку


 
Anatoly Podgoretsky ©   (2004-07-21 08:44) [10]

Ты сам пишешь что надо удалить, а это значит, что ты сохранил, а это значит что у тебя уже есть номер.
На самом деле тебе не нужно автоинкриментное поле, а нужно manual и не инкриментное (TaskID), а любое. Заодно решишь проблему разрушения этого автоинкриментного поля.


 
Tempo   (2004-07-21 08:51) [11]


> Ты сам пишешь что надо удалить, а это значит, что ты сохранил,
> а это значит что у тебя уже есть номер.

Этот номер толже часто вычисляется ошибочно
Но я понял на что вы намекаете, СПАСИБО! Как я сам не догадался=)))


 
Anatoly Podgoretsky ©   (2004-07-21 09:34) [12]

Главное правильный подход к проектированию базы.
А у тебя он неправильный, особенно в выборе формата.



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
14-1090840734
Белый Крыс
2004-07-26 15:18
2004.08.15
Слава Одину! Неужели на форуме Игры появился модератор???


1-1091023975
race1
2004-07-28 18:12
2004.08.15
хитрый массив


14-1090823281
Ломброзо
2004-07-26 10:28
2004.08.15
ЧТо-то я ничего не понял. Толкователи есть?


3-1090055304
Wolfram
2004-07-17 13:08
2004.08.15
JOIN и несколько таблиц


14-1091093968
stone
2004-07-29 13:39
2004.08.15
Перлыы коментаторов :))