Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизDBGrid Найти похожие ветки
← →
Samvel (2002-09-24 11:26) [0]Растолкуйте популярно как при добавлении данных в DBGrid сделать так чтобы в поле id автоматически добавлялось максимальное значение по этому полю
Самвел
← →
Desdechado (2002-09-24 11:48) [1]для этого есть триггер, генератор, функция gen_id - в ИБ.
а также Refresh для строки датасета под гридом
← →
Johnmen (2002-09-24 11:51) [2]см.доки по IB : генераторы, триггеры, ХП
← →
Samvel (2002-09-24 13:45) [3]Дело в следующем
нужно при добавлении новой строки в DBGrid автоматически добавить макс значение (по подобию как это происходит в связаных таблица главный-подчиненный при добавлении в подчиненой табл автоматически по полю связи появляется значение из главной табл)
← →
Samvel (2002-09-24 15:26) [4]Большое спасибо за советы
← →
Peter Gluhiy (2002-09-24 15:57) [5]Берешь TQuery, вставляешь запрос: select Max(ПОЛЕ) from ТАВЛИЦА.
В таблице, подключенной к DBGrid, обрабатываешь AfterInsert.
Примерно так:
procedure TDataModule.Table1AfterInsert(DataSet: TDataSet);
begin
Query1.Open;
if Query1.Fields[0].Value <> null then
Table1.FieldByName(" ПОЛЕ").Value := Query1.Fields[0].Value
else Table1.FieldByName(" ПОЛЕ").Value := 1;
Query1.Close;
end;
Удачи!
← →
Desdechado (2002-09-24 16:24) [6]2 Peter Gluhiy
это годится только в однопользовательской несетевой программе. Иначе обречено на провал.
Да и TTable для IB слишком неразумно использовать.
← →
Samvel (2002-09-24 16:30) [7]Спасибо брат Peter Gluhiy
наконец получилось, а то я все по наивности пробовал BeforeInsert
так как думал что вставка должна быть до того, а Delphi мне ошибку я аж расстроился
Еще раз спасибо
← →
Samvel (2002-09-24 16:32) [8]Для Desdechado
все работает в сетевой проге
так что ненадо
← →
Desdechado (2002-09-24 16:43) [9]хозяин-барин. Мое дело предупредить. Когда получишь парочку-тройку одинаковых значений для первичного ключа, вспомнишь.
А ошибку Дельфи давала, т.к. у тебя для поля стоит REQUIRED, а еще и некэшированная вставка.
Да и зачем юзеру знать ID?
← →
Peter Gluhiy (2002-09-24 16:49) [10]Desdechado © (24.09.02 16:24)
>Да и TTable для IB слишком неразумно использовать.
Да я просто для примера написал. Сам я его, конечно, не использую.
← →
Desdechado (2002-09-24 16:58) [11]хозяин-барин. Мое дело предупредить. Когда получишь парочку-тройку одинаковых значений для первичного ключа, вспомнишь.
А ошибку Дельфи давала, т.к. у тебя для поля стоит REQUIRED, а еще и некэшированная вставка.
Да и зачем юзеру знать ID?
← →
Prooksius (2002-09-24 17:02) [12]2 Peter Gluhiy © (24.09.02 16:49)
> Да я просто для примера написал. Сам я его, конечно, не
> использую.
Прежде, чем советовать, надо хотя бы подумать.
Или проверить.
В сети такое получение ID не будет работать .
Я понимаю, к примеру, дать намек на решение, не писать всего, чтобы человек подумал сам хоть чуть-чуть. Но писать просто неправильные советы - нельзя.
← →
Peter Gluhiy (2002-09-24 17:25) [13]Prooksius © (24.09.02 17:02)
По вопросу я понял, что Samvelу не нужно уникальное ID, а просто максимальное.
← →
Desdechado (2002-09-25 11:05) [14]ID есть ID, а MAX есть MAX - и это не одно и то же.
← →
Anatoly Podgoretsky (2002-09-25 11:15) [15]Если строго по вопросу, то все будет работать в любой сети, а вот правильный ли вопрос тут большое сомнение. Peter Gluhiy © (24.09.02 15:57) ответил правильно, за исключение не понятно почему он решил в ветке else присваивать 1, что резко противоречит условию вопроса, надо или 0 или null (привильнее)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c