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

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

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

Shaman2

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

Цитата:
Он то выложил. но развитием не занимается  

 
Хорошо хоть так работает. А что не так в выложенных?

Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 09:39 26-09-2018
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да я тут на досуге фибы правил чтоб  условие
WHERE  ((H.DT >= : DT_FROM) OR (:DT_FROM IS NULL))
из запроса выполнялось. сейчас пишет неизвестный параметр.  
хотел запостить, чтоб модифицированные версии не плодить.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 10:59 26-09-2018 | Исправлено: YuriyRR, 11:00 26-09-2018
noisy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
оформляйте как Pull request на гитхабе. если автор в ветку не примет, так хоть другие узнают о фиксе

Всего записей: 983 | Зарегистр. 30-05-2002 | Отправлено: 14:13 26-09-2018
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть процедура входной параметр NUMERIC(16,2)
в FIBquery пишу select * from procedure(:PRM)
после prepare в параметрах показывает тип INT64 и precision -2.
есть ли какая нибудь возможность узнать что это NUMERIC ?
expert как-то узнаёт.. кто в курсе?
 

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 05:50 01-10-2018
TuMOXA123

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

Цитата:
expert как-то узнаёт.. кто в курсе?  

Смотрите RDB$PROCEDURES и RDB$PROCEDURE_PAREMETERS
Предварительно DB эксплорере нужно включить отображение системных таблиц

Всего записей: 456 | Зарегистр. 27-01-2003 | Отправлено: 14:18 01-10-2018
Neogar

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

Цитата:
 Раньше была бесплатна для СССР (Если в windows language for non unicode programms русский или/и настройки локали (не интерфейса) русские). Теперь не знаю  

 
Пока еще бесплатная.
По ссылкам доступна IBExpert Version 2018.9.24

Всего записей: 197 | Зарегистр. 03-09-2004 | Отправлено: 21:09 04-10-2018
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В MySQL есть такой фокус:
SELECT * FROM `House` ORDER BY (`HOUSENUM`+0)
Получаются стройные выборки, типа такой:
1
2

3
4
5

6
8
9
10
10А
 
Как-то можно повторить этот трюк в Firebird?

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 19:52 26-10-2018
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я UDF использую
long EXPORT fn_num_extr(ARG(char*, s))
ARGLIST(char *s)
{
    unsigned char *c = s;
    long res = 0;
 
    while(*c && !isdigit(*c)) c++;
    sscanf(c, "%ld", &res);
 
    return res;
}
 
SELECT ... ORDER BY NUM_EXTR(HOUSE), HOUSE

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 23:45 26-10-2018 | Исправлено: YuriyRR, 23:53 26-10-2018
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ого! Как-то уж очень сурово.
 
Пока решил таким образом:
create collation ns_coll for utf8 from unicode case insensitive 'NUMERIC-SORT=1';
create table house(housenum varchar(10) character set utf8 collate ns_coll);
 
Вроде, работает. Причём, даже чуть лучше, чем +0 в MySQL.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 10:05 27-10-2018
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
 
Омг, тебе нужна натуральная сортировка по числам и ты используешь NUMERIC-SORT??
Ну, оно для этого и создано, что может быть лучше? :) Правда, местами глючит.
 
В моих кейсах (один раз записал 100500 раз прочитал) лучше получалось, когда есть отдельное поле для сортировки. Его и сформировать на клиенте можно насколько угодно замысловато, и вручную подправить, если что (при прочих равных вывести заведомо более актуальный результат вверх). Ну и свой внутренний демон оптимизации не любит лишней обработки при каждой выборке.

Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 14:43 27-10-2018
rudava



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен ODBC драйвер для intebase 6.5, у кого есть (разумеется бесплатный вариант)

Всего записей: 33 | Зарегистр. 26-01-2007 | Отправлено: 15:55 31-03-2019
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как найти дату конца недели, т.е. дату воскресенья?
Firefird 3.
 
 
Спасибо
 
