Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение записи 
:(
    Опции темы
namra
Дата 16.3.2009, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



Помогите изменить запись в таблице. Я так типа такого делал добавление, а вот на изменение не хочет  smile , нужно только с помощью SQL

Код

num:=DataModule2.OSN.FieldValues['id'];
DataModule2.ADOQuery1.Active:= False;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('Update OSN');
DataModule2.ADOQuery1.SQL.Add('(republik, oblast, raion, gorod, pocht_index)');
DataModule2.ADOQuery1.SQL.Add('SET (:republik, :oblast, :raion, :gorod, :pocht_index)');
DataModule2.ADOQuery1.Parameters.ParamByName('republik').Value:= Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('oblast').Value:=DBLookupComboBox1.KeyValue;
DataModule2.ADOQuery1.Parameters.ParamByName('raion').Value:= Edit3.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('gorod').Value:= Edit4.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('pocht_index').Value:= StrToInt(Edit5.Text);
DataModule2.ADOQuery1.SQL.Add('Where id='+IntToStr(num));
DataModule2.ADOQuery1.ExecSQL;

PM MAIL   Вверх
former
Дата 16.3.2009, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



здесь нужно так:
Код

num:=DataModule2.OSN.FieldValues['id'];
DataModule2.ADOQuery1.Active:= False;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('Update OSN');
DataModule2.ADOQuery1.SQL.Add('(republik, oblast, raion, gorod, pocht_index)');
DataModule2.ADOQuery1.SQL.Add('SET (:republik, :oblast, :raion, :gorod, :pocht_index)');
DataModule2.ADOQuery1.SQL.Add('Where id = :num');
DataModule2.ADOQuery1.Parameters.ParamByName('republik').Value:= Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('oblast').Value:=DBLookupComboBox1.KeyValue;
DataModule2.ADOQuery1.Parameters.ParamByName('raion').Value:= Edit3.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('gorod').Value:= Edit4.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('pocht_index').Value:= StrToInt(Edit5.Text);
DataModule2.ADOQuery1.Parameters.ParamByName('num').Value:=IntToStr(num);
DataModule2.ADOQuery1.ExecSQL;


Это сообщение отредактировал(а) former - 16.3.2009, 00:27


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
namra
Дата 16.3.2009, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



former пишет ошибка синтаксиса в инструкции Update и выделяет эту строку
DataModule2.ADOQuery1.ExecSQL;


Это сообщение отредактировал(а) namra - 16.3.2009, 00:51
PM MAIL   Вверх
former
Дата 16.3.2009, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



namra, сейчас у себя попробую.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 16.3.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



смотри как нужно было:
Код

num:=DataModule2.OSN.FieldValues['id'];
DataModule2.ADOQuery1.Active:= False;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('Update OSN');
 //вот где косяк был
DataModule2.ADOQuery1.SQL.Add('SET republik = :republik, oblast = :oblast, ');
DataModule2.ADOQuery1.SQL.Add('raion = :raion, gorod = :gorod, pocht_index = :pocht_index');
DataModule2.ADOQuery1.SQL.Add('Where id = :num');
DataModule2.ADOQuery1.Parameters.ParamByName('republik').Value:= Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('oblast').Value:=DBLookupComboBox1.KeyValue;
DataModule2.ADOQuery1.Parameters.ParamByName('raion').Value:= Edit3.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('gorod').Value:= Edit4.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('pocht_index').Value:= StrToInt(Edit5.Text);
DataModule2.ADOQuery1.Parameters.ParamByName('num').Value:=num;
DataModule2.ADOQuery1.ExecSQL;


Это сообщение отредактировал(а) former - 16.3.2009, 01:04


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
namra
Дата 16.3.2009, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



+1 former

Это сообщение отредактировал(а) namra - 16.3.2009, 01:23
PM MAIL   Вверх
pseud
Дата 16.3.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(former @  16.3.2009,  01:02 Найти цитируемый пост)
смотри как нужно было:

ну а еще лучше так:
Код

num := DataModule2.OSN.FieldValues['id'];
with DataModule2.ADOQuery1 do
begin
  Active:= False;
  SQL.Clear;
  SQL.Add('Update OSN');
  SQL.Add('SET republik = :republik, oblast = :oblast, ');
  SQL.Add('raion = :raion, gorod = :gorod, pocht_index = :pocht_index');
  SQL.Add('Where id = :num');
  Parameters.ParamByName('republik').Value:= Edit1.Text;
  Parameters.ParamByName('oblast').Value:=DBLookupComboBox1.KeyValue;
  Parameters.ParamByName('raion').Value:= Edit3.Text;
  Parameters.ParamByName('gorod').Value:= Edit4.Text;
  Parameters.ParamByName('pocht_index').Value:= StrToInt(Edit5.Text);
  Parameters.ParamByName('num').Value:=num;
  ExecSQL;
end;




--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
former
Дата 16.3.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



А может еще и вот так:
Код

num := DataModule2.OSN.FieldValues['id'];
with DataModule2.ADOQuery1 do
begin
  Active:= False;
  SQL.Clear;
  SQL.Text:=('Update OSN SET republik = :republik, oblast = :oblast,'+
             'raion = :raion, gorod = :gorod, pocht_index = :pocht_index'+
             'Where id = :num');
  Parameters.ParamByName('republik').Value:= Edit1.Text;
  Parameters.ParamByName('oblast').Value:=DBLookupComboBox1.KeyValue;
  Parameters.ParamByName('raion').Value:= Edit3.Text;
  Parameters.ParamByName('gorod').Value:= Edit4.Text;
  Parameters.ParamByName('pocht_index').Value:= StrToInt(Edit5.Text);
  Parameters.ParamByName('num').Value:=num;
  ExecSQL;
end;


Совершенствовать код можно очень долго. smile 


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
pseud
Дата 16.3.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(former @  16.3.2009,  10:24 Найти цитируемый пост)
Совершенствовать код можно очень долго.  


не можно, а нужно


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.