Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADOQuery Update, обновление записи 
:(
    Опции темы
Bugmaker
Дата 7.7.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мне снова нужна помощь...
Есть следующий код
Код

ADOQuery1->Active=false;
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add ("update talbe1 set name=' "+Edit1->Text+" ' ");  //изменяем записи на edit1->text

  ADOQuery1->ExecSQL();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add ("select * from table1");   //снова закидываем записи в dbgrid
                         ADOQuery1->Active=true;



Проблема в том, что этот код меняет значение всех записей столбца name таблицы table1, как сделать так, чтобы он менял только значение в выделеннйо строки в dbgride ?

update talbe1 set name=' "+Edit1->Text+" ' where id=    что писать в условии where?? 

Это сообщение отредактировал(а) Bugmaker - 7.7.2008, 23:47
PM MAIL   Вверх
Rodman
Дата 8.7.2008, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(Bugmaker @  7.7.2008,  23:47 Найти цитируемый пост)
Проблема в том, что этот код меняет значение всех записей столбца name таблицы table1, как сделать так, чтобы он менял только значение в выделеннйо строки в dbgride ?
по коду так и написано...
Цитата(Bugmaker @  7.7.2008,  23:47 Найти цитируемый пост)

update talbe1 set name=' "+Edit1->Text+" ' where id=    что писать в условии where?? 
правильно подмечено...
а какую запись обновлять хошь? выбранную в DBGrid???

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 8.7.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



в таблице 2 столбца id, name ... хочу изменть значение name в выделенной строке грида
PM MAIL   Вверх
Rodman
Дата 8.7.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



ну для этого мероприятия одного Query маловато будет... а вооще это делается следующим образом...
Код

  ADOQuery2->Active=false;
  ADOQuery2->Close();
  ADOQuery2->SQL->Clear();
  ADOQuery2->SQL->Add ("update talbe1 set name=:Prm1 where (id=:Prm2);");  //изменяем записи на edit1->text
  ADOQuery2->Parameters->ParamByName("Prm1")->Value=Edit1->Text;
  ADOQuery2->Parameters->ParamByName("Prm2")->Value=ADOQuery1->Fields->Fields[0]->AsInteger;
  ADOQuery1->ExecSQL();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add ("select * from table1");   //снова закидываем записи в dbgrid
  ADOQuery1->Active=true;
понятно? или будут еще вопросы?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 8.7.2008, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



спасибо.
Вроде понятно.. дома проверю вечером.

А строка Value=ADOQuery1->Fields->Fields[0]->AsInteger;
точно вернет значение только для выделенной ячейки? 

PM MAIL   Вверх
Rodman
Дата 8.7.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(Bugmaker @  8.7.2008,  14:46 Найти цитируемый пост)
ADOQuery1->Fields->Fields[0]->AsInteger;
строка возвращает текущее значение в гриде, конечно если при помощи этого Query данные выводятся в грид

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 8.7.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ругается на строку
ADOQuery2->Parameters->ParamByName("Prm1")->Value=Edit1->Text;

пишет parameter 'Prm1' not found
если ее удалить, то ругается на следующую мол prm2 not found...
PM MAIL   Вверх
Bugmaker
Дата 8.7.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ступил, надо было добавить 2 параметра компоненту ADOQuery2.

Правда все равно не редактирует =(

Это сообщение отредактировал(а) Bugmaker - 8.7.2008, 21:26
PM MAIL   Вверх
Rodman
Дата 8.7.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



код такой же?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 9.7.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



код такой же единственное изменение table1 на market 
Код

ADOQuery2->Active=false;
  ADOQuery2->Close();
  ADOQuery2->SQL->Clear();
  ADOQuery2->SQL->Add ("update market set name=:Prm1 where (id=:Prm2);");  
  ADOQuery2->Parameters->ParamByName("Prm1")->Value=Edit1->Text;
  ADOQuery2->Parameters->ParamByName("Prm2")->Value=ADOQuery1->Fields->Fields[0]->AsInteger;
  ADOQuery1->ExecSQL();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add ("select * from market");   /
  ADOQuery1->Active=true;


Можешь проект куда нить слить состоящий из 1 формы едита и кнопки? чтобы он update корректно делал?? буду оч признателен... вчера ночью сидел ковырялся добился чтобы он менял, но както через раз и с 2-х нажатий... не сохранился а теперь даже так сделать не могу =)
PM MAIL   Вверх
Bugmaker
Дата 10.7.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Up проблема не решена, гуглить заколебался =(
PM MAIL   Вверх
Rodman
Дата 10.7.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



а какая СУБД???
Тока завтра смогу на Access показать!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 10.7.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



как раз ms access =) жду до завтра пока попробую другой элемент реализовать.. ты тока не забудь пожалуйста)
PM MAIL   Вверх
Rodman
Дата 11.7.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



вот оно - счастье!

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Example.rar 489,19 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bugmaker
Дата 11.7.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



При попытке запустить твой пример выдает такую штуку =(

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  __________.JPG 40,91 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


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

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


 




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


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

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