Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-56211
AFrolov
2002-10-07 17:45
2002.10.17
как узнать доступен ли для приложения COM объект


1-56035
Борис
2002-10-07 15:51
2002.10.17
Нужна dll-ка с какой-нибудь функцие проверки серийника (+)


1-56134
Sego
2002-10-08 14:57
2002.10.17
Архивация в консольном приложении


1-56210
AVeR
2002-10-07 20:21
2002.10.17
TSpeedButton


14-56293
Hooch
2002-09-23 15:10
2002.10.17
Delphi or Visual Basic





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский