-
Всем привет!
Столкнулась с проблемой: при повторном использовании 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 нужно очистить, чтоб повторно получать значения полей? Или в чем может заключаться проблема?
-
Vapros ni panyatin! Я ni ponil sto znacit
ADOQAddSite и ADOQuery1.tois eti razniyi Tadoquery.
-
Параметры следует заполнять перед Open, но никак не после
-
Параметры заполняются перед 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;
Вопрос остается в силе.
-
>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;
-
> MsGuns (14.09.2009 09:02:04) [4]
А Clear для того, чтобы особо чисто было?
-
Нет, просто я сначала скопировал Add, а потом заменил на Text, а очистку, действительно лишнюю, выкинуть забыл :)
-
Кстати, советуется все же не ADOQuery использовать, а ADODataset
-
> YurikGL © (14.09.09 10:59) [7]
Вот именно поэтому и советуют выкинуть ADOQuery, что бы не давать возможности ряду ошибок, это не учитывает неэффективность использования ADOQuery - в некоторых случаях замена дает ускорение раза в два.
-
> GlowSolnce (14.09.09 08:47) [3]
А то, что ты текст запроса чистишь ПОСЛЕ установки значения параметра, это как ты думаешь, ничего не меняет?
-
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!