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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
 
не советовал бы использовать UDF если можно обойтись родными средствами сервера,
а RFUNC тем более не советую, старая эта либа уже
современная замена RFUNC - AUDFL https://www.assembla.com/spaces/audfl_rfunc/documents

Всего записей: 983 | Зарегистр. 30-05-2002 | Отправлено: 22:18 11-02-2014
YuriyRR



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

Цитата:
современная замена RFUNC - AUDFL

Спасибо, посмотрим.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 01:28 12-02-2014
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
noisy
мне пока ничего не угрожает, т.к. базу я почистил несколькими запросами, а далее данные в базу уже будут попадать, в предназначенное поле, очищенными. Очисткой будет заниматься js или php. Но за советы, в любом случае, благодарю.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 09:04 12-02-2014
Chandr24



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Установил Interbase XE3 Developer Edition. Сервер Interbase нормально работает, с помощью IBConsole создал свою базу данных, подключился к ней и таблицы посмотрел.
Но в среде RAD Studio XE5 с помощью компонента TIBDatabase подключиться к БД не получается, "unavailable database".
Если программу запустить из под среды (под отладчиком или без), то БД тоже не открывается с тем же сообщением.
Если же программу запустить значком с рабочего стола, то все ОК, база открывается и редактируется.
user_name и password и в параметры TIBDatabase заносил, и руками указывал - результат не меняется.
Подскажите, как справиться с проблемой, а то без среды отлаживаться тяжело.

Всего записей: 21 | Зарегистр. 07-09-2010 | Отправлено: 16:05 19-02-2014 | Исправлено: Chandr24, 16:11 19-02-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Chandr24
Клиентская dll должна быть видна ну и под 7кой host нужно указывать. по крайней мере localhost

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 19:34 19-02-2014
Chandr24



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
"Клиентская dll" (gds32.dll если я правильно понял),  разумеется, видна, ведь запущенная не из-под среды программа с ней нормально работает. У меня установлена Windows 8, только я не понял, где именно "host нужно указывать. по крайней мере localhost" и зачем? Можно чуть-чуть подробнее?

Всего записей: 21 | Зарегистр. 07-09-2010 | Отправлено: 09:15 20-02-2014 | Исправлено: Chandr24, 09:17 20-02-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Chandr24
 SERVER:G:\BASES\BASЕ.FDB - пример коннекта к WIN
 SERVER:/usr/bases/base.fdb - пример коннекта к LINUX
 localhost:g:\!BASES\base.fdb локальный компьютер
 KVARTP/3060:c:\PASSPORT\BASE\base.FDB на другой порт
 

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 16:46 20-02-2014
Chandr24



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

Цитата:
YuriyRR
 SERVER:G:\BASES\BASЕ.FDB - пример коннекта к WIN
 SERVER:/usr/bases/base.fdb - пример коннекта к LINUX
 localhost:g:\!BASES\base.fdb локальный компьютер
 KVARTP/3060:c:\PASSPORT\BASE\base.FDB на другой порт  

Уважаю ! Спасибо огромное, после дописывания префикса localhost: действительно заработало!

Всего записей: 21 | Зарегистр. 07-09-2010 | Отправлено: 08:05 21-02-2014 | Исправлено: Chandr24, 08:51 21-02-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Аномальный день. 2 глюка FB сервера за 2 часа.
1) Выяснили LEFT JOIN возвращает то что должен возвращать JOIN. Он действительно склеивает обе таблички. JOIN возвращает пусто, хотя нулевая запись есть и везде стоят нули. Я сделал вывод что кривой индекс и прописал Бэкап-Рестор. Бекап-Рестор действительно помог, но я понял, что JOIN и LEFT JOIN это два разных алгоритма!...
 
2) Баг с Доменами. Другой программист добавил два INT NOT NULL DEFAULT 0 CHECK >=0  поля в табличку, которая без триггеров, без PRIMARY KEY без форейнов без индексов без BLOB полей! После этого, когда редактируем данные и Post, а не Commit - вылетает ошибка "BLOB field not found". Этого глюка я вообще не понял и прописал - убить оба поля и создать заново. - Ошибка исчезла!...
 
3) У меня был трамвайный билет номер 133368 - и компьютер работал без капризов.
 
 
У меня два вопроса
- Что такое ошибка "BLOB field not found".
и
- Правда ли что JOIN и LEFT JOIN два разных алгоритма?
 
Добавлено:
ps (при LEFT JOIN тоже используются индексы)

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 18:16 25-02-2014
ant0ni02004

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

