labslo |
Отправлено: 11.08.2003, 14:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Была у меня программа написанная с помощью BDE. Решил ее перенести на dbexpress перенос осуществил как написано на http://www.ibase.ru .
Да вот что то уж очень медленно работает.
Конфигурация: сервер — MS W2K AS + Interbase 6.0.1
клиент — Win2k prof
пример кода
.........
DMI1->tcoper->Active=true; // Или Open();
//между этими операторами проходит мин 1-3.
DMI1->tcoperDS->CommandText = "select * from TC_OPER where F_NAME='xxxx '";
DMI1->tcoperDS->Open();
if (DMI1->tcoperDS->RecordCount !=0) // выполненеие этого оператора занимает 2-3 мин.
fownerTCOPER=DMI1->tcoperDS->Fields->Fields[2]->AsInteger;
DMI1->tcoperDS->Close();
DMI1-Data module
tcoper — table
tcoperDS — dataset
Далее я открываю еще где-то 10-20 таблиц и открытие их занимает более 1 часа.
В чем может быть проблема ? |
|
SEDEGOFF |
Отправлено: 12.08.2003, 07:04 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
пробле у тебя в машине так как dbexpress являються самыми быстрыми компонентами
Но для потверждения этого попробуй запустить тоже самое на компонентах со странички InterBase |
|
labslo |
Отправлено: 12.08.2003, 07:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Вечером дома так и начал делать.
Похлже у меня проблема с сетью на работе. |
|
Nick |
Отправлено: 12.08.2003, 08:48 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
При открытии таблицы
Active = True
IBase клиент забирает с сервера только часть данных,
где-то несколько первых записей
(по моему установлено переменной BufferChunks в IBX)
командой
(DMI1->tcoperDS->RecordCount !=0)
ты заставляеш клиента IBase забрать с сервера все данные
Вообще лучше забыть компонент Table и пользоваться IBQuery
Запрос — select count(*) from TC_OPER where F_NAME='xxxx '
выполниться гораздо быстрее.
Сервер подсчитает записи и вернет клиенту только количество.
|
|
SEDEGOFF |
Отправлено: 12.08.2003, 12:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Ну тогда уж IBSQL — он намного быстрее IBQuery
а строка DMI1->tcoperDS->RecordCount !=0 не заставляет его забирать все данные |
|
labslo |
Отправлено: 12.08.2003, 16:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Переписал все на IBX 6.08 все работает.
|
|
LeeMouse |
Отправлено: 04.09.2003, 11:35 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 79
|
IBX + Interbase == ОТСТОЙ!!!
Firebird + FIBPlus == RULEZZ!!! (и никаких тормозов) |
|
labslo |
Отправлено: 16.09.2003, 11:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
QUOTE |
IBX + Interbase == ОТСТОЙ!!!
Firebird + FIBPlus == RULEZZ!!! (и никаких тормозов)
|
Да Только у меня база не моя, т.е. я вынужден дорабатывать чужой проект к которому есть свой интерфейс а мне в их базу надо данные записать |
|