Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизВставка записи Найти похожие ветки
← →
Arick (2002-11-30 23:53) [0]Господа помогите новичку с SQL.
Есть запись , номер которой (поле Number) - N
как вставить запись и занести в Number номер N+1?
← →
AK-74 (2002-12-01 03:26) [1]Так и пиши:
Query.SQL.Clear;
Query.SQL.Add("insert into TableName (n) values (:n)");
Query.ParamByName("n").AsInteger := n + 1;
Query.ExecSQL;
Значение n из старой записи ты получаешь где-то раньше.
P.S. На всякий случай: SQL не отменяет автоинкрементные поля Paradox.
← →
Arick (2002-12-01 12:57) [2]А как получить N?
← →
MsGuns (2002-12-01 14:44) [3]Если это надо для получения уникального указателя записи, то используй Autoinc, если он не удовлетворяет, то надо определять самому. Самое простое:
var
mxnum: integer;
begin
...
Query1.SQL.Clear;
Query1.SQL.Add("SELECT MAX(Id) AS MaxNum From Table");
Query1.Prepare;
Query1.Open;
mxnum := Query1.FieldByName("MaxNum").AsInteger;
Query1.Close;
...
С последующим
Table1.Append
Table1.FieldByName("Id").AsInteger := inc(mxnum);
или
Query1.SQL.Add("INSERT INTO Table1 (Id) values("+IntToStr(inc(mxnum))+")";
Но для сетевого доступа это отстой, т.к. при попытке одновременной вставки двух юзеров для обоих будет получено ОДНО И ТО ЖЕ значение. Для парадокса можно делать добавление (Append) в цикле с защищенным блоком, в котором, если неудачно, увеличивать mxNum на 1 и в начало цикла.
Хотя в общем-то все вышеизложенное есть не что иное как собственное моделирование автоинкремента, что, ИМХО, не есть хорошо.
← →
Arick (2002-12-01 15:05) [4]Автоинкремент не могу использовать т.к. это полем - ключевое,
к нему присоединена вторая таблица в которой тип
не поля соединения не может быть Автоинкремент
Как бы сформировать запрос типа:
SELECT(MAX(Main.Number)+1) as M
FROM Main
INSERT
INTO Main(Number)
VALUES (M)
Но INSERT не работает.
← →
MsGuns (2002-12-01 15:45) [5]Твой случай типичный:
Гл.таблица
1. ID - autoinc Primary
Делал
1. ID - I Primary (Связь с Гл)
2. ID2 - autoinc Primary (Собств.UID)
← →
Arick (2002-12-01 17:40) [6]Спасибо, MsGuns, просто я не знал, что autoinc и I совместимы
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c