Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.02.2009, 16:06
srr srr вне форума
Прохожий
 
Регистрация: 21.04.2008
Сообщения: 10
Версия Delphi: Delphi7
Репутация: 10
Вопрос Как присвоить значение MAX (поле) следующей записи

Как присвоить значение MAX (поле) следующей записи через запрос SQL? В общем инкремент
Например:
SQL.Add('SELECT MAX(Kod) FROM table');
INSERT INTO Table (Kod) values ( MAX(Kod)+1)

Последний раз редактировалось srr, 17.02.2009 в 16:11.
Ответить с цитированием
  #2  
Старый 17.02.2009, 17:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А подзапросом не пробовал?

Код:
INSERT INTO Table(Rjl) values(SELECT MAX(Kod)+1 FROM Table)

А вообще, для этих целей сущетсвуют либо автоинкрементные поля, либо генераторы/сиквенсы.
Ответить с цитированием
  #3  
Старый 18.02.2009, 18:27
srr srr вне форума
Прохожий
 
Регистрация: 21.04.2008
Сообщения: 10
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Пробовал в SQL - не работает
Ответить с цитированием
  #4  
Старый 18.02.2009, 18:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Что не работает?
Ответить с цитированием
  #5  
Старый 18.02.2009, 22:40
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

lmikle, он прав, в стандарте SQL92 это работать не будет
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 18.02.2009, 23:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да ладно.
Обычный подзапрос, возвращающий одно значение.
в оракле 8,9,10 работает
в firebird 1.5 работает
в MS SQL 2000 работает.

Там ошибка, что в первых скобках должно быть написано Kod.
То ли я описался, то ли что сглючило.
может придется подзапрос еще раз в скобки поместить, но работать должно.
Ответить с цитированием
  #7  
Старый 20.02.2009, 09:28
srr srr вне форума
Прохожий
 
Регистрация: 21.04.2008
Сообщения: 10
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Всё равно не работает в MS SQL 2000, кроме SELECT и в скобках тоже, м.б. в настройках сервера, но там низя ничего делать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025