Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Open" работает очень медленно, в чем проблема не могу понять! помогите! 
:(
    Опции темы
murod
Дата 25.11.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 17.9.2005
Где: Uzbekistan/Tashke nt

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



Извените за ламерский вопрос,  первый раз сталкиваюсь FireBird ом, до этого работал на MYSql, MsSql но там таких проблем не было. Работаю на delphi7
использую компоненты InterBase. Проблема втом что Select запрос выполняется очен медленно, 
делаю так:
Код

IBFooter:TIBQuery;
********************************************
//1-Sql запрос
footerexec:='select * from Q_X_K2006 where id=1' 
datamodule.IBFooter.SQL.Clear;
 datamodule.IBFooter.SQL.Text:=footerexec;
 if datamodule.IBFooter.Active then datamodule.IBFooter.Close;
 dmMain.IBFooter.Open;

//2-Sql запрос
footerexec:='select * from Q_X_K2006 where id=2' 
datamodule.IBFooter.SQL.Clear;
 datamodule.IBFooter.SQL.Text:=footerexec;
 if datamodule.IBFooter.Active then datamodule.IBFooter.Close;
 dmMain.IBFooter.Open;

//3-Sql запрос
footerexec:='select * from Q_X_K2006 where id=3' 
datamodule.IBFooter.SQL.Clear;
 datamodule.IBFooter.SQL.Text:=footerexec;
 if datamodule.IBFooter.Active then datamodule.IBFooter.Close;
 dmMain.IBFooter.Open;

Всего на 3 запроса уходит примерно 10 секунд, firebird установлен на локалке.

а просто datamodule.IBFooter.ExecSql работает быстро,
Тогда Select не работает, работает тока когда делаю Open,
не могу понять в чем проблема что я делаю не правильно?
 Помогите!

Это сообщение отредактировал(а) murod - 25.11.2006, 11:03
--------------------
Люди всего мира берегите природу!  
PM MAIL ICQ   Вверх
TaNK
Дата 25.11.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а расскажи как ты работаешь c FB через интеребейс, я попробывал и у меня не получилось - IBdatabase ругается что не ту базу подключаю к ней (*.fdb) или ты как то по другому делаешь а?


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
murod
Дата 25.11.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 17.9.2005
Где: Uzbekistan/Tashke nt

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



просто делаю так
ibDB: TIBDatabase;
ibTran: TIBTransaction;
Код

with fmMain do
 begin
   ibTran.Active:=false;
   ibDB.Connected:=false;
   ibDB.DatabaseName:=Path_BD;
   ibDB.Params.Clear;
   ibDB.Params.Add('user_name='+User_Name);
   ibDB.Params.Add('password='+Password);
   ibDB.Params.Add('lc_ctype=WIN1251');
   ibDB.Connected:=True;
   ibTran.Active:=True;
end;


Добавлено @ 12:02 
а как по другому коннектится к FB?
Path_BD это у меня путь к файлу базы, напримерsmile:\projects\qxk\Tvqxk.gdb
--------------------
Люди всего мира берегите природу!  
PM MAIL ICQ   Вверх
TaNK
Дата 25.11.2006, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(murod @ 25.11.2006,  11:58)
просто делаю так
ibDB: TIBDatabase;
ibTran: TIBTransaction;
Код

with fmMain do
 begin
   ibTran.Active:=false;
   ibDB.Connected:=false;
   ibDB.DatabaseName:=Path_BD;
   ibDB.Params.Clear;
   ibDB.Params.Add('user_name='+User_Name);
   ibDB.Params.Add('password='+Password);
   ibDB.Params.Add('lc_ctype=WIN1251');
   ibDB.Connected:=True;
   ibTran.Active:=True;
end;


Добавлено @ 12:02 
а как по другому коннектится к FB?
Path_BD это у меня путь к файлу базы, напримерsmile:\projects\qxk\Tvqxk.gdb

всё понял и если Patch_Db поменять на D:\projects\qxk\Tvqxk.fdb так работать будет если предварительно создать с таким раширением базу?


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Romkin
Дата 25.11.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 14.11.2006
Где: Москва

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



Цитата(TaNK @  25.11.2006,  12:31 Найти цитируемый пост)
всё понял и если Patch_Db поменять на D:\projects\qxk\Tvqxk.fdb так работать будет если предварительно создать с таким раширением базу?

Расширение файла БД может быть любым! fdb - просто соглашение.

murod,  проблема, тут, скорее всего в том, что постоянно открывается заново коннект к БД, и расширение файла - gdb. Это расширение зарезервировано в ХР как требующее сохранение бекапа для восстановления системы.
Иначе я не могу объяснить таких задержек.
Надо сменить расширение, обеспечить постоянный коннект, и все-таки пользоваться параметрами! Что за привычка постоянно писать запрос заново! Не говоря уже о том, что это неудобно и медленно работает, так это еще и небезопасно.
И проверять Active после того, как вызвал SQL.Clear - бесполезно ;)
и вместо 
Код
if datamodule.IBFooter.Active then datamodule.IBFooter.Close;

вполне можно записать
Код
datamodule.IBFooter.Active :=False;

в точности с тем же результатом!
Ну и тд... Посмотри, куча статей в сети о том, как программировать для IB
PM ICQ   Вверх
Alex
Дата 27.11.2006, 04:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



я надеюсь индекс создан на поле id в таблице Q_X_K2006 smile 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

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

1. Версию InterBase (Firebird, Yaffil)

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

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

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


 




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


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

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