Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

Spike169



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При подключении базы данных появляется ошибка:
 
invalid request BLR at offset 139
function STRING_LENGTH is not defined
module name or entrypoint could not be found
 
Что это за ошибка и как с ней бороться?

Всего записей: 35 | Зарегистр. 04-10-2005 | Отправлено: 12:01 29-03-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Spike169
Может быть, библиотека с UDF, в которой должна находиться функция STRING_LENGTH, объявленная в базе, отсутствует на сервере

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 13:31 29-03-2006
Spike169



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
А где ее взять?

Всего записей: 35 | Зарегистр. 04-10-2005 | Отправлено: 13:53 29-03-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поставить IBExpert, подконнектиться к базе, выбрать в окне DataBase Explorer "Функции", doubleclick по  STRING_LENGTH, в открывшемся окне, в столбце имя  библиотеки будет название недостающей dll. Далее поиск по всей машине, если найдено, то скопировать в директорию \UDF, если нет - потребовать от разработчика БД.
P.S. Вообще-то в стандартной ib_udf.dll есть функция STRLEN.
 
Добавлено:
Spike169
Зачем посты дублировать? http://forum.ru-board.com/topic.cgi?forum=33&topic=6576#1
Да, после того как найдешь dll, необходимо снести IB 6.0 с машины и поставить либо FireBird 1.5.3, либо InterBase 7.5 c последним сервиспаком.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 15:15 29-03-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!
При добавлении записи, вернее при Посте выскакивает следующая ошибка:
Unsuccesfull execution caused by system error that doesnot preclude succesful execution of subsequent statements. Invalid transaction handle (excepting explicit transaction start)
 
Как с этим бороться?
Бывает, что при добавлени пяти, двадцати, одной записи.  
Но при этом практически всегда данные сохранются (как ни странно).
Delphi 7, FIBPlus, Firebird 1.5, Windows XP HE
Заранее спасибо.

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 15:03 12-07-2006
agny123

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну по ходу косяк с транзакцией, можно кусок кода?

Всего записей: 43 | Зарегистр. 11-07-2006 | Отправлено: 16:51 12-07-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добавил запись, Вызов формы (модально), заполнил поля, пост.
все самое, что ни есть простое.
Все это происходит на машине на которой стоит фаерберд, права у пользователя не админские. Решил, что проблема в компьютере, пытаюсь определить, с чем конфликтует. Права дал админские, жду результата.
На машине-клиенте (вторая) такого не происходит.
 
По ходу, еще вопросик.
Чем больше работаешь, тем сильнее тормозит машина, т.е. выборка данных просходит все медленнее и медленнее. Затем всем надоедает, выходят из программы (т.е. все коннекты закрывают) и запускают прогу заново, так и работают.
Как и это побороть?
Заранее еще раз спасибо.

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 18:04 12-07-2006 | Исправлено: Silla, 18:06 12-07-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Silla

Цитата:
nvalid transaction handle (excepting explicit transaction start)

Обычно такая ошибка возникает пр работе с одной тразакцией из разных нитей(threads).
т.е если  транзакция стартует, открывается датасет, а из другой нити транзакция коммитится/откатывается, то получим excepting explicit transaction start.
 

Цитата:
 Решил, что проблема в компьютере, пытаюсь определить, с чем конфликтует

Транзакция  ни с чем на компьютере(кроме твоего кода ) конфликтовать не может.
 

Цитата:
Чем больше работаешь, тем сильнее тормозит машина

Для начала посмотри не кончилась ли оперативка и что творится в Temporary directories FB.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 10:51 13-07-2006
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Silla

Цитата:
Чем больше работаешь, тем сильнее тормозит машина, т.е. выборка данных просходит все медленнее и медленнее. Затем всем надоедает, выходят из программы (т.е. все коннекты закрывают) и запускают прогу заново, так и работают.  

явная проблема утечки ресурсов. Ты гдето выделяешь память, или другие ресурсы, пользуешся, но не освобождаешь их. Ищи в своем коде, также читай доку на API на предмет автоматического выделения памяти и необходимости вручную ее освобождения.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 11:16 13-07-2006
agny123

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а если попробовать закрыть транзакцию когда начинает тормозить? скорее проблема в этом...

Всего записей: 43 | Зарегистр. 11-07-2006 | Отправлено: 12:44 13-07-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо. Проверю с понедельника.
Огромное спасибо Всем.

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 18:45 13-07-2006
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При первом подключении к базе данных заметно сильное торможение. Потом все Ок!
Сервер - Yafil, операционка XP. В FAQ вычитал что может помочь переименование расширения базы gdb на что нибудб другое - не помогло. Кто нибудь встречался с подобной проблемой?