Добавлено:
 

Код:
DATEADD(DAY, 6 - MOD(EXTRACT(WEEKDAY FROM D) + 6, 7), D);


----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:27 06-01-2020
noisy

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

Всего записей: 983 | Зарегистр. 30-05-2002 | Отправлено: 11:03 14-05-2020
protman



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

Цитата:
Пока еще бесплатная.
По ссылкам доступна IBExpert Version 2018.9.24
Доступна IBExpert Version 2020.5.19.1

Цитата:
 
IB Expert - The Most Expert for IInterBase and Firebird
Copyright (C) 2000-2020 IBExpert Ltd
All rights reserved.
 
Если вы читаете этот текст, значит на вашем компьютере установлена
кодовая страница WIN1251. А это в свою очередь означает, что вы вправе
использовать этот продукт совершенно бесплатно.
 
В любом случае, вы всегда можете помочь нам своими советами
по улучшению продукта, баг-репортами и новыми идеями.

Всего записей: 1444 | Зарегистр. 20-05-2003 | Отправлено: 12:25 22-05-2020 | Исправлено: protman, 12:31 22-05-2020
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, понадобилось опустить версию БД FireBird с 3.0 до 2.5. Самый рабочий вариант оказался взять утилиту gbak от версии 2.5 и ей сделать копию базы 3.0  и восстановить ее на сервер 2.5. Но при ресторе получаю ошибку : ERROR:invalid request BLR at offset 8052; BLR syntax error: expected valid BLR code at offset 8053, encountered 203. При этом восстановление переносит все таблицы, а спотыкается на VIEW.
Все остальные рассмотренные варианты тормозят процесс восстановление на старте и пишут  : unsupported on-disk structure for file C:\MyBase.FDB; found 12.0, support 11.2.

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 17:56 15-06-2020
TuMOXA123

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

Цитата:
3.0  и восстановить ее на сервер 2.5

Возьмите IBExpert, сделайте извлечение данных и meta данных в скрипт, который можно и отредактировать, если вдруг что

Всего записей: 456 | Зарегистр. 27-01-2003 | Отправлено: 18:44 15-06-2020
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как извлечь meta в скрипт знаю, а как просто данные не знаю...😔. Не подскажете?

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 19:01 15-06-2020
TuMOXA123

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В IBExpert в меню  Tools -> Extract metadata не выбирайте объекты метаданных, а идите на закладку Data и выберите там все (или нужные) таблицы с данными.
 
Мне думается то, что у вас gbak позволяет что-то из версии 3 восстановить в версию 2.5 - это скорее баг и кроме invalid request BLR могут быть другие скрытые проблемы.

Всего записей: 456 | Зарегистр. 27-01-2003 | Отправлено: 20:57 15-06-2020
tarakan19831



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TuMOXA123, спасибо. Очень помогли!

Всего записей: 171 | Зарегистр. 22-11-2009 | Отправлено: 08:41 16-06-2020
Stendvik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Помогите разобраться- не могу подключить UDF. Firebird 2.5 x64, библиотека пишется на lazarus x64:

Код:
library project1;
{$mode objfpc}{$H+}
uses
  Classes
function test_fn(): Integer; cdecl; export;
  begin
    Result := 7777;
  end;
exports
  test_fn;
 
begin
end.  
(это только начало, дальше будет другая функция)
 
Объявляю вот так:

Код:
declare external function test_udf
returns
    integer by value
entry_point 'test_fn'
module_name 'project1';

 
При обращении к функции из запроса вылазит ошибка:

Цитата:
can't format message 13:896 -- message file C:\Windows\firebird.msg not found.
invalid request BLR at offset 60.
function TEST_UDF is not defined.
module name or entrypoint could not be found.
 

Всего записей: 119 | Зарегистр. 26-11-2006 | Отправлено: 06:55 25-09-2020 | Исправлено: Stendvik, 06:58 25-09-2020
Открыть новую тему     Написать ответ в эту тему

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