Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 12.11.2010, 13:56   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию SQL запрос на текущую запись

Можно ли как нибудь указать в запросе что модифицировать надо именно текущую запись т.е. на которой стоити курсор, что то вроде
Код:
SQL.Add('UPDATE Towns SET T_Default = true WHERE текущая запись');
SERG1980 вне форума Ответить с цитированием
Старый 12.11.2010, 14:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Ну это зависит от СУБД имхо...
Например можно было бы написать:
Код:
SQL.Add('UPDATE Towns SET T_Default = true WHERE rownum='+IntToStr(RecNo));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2010, 14:20   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,517
По умолчанию

Можно и даже необходимо
ID - первичный ключ, обычно автоинкрементное поле
SQL.Add('UPDATE Towns SET T_Default = true WHERE ID = <текущее значение этого поля>');
_SERGEYX_ вне форума Ответить с цитированием
Старый 12.11.2010, 14:33   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Можно и даже необходимо
ID - первичный ключ, обычно автоинкрементное поле
SQL.Add('UPDATE Towns SET T_Default = true WHERE ID = <текущее значение этого поля>');
Так я уже сделал просто хотелось узнать можно ли проще. Думал может какой нибудь SQL оператор есть который такое умеет
SERG1980 вне форума Ответить с цитированием
Старый 12.11.2010, 15:00   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,517
По умолчанию

Можно самому написать кучу функций и процедур, чтобы не писать один и тот же код. Например, я часто получаю максимальный номер из разных таблиц.
Чтобы не повторяться пишу
Код:
function Get_maxNum(aField: string; aTable: string): Integer;
begin
  qMax.Close;
  qMax.SQL.Clear;
  qMax.SQL.Add('select max(' + aField + ') from ' + aTable);
  qMax.Open;
  Result := qMax.Fields[0].AsInteger + 1;
end;
А потом в коде использую
Код:
x:= Get_maxNum('field','table');
Облегчает жизнь.
_SERGEYX_ вне форума Ответить с цитированием
Старый 12.11.2010, 15:20   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Всем спасибо оставил вариант через id
SERG1980 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложный sql запрос или запись Rusl92 PHP 5 25.08.2010 15:15
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 07:26
Как получить текущую дату из SQL запроса? _ozzy_ SQL, базы данных 2 09.09.2008 21:15
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 19:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS