Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.02.26;
Скачать: CL | DM;

Вниз

INDY сбивают ориентацию ADO   Найти похожие ветки 

 
Евгений07   (2011-11-13 00:49) [0]

Доброго времени!
Непонятно:
1. на сервере есть второстепенная таблица, подразумевается монопольный доступ через ADODataSet -> DBGrid
2. после успешной отправке письма средствами IdSMTP при попытке зафиксировать это в базе
     if Mail(z) then with ADODataSet6 do begin
       Edit;
       FieldByName("otvetMeil").AsInteger := 1;    
       Post;
     end;
вылетает ошибка "Не удается найти строку для обновления"

Возможно ли простое решение проблемы?


 
sniknik ©   (2011-11-13 01:07) [1]

использовать ключевое поле, можно перейти на апдейт запросом но тоже только по нему (ключу).


 
Anatoly Podgoretsky ©   (2011-11-13 01:14) [2]

> Евгений07  (13.11.2011 00:49:00)  [0]

А какая ориентация у АДО и что она становится голубой.


 
Евгений07   (2011-11-13 01:28) [3]

sniknik ©   (13.11.11 01:07) [1]
Запрос + Клозе-Опен + Боокмарк ???
А проще?

про ориентацию АДО лучше спросить специалистов


 
sniknik ©   (2011-11-13 01:45) [4]

> Запрос + Клозе-Опен + Боокмарк ???
что за идиотизм? и где тут ключ?

> А проще?
этои есть самое простое, идентификация делается по ключу, если делать по простому "изменяемому полю", то естественно не найдет, если в процессе кто то (НЕ INDY!!!) поменял значение.


 
Евгений07   (2011-11-13 02:35) [5]

sniknik ©   (13.11.11 01:45) [4]
Самое простое для меня  самое не понятное:
1. была установлена запись в ДатаСет = через ДВГрид
2. можно установить Какие??  параметры этой записи
3. после выполнения процедуры, меняющей (сбрасывающей) указатель на запись хочется восстановить ситуацию. Как?
С помощью идиотизма я предполагаю , как это можно
Если Вам известно, как проще - приведите часть кода. Я постараюсь Его понять.


 
Dennis I. Komarov ©   (2011-11-13 11:34) [6]

if Mail(z) then
 with TADOCommand.Create do try
   .....
   CommandText:="Update.....";
   Execute;
 finally
   Free;
 end;


 
sniknik ©   (2011-11-13 11:40) [7]

> 3. после выполнения процедуры, меняющей (сбрасывающей) указатель на запись хочется восстановить ситуацию. Как?
нет таких, указатель в клиент серверной технологии ничего не значит, с одной машины на другую не действует. идентифицируется по записям (значениям), что значит в наборе должно присутствовать поле(группа) уникальная для каждой записи. если хотим менять позаписьно...
и как ты восстановишь, если ключа нет, а идентификация идет вот FieldByName("otvetMeil").AsInteger := 1; по этому полю?

> Если Вам известно, как проще - приведите часть кода.  
мне известно, и даже несколько вариантов основанных на одном и том же. и даже на неявном "внутреннем" ключе(хотя тут скорее просто идентификатор).
пару я тебе сказал. очень полезно если выберешь запрос и сам (а не рекордсет) попытаешься определить значения для условия апдейта... обычно после этого очень хорошо "доходит" что ему (рекордсету) нужно.

а привести часть кода... да без проблем, вот этот работает -  
with ADODataSet6 do begin
 Edit;
 FieldByName("otvetMeil").AsInteger := 1;    
 Post;
end;

естественно если под это подведена "база", т.е. структура таблицы с ключом, он выбран в рекордсете (присутствует на клиенте), и указано, что нужно идентифицироваться по нему.
описывать все связанное? + все возможные варианты (у тебя нет ни структуры, ни база не указана, ничего нет в общем)?... э... это уже на статью тянет (в смысле не уголовную, а...) и она уже есть везде. на королевстве например (поиск по - работаем с ADO). и не одна.


 
vegarulez   (2011-11-13 20:01) [8]

Что тебе мешает запрос в базу пропнуть через ADOQuery1 например?
Через обычный SQL сделай запрос взяв из DataSet`a id записи

 DBGrid1.DataSource.DataSet.FieldByName("id").AsString;

которую требуется обновить.

что-то типа:

ADOQuery1.Sql.Text:="update `my_table` set `flag_mail`=1,`sender`="test@test.ru",`status`="Отправлено" where `id`="+DBGrid1.DataSource.DataSet.Fieldbyname("id").AsString+"";



Страницы: 1 вся ветка

Текущий архив: 2012.02.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1321098441
a101081
2011-11-12 15:47
2012.02.26
StrToFloat()


15-1320695289
_qwerty_
2011-11-07 22:48
2012.02.26
что подразумевается под клиентским по сетей microsoft?


2-1321645351
dimsar
2011-11-18 23:42
2012.02.26
установка дополнительных компонентов


6-1252422429
WinCap
2009-09-08 19:07
2012.02.26
Сетевой принтер


2-1321131467
Laguna
2011-11-13 00:57
2012.02.26
Изменить курсор вне модальной формы