Цитата:
Правда ли что JOIN и LEFT JOIN два разных алгоритма?

именно этот вопрос здесь недавно обсуждался, полистайте пару страниц назад

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 18:51 25-02-2014
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
 
о "BLOB field not found"
 
я думаю без схемы БД и запросов никто помочь не сможет.
 
по JOIN можно почитать на wiki http://ru.wikipedia.org/wiki/Join_%28SQL%29
а вот еще и в картинках http://www.k-press.ru/cs/2009/3/join/join.asp  
 
 JOIN и LEFT JOIN  - разные алгоритмы

Всего записей: 983 | Зарегистр. 30-05-2002 | Отправлено: 18:53 25-02-2014 | Исправлено: noisy, 18:55 25-02-2014
xpin2013



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

Цитата:
я думаю без схемы БД и запросов никто помочь не сможет.  

Когда в табле нет примари, то IBExpert генерит на редактирование запрос
Update where Все филды = старые филды.
Таблица
  id = domen int
  name = varchar правильный коллате
  addFild1 = domen int
  addFild2 = domen int.
 

Цитата:
я думаю без схемы БД и запросов никто помочь не сможет.  

Нет запросов - редактируем в IBExpert. Я Вам таки скажу - это глюк доменов, не первый раз.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:54 25-02-2014
ant0ni02004

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

Цитата:
это глюк доменов, не первый раз

backup+restore может помочь в этой ситуации

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 22:38 25-02-2014
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
Очень похоже на неудачную попытку залезть в системные таблицы, при изменении домена, IBE раньше этим грешил, сейчас не знаю. Нужно внимательно смотреть на формируемый запрос при изменении метаданных и  избегать запросов типа

Код:
update RDB$FIELDS set ...
 

 

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 09:26 26-02-2014
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
Да, да. Но только он не лазил в RDB. Просто они (системные таблицы) были включены для просмотра. Бэкап-рестор не понадобился, мы просто удалили оба филда и создали их заного. Но глюк с доменами видимо бывает, я как то создал NOT NULL филд и после ошибки обнаружил, что в этом поле записи NULL. Когда я не использую доменов ничего подобного не происходит.
 
Добавлено:
OXDBA
А можно ли в системных таблицах хранить свои данные? Всего спрятать ключик к базе - пометить.
 
Добавлено:
Решил сам проверить - изначально глупая затея была у моих коллег. При первом же backup-restore вся системная информация теряется. Это техподдержка будет вынуждена мучатся очень сильно.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 12:38 26-02-2014
OXDBA

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

Цитата:
Да, да. Но только он не лазил в RDB.

Туда IBE сам может залезть, например при изменении размера поля или домена типа varchar из интерфейса IBE

Цитата:
А можно ли в системных таблицах хранить свои данные? Всего спрятать ключик к базе - пометить.  

Не надо туда пока лазить, а ключик можно и в обычной таблице "спрятать", среди 1-2 млн. "мусорных записей", хотя при желании, в FB можно найти все.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:27 26-02-2014
xpin2013



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

Цитата:
например при изменении размера поля  

Я думаю он изменил Integer на домен NUM_INT
 

Цитата:
Не надо туда пока лазить


Цитата:
а ключик можно и в обычной таблице "спрятать",  

Вы правы, нутром чувствую - правы. Про ключик - это у них один клиент скопировал базу и поставил в другой торговой точке. Скопировались все дисконтные накопления и после обмена все накопления удвоились))). Ну так это решается совершенно другими путями, - ключ вообще не надо прятать - хранить хоть в INI файле и делать его хардваре зависимым. В общем спасибо, у нас всё решилось.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 17:50 26-02-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как узнать тип параметра в запросах типа
если заранее неизвестен текст запроса
SELECT * FROM TABLE WHERE FL STARTING WITH : PRM
WHERE UPPERCASE(FL) = : PRM
WHERE FUNC(FLD) = : PRM

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 02:05 06-03-2014 | Исправлено: YuriyRR, 02:05 06-03-2014
ant0ni02004

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
думаю, что для этого придётся парсить SQL и вытягивать всю информацию из RDB*

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 03:46 06-03-2014
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот IB Expert ,к примеру, определяет что для
WHERE CAST(ROUND(N_OTOPL,0) AS INTEGER) = : PRM  
параметр интегер
а для  
WHERE ROUND(N_OTOPL,0) = : PRM  
даубл

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 05:42 06-03-2014 | Исправлено: YuriyRR, 05:43 06-03-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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