Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение в mssql через ado, сохранение результатов правки через ADO 
V
    Опции темы
aleksh
Дата 17.6.2010, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для редактирования данных через DBEdit после выполнения следующего кода
Код

with form1.ADOQuery1 do
begin
  SQL.add('update department set department.d_name = :d_name');
  SQL.add('where department.id = :id');
  Parameters.ParamByName('id').Value := IntToStr(form1.ADODataSet1.Fields[0].AsInteger);
  Parameters.ParamByName('d_name').Value := form1.DBEdit1.Text;
  ExecSQL;
end;

при попытке перехода на другую строку возникает ошибка EOleException "Не удается найти строку для обновления"
пробывал добавлять post, ADOConnection1.CommitTrans. не помогало
Что упустил?
PM MAIL   Вверх
Данкинг
Дата 17.6.2010, 10:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(aleksh @  17.6.2010,  10:01 Найти цитируемый пост)
при попытке перехода на другую строку возникает ошибка EOleException "Не удается найти строку для обновления"

Переподключись к БД. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vas
Дата 17.6.2010, 10:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Цитата(aleksh @  17.6.2010,  09:01 Найти цитируемый пост)
Что упустил? 

Вместо DBEdit ставь просто Edit, или меняй логику работы, иначе DBEdit тебе сам раньше исправляет данные, чем запрос выполняется.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
aleksh
Дата 17.6.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



оказалось есть два пути, но в обоих нужна конструкция:
Код

form1.ADOConnection1.BeginTrans;
...
form1.ADOConnection1.CommitTrans;

1-й: заменить DBEdit на простой Edit, но тогда действительно надо переподключаться к базе чтобы увидеть изменения (или как-то иначе рефрешиться)
2-й: оставить DBEdit, не заморачиваться с Query, а просто вставить вышеобозначенную конструкцию для сохранения изменений при событии OnExit

Всем спасибо
PM MAIL   Вверх
Vas
Дата 18.6.2010, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Цитата(aleksh @  17.6.2010,  13:03 Найти цитируемый пост)
1-й: заменить DBEdit на простой Edit, но тогда действительно надо переподключаться к базе чтобы увидеть изменения (или как-то иначе рефрешиться)

Не надо переподключаться, достаточно обновить набор данных. Сначала его закрыть, а потом заново открыть. Как практика показывает команда Refresh в ADO почему то криво работает и нихрена не показывает обновления.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
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.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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