Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизКак узнать номер новой записи. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c