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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.08.2013, 23:30
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию SQL запрос на изменение

Не могу разобраться с SQL запросом, почему-то изменяются все строки таблице, а не выбранная в гриде строка?

update OFFICE_CONTACTS set OC_CNTT_ID = ''' + vartostr(DBLookupComboBox1.KeyValue) + ''' where OC_O_ID = '''+ DataModule1.OFFICE_CONTACTS.FieldByName('OC_O_ID') .AsString + ''''
Ответить с цитированием
  #2  
Старый 12.08.2013, 22:44
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Код:
SQL.Text : = 'update OFFICE_CONTACTS set OC_CNTT_ID = :q where OC_O_ID = :w'
Parameters.ParamByName('q').Value := vartostr(DBLookupComboBox1.KeyValue);
Parameters.ParamByName('w').Value := DataModule1.OFFICE_CONTACTS.FieldByName('OC_O_ID').AsString;

попробуй как то так.

Последний раз редактировалось DOR, 12.08.2013 в 22:48.
Ответить с цитированием
  #3  
Старый 13.08.2013, 22:11
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

та же фигня, но мне эта конструкция нравится больше)
Ответить с цитированием
  #4  
Старый 13.08.2013, 22:40
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

вот вся процедура, если нужно:
Код:
procedure TEdit_office_contact.Button1Click(Sender: TObject);
begin
with DataModule1.IBQuery1 do
   begin
    SQL.Text:= 'update OFFICE_CONTACTS set OC_CNTT_ID = :q where OC_O_ID = :w';
    ParamByName('q').Value := vartostr(DBLookupComboBox1.KeyValue);
    ParamByName('w').Value := DataModule1.OFFICE_CONTACTS.FieldByName('OC_O_ID').AsString;
    Transaction.StartTransaction;
    ExecSQL;
    Transaction.Commit;
    Transaction.Active:=false
   end;
   DataModule1.OFFICE_CONTACTS.Close;
   DataModule1.OFFICE_CONTACTS.Open;
   Main.DBGrid4.Columns[0].Visible:=false;
   Main.DBGrid4.Columns[1].Width := 200;
   Main.DBGrid4.Columns[1].Title.Caption:='Наименование';
   Main.DBGrid4.Columns[2].Visible:=false;
   Main.DBGrid4.Columns[2].Visible:=false;
   Main.DBGrid4.Columns[3].Visible:=false;
   Main.DBGrid4.Columns[3].Visible:=false;
end;

Последний раз редактировалось sAVe, 13.08.2013 в 23:12.
Ответить с цитированием
  #5  
Старый 14.08.2013, 12:48
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

а ты сделай
Код:
ParamByName('w').Value := DataModule1.OFFICE_CONTACTS.FieldByName('OC_O_ID').AsString;
ShowMessage(ParamByName('w').Value);
Transaction.StartTransaction;
что тебе покажет сообщение?
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
sAVe (25.09.2013)
  #6  
Старый 15.08.2013, 16:32
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

В сообщении: 1
Ответить с цитированием
  #7  
Старый 15.08.2013, 17:31
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

соответственно у тебя должны обновиться все поля у которых OC_O_ID = 1.
так и есть?
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
sAVe (15.08.2013)
  #8  
Старый 15.08.2013, 21:18
sAVe sAVe вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 40
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ну да, разобрался я) спасибо!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter