Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2009, 15:58   #1
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию Обновление данных

делаю запрос на обновление
Код:
ADOQuery_Upd.Active:=False;
ADOQuery_Upd.SQL.Clear;
ADOQuery_Upd.SQL.Add('UPDATE [Contacts] SET [nomer]='+IntToStr(F_Client.t.Tag+1)+' WHERE [UIN]="'+F_Client.Cont_Uin+'"');
ADOQuery_Upd.ExecSQL;
И вылетает ошибка
Цитата:
В операции должен использоваться обновляемый запрос
В чем может быть проблема?
БД - Акцес, Поле Nomer - числовое, Поле UIN - текстовое.
S@fer вне форума Ответить с цитированием
Старый 10.04.2009, 16:52   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Попробовал сделать запрос на своей БД(Access), похожий на ваш, нормально работает
Код:
procedure TMainForm.Button1Click(Sender: TObject);
var a:integer;
begin
a:=140;
With DataModule.AdressQuery do
 begin
  Close;
  SQL.Clear;
  SQL.Add('Update Адрес  SET Вызовы = '+inttostr(a)+' WHERE Клиент = "'+edit1.Text+'"');
  ExecSQL;
 end;
end;
SERG1980 вне форума Ответить с цитированием
Старый 10.04.2009, 16:56   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А сам текст сгенерированного запроса корректный?
Попробуй вручную пропиши тест типа:
Код:
ADOQuery_Upd.SQL.Add('UPDATE Contacts SET nomer=2 WHERE UIN="Чему-то");
Дабы на чистом запросе потестить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.04.2009, 08:06   #4
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А сам текст сгенерированного запроса корректный?
Попробуй вручную пропиши тест типа:
Код:
ADOQuery_Upd.SQL.Add('UPDATE Contacts SET nomer=2 WHERE UIN="Чему-то");
Дабы на чистом запросе потестить.
Попробовал так. Та же самая ошибка вылетает.
S@fer вне форума Ответить с цитированием
Старый 11.04.2009, 09:07   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а попробуйте кинуть новый (чистый) ADOQuery
в нём прописать этот самый запрос:
'UPDATE Contacts SET nomer=2 WHERE UIN="Чему-то"'
и выполнить через ADOQuery.ExecSQL

(есть подозрение, что Вы там что-то лишнего намутили, то ли параметры, то ли поля добавили, то ли ещё что-то...)

NB. Надеюсь, что в таблице Contacts есть поля NOMER и UIN ???!?!!!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.04.2009, 10:09   #6
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а попробуйте кинуть новый (чистый) ADOQuery
в нём прописать этот самый запрос:
'UPDATE Contacts SET nomer=2 WHERE UIN="Чему-то"'
и выполнить через ADOQuery.ExecSQL
Пишет точно такую же ошибку

Цитата:
NB. Надеюсь, что в таблице Contacts есть поля NOMER и UIN ???!?!!!!!
Код:
SELECT [nomer] FROM [Contacts]  WHERE [UIN]="199167541"
работает
S@fer вне форума Ответить с цитированием
Старый 11.04.2009, 11:14   #7
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Проблему нашел. В AdoConection в Mode стояло cmRead, исправил на cmReadWrite все заработало.
S@fer вне форума Ответить с цитированием
Старый 11.04.2009, 11:20   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оффтоп:Вотпочему я не использую ADOConnection...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.04.2009, 12:28   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от S@fer
Проблему нашел. В AdoConection в Mode стояло cmRead, исправил на cmReadWrite все заработало.
поздравляю. И спасибо за информацию. обязательно кому-то пригодится!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2010, 10:18   #10
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Пригодилось но не помогло.
ADOConnection связан с базой (таблицы Paradox), в Mode стоит cmShareDenyNone (это неограниченный доступ, если верить книжке, хотя с вариантом cmReadWrite ситуация не менялась).
На форме грид и навигатор.
Редактирую поле (любое), при попытке сохранить - привет ошибке "В операции должен использоваться обновляемый запрос".
Какой ещё подводный камень есть?
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление данных ЕленаС Microsoft Office Excel 3 11.02.2009 00:19
Обновление данных в БД EdNovice Общие вопросы .NET 2 16.10.2008 12:13
Обновление данных Родион БД в Delphi 3 17.09.2008 20:49
обновление данных AnGrig БД в Delphi 3 14.10.2007 13:08
Обновление данных в БД EdNovice БД в Delphi 4 26.06.2007 14:35