Всего записей: 262 | Зарегистр. 18-02-2002 | Отправлено: 12:14 19-07-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowMen
Подключение по сети или локально?
 
Попробуй выключить восстановление системы...
 
Добавлено:
А еще фаервол XP-вый можно попробовать отключить

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 12:19 19-07-2006
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vshersh
Подключение локально. Фаерволы - отключал, не помогает. Попробую отключить восстановление системы

Всего записей: 262 | Зарегистр. 18-02-2002 | Отправлено: 15:02 19-07-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowMen
Вот еще нашел в факе

Цитата:
медленный (долгий) коннект на Win2003
Это происходит только на старых версиях IB/FB/YA, например Interbase 6, Firebird 1.0.x. Причина - изменения в ядре Win2003, в результате чего существующие ошибки синхронизации в коде IB/FB/YA стали проявляться в виде очень долгого коннекта (20 секунд и более).
 
Избавиться от этой проблемы можно либо переходом на InterBase 7.1, Firebird 1.5, последнюю версию Yaffil, или возвратом на Windows 2000.

Написано для 2003 сервера... Но возможно актуально и для XP SP2

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 15:22 19-07-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!
Проблема "медленной" выборки осталась, но есть дополнения.
Исходные данные:
TpFIBDatabase - есть транзакция по умолчанию и на обновление
TpFIBDataSet: tFolder, tDoc - подчиненная
на каждую есть своя транзакция на чтение и запись (на фоме: слева дерево папок, справа писок документов принаджлежащие выбранной папке)
tTheme, tTypeDoc - вставляются в tDoc - есть транзакция общая для чтения
У всех TpFIBDataSet - AutoCommit := True;
При коннекте и последующем открытии таблиц всё вроде идет нормально.
Но как только добавляю запись (tDoc), то сразу после этого просходит торможение (медленна выборка списка документов при выборе другой папки).
Например:
TransWriteDoc.StartTrans;
tDoc.Append;
Modal := TFrmDoc.Create(Application);
if Modal.ShowModal = mrOK then
begin
  tDoc.Post;
  //TransWriteDoc.Commit;
end
else
begin
  tDoc.Cancel;
  TransWriteDoc.Rollback;
end;

Подскажите, где я что-то делаю не так.
Заранее спасибо.
 
Добавлено:
Теперь какая-то другая фича
При коннекте, выдает, что имя и пароль неправильные

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 10:45 25-07-2006 | Исправлено: Silla, 11:55 25-07-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Silla
Эээ..ммм.. что-то мне подсказывает солдатская смекалка, что  
tDoc.UpdateTransaction <>  TransWriteDoc.
Иначе при включенном автокоммите у tDoc (что не есть хорошо)

Код:
 
  tDoc.Post;  
  TransWriteDoc.Commit;
 

Вызовет ошибку, так как tDoc.UpdateTransaction УЖЕ закоммитилась  и неактивна.
P.S.
 Или автокоммит все-таки отключен?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 11:13 25-07-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да уж, действительно лишний Коммит
Исправил.
tDoc.UpdateTransaction =  TransWriteDoc
Так вот, после аппенда уже не важно, запостил запись или отменил
Все равно тормозит, т.е. при открытии таблиц вначале, время выборки 0,5-1с
после аппенда - 4-10с

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 12:02 25-07-2006 | Исправлено: Silla, 12:05 25-07-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Да уж, действительно лишний Коммит

И там же лишний RollBack Хотя мне непонятно как оно раньше работало, exception'ы должны были  валиться на каждый Post/RollBack. Ну да ладно.
Насчет "торможения". Вариантов слишком много. Пройдись отладчиком, посмотри в каком месте программа встает, если в явном виде точку не найдешь, зацепи FIBSQLMonitor и посмотри чего ты шлешь на сервер. Но очень похоже на то, что при переходе на другую папку выполняется куча "лишних" действий, типа  переоткрытия большого количества датасетов.
Если при коннекте говорит, что имя/пасс неправильные, значит так оно и есть.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:54 25-07-2006
Silla



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
По поводу старта, коммита и роллбэка - пыталс переделать по явной транзакции.
Да осталось ... после этого
Если Роллбэк не выполнять, у меня в гриде остается строка, как будто  пытался всётаки добавить запись.
По поводу имя/пасс не знаю что произошло,
Переставил firebird и всё вернулось на свои места.
По поводу монитора посмотрю уже завтра.
Спасибо, что не оставили утопающего.
Пытаюсь плавать, а ласты еще не нарастил.

Всего записей: 244 | Зарегистр. 18-11-2004 | Отправлено: 18:40 25-07-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru