Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.02.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-1287040846
vasia
2010-10-14 11:20
2012.02.26
SQL запрос с датой в Delphi


2-1321443234
Scott Storch
2011-11-16 15:33
2012.02.26
подождать завершения работы процедуры


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


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


15-1320569353
alexdn
2011-11-06 11:49
2012.02.26
Битмап на 3d куб





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский