Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TAdoQuery + Access [D7]


GlowSolnce ©   (2009-09-13 18:52:00) 

Всем привет!

Столкнулась с проблемой: при повторном использовании TadoQuery селект ничего не начитывает (((. Экземпл ниже:

ADOQAddSite.Parameters.ParamByName('SitesID').Value:=Msg.LParam;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Name, Comment from tSites where SitesID = :SitesID');
ADOQuery1.Open;
EDName.Text:=ADOQuery1.Fields.FieldByNumber(1).AsString;
EDComment.Text:=ADOQuery1.Fields.FieldByNumber(2).AsString;
ADOQuery1.Close;

При первом вызове в едиты значения начитываются, при повторном в едитах пусто.
Подскажите, пожалуйста, что в ADOQuery1 нужно очистить, чтоб повторно получать значения полей? Или в чем может заключаться проблема?


adigozelov   (2009-09-14 15:11:00) [1]

Privet! ya vapros ni xarsho ponil no dumuyu shto ponil!
paprobuy tak ya paprobul i vso palucayitsa

ADOQuery1.sql.clear;
ADOQuery.sql.add('select Name, Comment from tSites where SitesID = :SitesID');
ADOQuery1.Parameters.ParamByName('SitesID').Value:=edit1.Text;
ADOQuery1.open;
EDName.Text:=ADOQuery1.Fields[1]AsString;
EDComment.Text:=ADOQuery1.Fields[1].AsString;
ADOQuery1.Close;


Eta vso i yesli ya vapros pravilna ponil taqda eta toje pravilna!
no savetuyu paprobut!


Виталий Панасенко(дом)   (2009-09-14 12:34:00) [2]


> GlowSolnce   (14.09.09 08:47) [3]

А то, что ты текст запроса чистишь ПОСЛЕ установки значения параметра, это как ты думаешь, ничего не меняет?


Anatoly Podgoretsky   (2009-09-14 11:18:00) [3]


> YurikGL ©   (14.09.09 10:59) [7]

Вот именно поэтому и советуют выкинуть ADOQuery, что бы не давать возможности ряду ошибок, это не учитывает неэффективность использования ADOQuery - в некоторых случаях замена дает ускорение раза в два.


YurikGL   (2009-09-14 10:59:00) [4]

Кстати, советуется все же не ADOQuery использовать, а ADODataset


MsGuns   (2009-09-14 10:46:00) [5]

Нет, просто я сначала скопировал Add, а потом заменил на Text, а очистку, действительно лишнюю, выкинуть забыл :)


Anatoly Podgoretsky   (2009-09-14 09:11:00) [6]

> MsGuns  (14.09.2009 09:02:04)  [4]

А Clear для того, чтобы особо чисто было?


MsGuns   (2009-09-14 09:02:00) [7]

>GlowSolnce   (14.09.09 08:47) [3]
>Параметры заполняются перед Open, вернее единственный параметр :SitesID

Сделайте так:

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select Name, Comment from tSites where SitesID = :SitesID';
ADOQuery1.Parameters.ParamByName('SitesID').Value:=Msg.LParam;
ADOQuery1.Open;


GlowSolnce   (2009-09-14 08:47:00) [8]

Параметры заполняются перед Open, вернее единственный параметр :SitesID

ADOQuery1.Parameters.ParamByName('SitesID').Value:=Msg.LParam;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Name, Comment from tSites where SitesID = :SitesID');
ADOQuery1.Open;
EDName.Text:=ADOQuery1.Fields.FieldByNumber(1).AsString;
EDComment.Text:=ADOQuery1.Fields.FieldByNumber(2).AsString;
ADOQuery1.Close;

Вопрос остается в силе.


MsGuns   (2009-09-13 19:59:00) [9]

Параметры следует заполнять перед Open, но никак не после


adigozelov   (2009-09-13 19:34:00) [10]

Vapros ni panyatin! Я ni ponil sto znacit
ADOQAddSite и ADOQuery1.tois eti razniyi Tadoquery.


Наверх

Титульная страница Поиск, карта сайта Написать письмо