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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
1-56153
Осирис
2002-10-07 10:55
2002.10.17
Форма в DLL.


3-56018
kserg@ukr.net
2002-09-26 15:20
2002.10.17
как организовать многопользовательский доступ к таблице ACCESSa.


3-56003
Questioner
2002-09-25 15:00
2002.10.17
Как в InterBase-6 организовать вывод в текстовый файл


7-56363
alexsum
2002-08-09 11:54
2002.10.17
Прог не дает перегрузить NT,XP


1-56166
Andrey
2002-10-07 12:16
2002.10.17
Как программно вставить досовскую псевдографику в Word