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

Вниз

Ошибка при вызове ADOQuery   Найти похожие ветки 

 
al_tor   (2006-08-09 08:46) [0]

Имеется следующая финкция

function TForm1.OstCl(SAcc:String):Real;
Var SQL_K: TStringList;
begin
SQL_K:=TStringList.Create;
ADOQDBF.Active:=False;
SQL_K.ADD("SELECT * FROM BILLOST");
SQL_K.ADD("WHERE BILL_KL="""+SAcc+"""");
ADOQDBF.Active:=TRUE;
if ADOQDBF.RecordCount<>0 then
  begin
   ADOQDBF.First;
   Result:=ADOQDBF.FieldValues["SUM_OST"];
  end
 else Result:=0;
 
ADOQDBF.Active:=False;
end;

ADOCDBF: TADOConnection;
ADOQDBF: TADOQuery;

ADOCDBF.ConnectionString= "Provider=VFPOLEDB.1;Data Source=C:\Program Files\Borland\Delphi7\Projects\VipMon;Password="";Collating Sequence=MACHINE"

Функция вызывается в цикле. Во время второго
запуска - вываливается ошибка "Текущий
проводник не поддерживает возврат нескольких
наборов записей в результате одной операции"

Подскажите, пожалуйста, где я ошибся.


 
Sergey13 ©   (2006-08-09 08:55) [1]

Не понял, зачем писать запрос в какую-то переменную, а не в свойство кверика?


 
al_tor   (2006-08-09 09:01) [2]

Это "хвосты" остались. Вылетает все равно в строке "ADOQDBF.Active:=TRUE;"


 
al_tor   (2006-08-09 09:08) [3]

Все, понял - я перед каждым следующим вызове ADOQDBF.SQL не очищал, а пихал туда новый запрос.


 
Sergey13 ©   (2006-08-09 09:09) [4]

> [2] al_tor   (09.08.06 09:01)
Ты предлагаешь нам твои хвосты обрубать?

> Вылетает все равно в строке "ADOQDBF.Active:=TRUE;"

Потому, что текста запроса в нем нет, подозреваю.


 
ANB ©   (2006-08-09 09:31) [5]


> Потому, что текста запроса в нем нет, подозреваю.

Потому, что на следующем проходе там уже 2 запроса :)


 
MsGuns ©   (2006-08-09 16:48) [6]

Вместо зубодробительного

SQL_K.ADD("SELECT * FROM BILLOST");
SQL_K.ADD("WHERE BILL_KL="""+SAcc+"""");

следует писать по-грамотному:

with ADOQDBF do
 try
  if Active then Close;
  SQL.Text := "SELECT * FROM BILLOST WHERE BILL_KL=:psacc";
  Parameters.ParamByName("psacc").Value := SAcc;
  Open;
  FetchAll;   // Может быть нужен, если НД не отображается
  if RecordCount>0 then
    ....
  Close;
 except
  ShowMessage("Не сложилось ;(");
 end;

И еще. Созданные в ране списки, ка и прочие объекты, под которые выделяются ресурсы, надо прибивать перед выходом из процедур (закрытии форм) в обязательном порядке !



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

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

Наверх




Память: 0.48 MB
Время: 0.039 c
15-1158243464
iamdanil
2006-09-14 18:17
2006.10.08
Как сохранить ьекстовый файл на сониериксон к300?


15-1158673674
DillerXX
2006-09-19 17:47
2006.10.08
Возможно ли найти что-то новое?


15-1158217210
Kolan
2006-09-14 11:00
2006.10.08
Смотрели новое шоу "Красавицы и Умники" на РенТВ?


15-1158259297
Владимир_мпп
2006-09-14 22:41
2006.10.08
MS Excel


3-1155059935
GrandHiew
2006-08-08 21:58
2006.10.08
Вторичный индекс в Paradox