Показать сообщение отдельно
  #7  
Старый 11.11.2024, 21:58
Filen Filen вне форума
Прохожий
 
Регистрация: 23.05.2024
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Мозг уже набекрень с этими запросами..
Пошел другим путем , через временную таблицу

Код:
DataModule2.ADOQueryApteka.SQL.Clear;
DataModule2.ADOQueryApteka.Active:=False;
DataModule2.ADOQueryApteka.SQL.Add('SELECT * FROM [AptekaProdaga] WHERE [DataProdagi] BETWEEN DateEdit1.Date and DateEdit2.Date ORDER BY NamPreparat ASC');
DataModule2.ADOQueryApteka.Parameters.ParamByName('DateEdit1.Date').Value :=DateEdit1.Date;  /// Параметр D1 по умолчанию
DataModule2.ADOQueryApteka.Parameters.ParamByName('DateEdit2.Date').Value := DateEdit2.Date;   /// Параметр D2 по умолчанию
DataModule2.ADOQueryApteka.Active:=true;
DataModule2.ADOQueryApteka.First;

DataModule2.DAtaSourceAptVrem.DataSet.Open;
For i:=1 To kol Do Begin
 DataModule2.ADOQueryAptVrem.Insert;
    DataModule2.ADOQueryAptVrem.FieldByName('NamePrep').AsString:=DataModule2.ADOQueryApteka.FieldByName('NamPreparat').AsString;
      DataModule2.ADOQueryAptVrem.FieldByName('IdName').Value:=DataModule2.ADOQueryApteka.FieldByName('IdPrepar').Value;
         DataModule2.ADOQueryAptVrem.FieldByName('EdIzm').Value:=DataModule2.ADOQueryApteka.FieldByName('edIzm').Value;
            DataModule2.ADOQueryAptVrem.FieldByName('CenaEd').Value:=DataModule2.ADOQueryApteka.FieldByName('CenEd').Value;
               DataModule2.ADOQueryAptVrem.FieldByName('Obem').Value:=DataModule2.ADOQueryApteka.FieldByName('ObemEd').Value;
                  DataModule2.ADOQueryAptVrem.FieldByName('KolProd').Value:=DataModule2.ADOQueryApteka.FieldByName('KolProdano').Value;
                     DataModule2.ADOQueryAptVrem.FieldByName('ItogSumm').Value:=DataModule2.ADOQueryApteka.FieldByName('ItogoSum').Value;
DataModule2.ADOQueryApteka.Next;
end;
DataModule2.ADOQueryAptVrem.Post;

DataModule2.ADOQueryAptVrem.SQL.Clear;
     DataModule2.ADOQueryApteka.Active:=False;
       DataModule2.ADOQueryAptVrem.SQL.Add('SELECT * FROM   AptekaVremenn WHERE [NamePrep] LIKE' + QuotedStr('%'+nP + '%'));
            DataModule2.ADOQueryAptVrem.Active := True;
               DataModule2.ADOQueryApteka.EXECSQL;

ShowMessage('TÔ     '+IntTOStr(DataModule2.ADOQueryAptVrem.RecordCount)); //Результат

//Очищаем временную таблицу

With DataModule2.ADOQueryAptVrem do begin
DataModule2.ADOQueryAptVrem.SQL.Clear;
DataModule2.ADOQueryAptVrem.SQL.Text :='DELETE * FROM AptekaVremenn'; //удаляем SQL запросом. Намного быстрее.
Prepared :=True;
DataModule2.ADOQueryAptVrem.EXECSQL;
end;

//// Воссстанавливаем ADOQueryApteka ///////////////////
DataModule2.ADOQueryApteka.Close;
DataModule2.ADOQueryApteka.Open;
DataModule2.ADOQueryApteka.SQL.Clear;
DataModule2.ADOQueryApteka.Active:=False;
DataModule2.ADOQueryApteka.SQL.Add('Select*From AptekaProdaga Where idDat=:Id_Daty');
DataModule2.ADOQueryApteka.Active:=true;
/////////////////////////////////////////////////////////

Работает 1 проход, но если повторить ошибка ..
err.JPG
понимаю что где то туплю 'неподецки', совсем запутался где OPEN где EXECSQL, (смешались в кучу люди кони), не сочтите за труд
Ответить с цитированием