Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ODAC, зависает приложение при прокрутке 
:(
    Опции темы
ТоляМБА
Дата 29.1.2015, 16:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



AndreyZ53, попробуй этот же запрос выполнить на OraQuery2
Цитата(AndreyZ53 @  29.1.2015,  18:30 Найти цитируемый пост)
OraQuery1.SQL.Add('SELECT MAIL.*,KOMFORT.* FROM MAIL LEFT JOIN KOMFORT ON MAIL.ID_MAIL=KOMFORT.JARLIK WHERE MAIL.dt_form between'+''''+DateToStr(myDateDec)+''' and '+''''+DateToStr(myDate)+''' and MAIL.TYP>=29 and MAIL.TYP<=34');

И два совета:
1. Вместо +''''+DateToStr(myDate)+''' можно использовать +QuotedStr(DateToStr(myDate))+
2. Вместо and MAIL.TYP>=29 and MAIL.TYP<=34 можно тоже использовать Between
PM   Вверх
AndreyZ53
Дата 29.1.2015, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 22.8.2008

Репутация: нет
Всего: 2



ТоляМБА, В другом OraQuery выполняется норм запрос, но у меня один Dbgrid, в котором и нужно отображать различные данные. Я думаю к DataSource подключать разные OraQuery не совсем правильно будет!
--------------------
https://itbases.ru/
PM MAIL WWW Skype   Вверх
superVad
Дата 29.1.2015, 17:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Цитата(ТоляМБА @  29.1.2015,  15:54 Найти цитируемый пост)
1. Вместо +''''+DateToStr(myDate)+''' можно использовать +QuotedStr(DateToStr(myDate))+2. Вместо and MAIL.TYP>=29 and MAIL.TYP<=34 можно тоже использовать Between

Еще можно использовать параметры.
PM MAIL   Вверх
AndreyZ53
Дата 30.1.2015, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 22.8.2008

Репутация: нет
Всего: 2



superVad
ТоляМБА,

Спасибо за дополнения и разъяснения, но может знает, почему я не могу использовать один и тот же OraQuery для разных запросов. OraSession у меня одна, может там что с транзакциями надо делать, типа закрывать их. Не совсем все понятно!
--------------------
https://itbases.ru/
PM MAIL WWW Skype   Вверх
Vas
Дата 31.1.2015, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Никогда проблем с выполнением разных запросов в одном OraQuery не было.
Вот разные процедуры используют один и тот же OraQuery для выполнения разных запросов
Код

Function TForm1.CheckRole(const Role:string):Boolean;
Begin
...
  with OraQueryUser do
    begin
      SQL.Clear;
      SQL.Add('select role as con from session_roles where role='+QuotedStr(Role));
      try
        Open;
        if RecordCount>0 then
          begin
            Result:=True;
            Exit;
          end;
      except
...
      end;
      Close;
    end;
End;

Procedure TForm1.CheckUserPrivs(const AUserName: string);
var i:integer;
Begin
...
  with OraQueryUser do
    begin
      SQL.Clear;
      SQL.Add('select up.* from user_privs up, users u where up.id_users=u.id and u.u_locked=''F'' and u.username=:USERNAME');
      Params.ParamByName('USERNAME').AsString:=AUserName;
      try
        Open;
      except
        on E:Exception do
...
      end;
      First;
      while not Eof do
        begin
...
           Next;
        end;
      Close;
    end;
End;

Очищаем, добавляем текст запроса, выполняем, делаем манипуляции, закрываем.
Код не весь, часть блоко выкинута и заменена "..."


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
AndreyZ53
Дата 11.2.2015, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 22.8.2008

Репутация: нет
Всего: 2



Vas, я делаю почти тоже самое, только запрос у меня записан в самом компоненте. Вот:

Код

SELECT MAIL.*,KOMFORT.* FROM MAIL 
LEFT JOIN KOMFORT ON MAIL.ID_MAIL=KOMFORT.JARLIK 
WHERE MAIL.dt_form between :date1 and :date2 and MAIL.TYP>=29 and MAIL.TYP<=34


У компонента выставлены свойства AutoCommit и AutoClose в True, на одну кнопку стоит такой код:

Код

    OraQuery1.ParamByName('date1').Value:=FirstDay1;
    OraQuery1.ParamByName('date2').Value:=LastDay1;
    OraQuery1.Execute;


Когда запрос выполнился, я нажимаю на другую кнопку, на которую передаются другие параметры, но приложение просто виснет. Может еще что-то надо выставить в компоненте OraQuery, как настройки и свойства
--------------------
https://itbases.ru/
PM MAIL WWW Skype   Вверх
Vas
Дата 11.2.2015, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Open для конструкций SELECT
Execute для конструкций INSERT, UPDATE, DELETE

Закрывайте открытый запрос перед передачей других параметров
Код

    if OraQuery1.Active then OraQuery1.Close; //если запрос открыт, то закрываем 
    //а потом уже передаем новые параметры и выполняем
    OraQuery1.ParamByName('date1').Value:=FirstDay1;
    OraQuery1.ParamByName('date2').Value:=LastDay1;
    OraQuery1.Open;


Это сообщение отредактировал(а) Vas - 11.2.2015, 14:28


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
AndreyZ53
Дата 17.2.2015, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 22.8.2008

Репутация: нет
Всего: 2



Vas, Делаю как Вы написали, вот такой вот эррор:



Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  error.JPG 17,19 Kb
--------------------
https://itbases.ru/
PM MAIL WWW Skype   Вверх
salik
Дата 17.2.2015, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 28.1.2011

Репутация: нет
Всего: 1



Цитата(AndreyZ53 @ 17.2.2015,  10:08)
Делаю как Вы написали, вот такой вот эррор:

Для начала попробуйте разобраться на какой именно строчке кода выходит ошибка.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.