Anton Zibrov | 30 Jan 20:16
Picon
Gravatar

Firebird 3.0.0.29767

Добрый день, уважаемые!

Решил установить и помучать сабж...
получил:

Your user name and password are not defined. Ask your database 
administrator to set up a Firebird login.
Install incomplete, please read chapter "Initializing security database" 
in Quick Start Guide.

Quick Start Guide для 3.0 не нашел.

Что делать?

plasmorf | 20 Jan 06:33
Picon
Gravatar

Проблемы при использовании временных таблиц с индексами

Доброе время суток.
Сервер FB 2.5.1 64 бит
есть база, в которой процедуры используют временные
таблицы  ON COMMIT
DELETE ROWS с индексом по 3-м полям: integer, smallint, date
Проблема заключается в следующем:
Если после коннекта вызвать процедуру,
использующую временную таблицу,
то первый раз все проходит нормально, однако если
после выполнения
подтвердить или откатить транзакцию и в этом же
коннекте запустить
процедуру еще раз, то вылазит ошибка: cannot add index, index root
page is full.
После пререподключения ситуация возобновляется -
первый вызов
нормально, второй с ошибкой не смотря на то что они в разных
транзакциях
Ovchinnikov Vasily | 17 Jan 09:25
Picon

Чудеса при замене SQL-сервера FB 1.5 32bit --> FB 2.5 64bit

То ли лыжи не едут...

Сообщения об ошибках не сохранял, пишу по памяти. Ибо
дело было на прошлой неделе у одного из клиентов. 
Времени на разбор особо не было - спешил отдать сервер
в работу. Да и мысли в нужном русле потекли только 
сегодня.

На столе подобное в лабораторных условиях
воспроизвести нет возможности - нет 64битной винды
под руками.

Выход-то он всегда есть, и он, в принципе проверенный:
делай бэкап старой версией сервера, а рестор - новой 
версией сервера. Но я забегаю вперед.

При переводе одного из клиентов с 1.5 на 2.5 (на сервере
ось Win2008-64бит) обнаружил, что GBAK не может 
подключиться к базам данных, созданными Firebird 1.5 32бит,
в среде Win2008-64бит.

А обнаружил я это, поспешив и снеся прежде всего Firebird 1.5
(32бит), который там до того крутился.
Да, 32-битная полуторка крутилась под 64-битной виндой.
Никакого вроде бы криминала.

Установил Firebird 2.5 (64 бит) и только потом стал пытаться
делать бэкап баз GBAK'ом.
Начал с полуторного security.fdb  - ошибка подключения.
Попробовал бэкапнуть рабочую базу - та же ошибка
(Continue reading)

Picon
Favicon

Вывод номеров строк с помощью SQL запроса

Сделал процедуру вывода номеров строк, и обнаружил
странное поведение 
оптимизатора и сортировки

create procedure GET_ROW_NUM(
  DUMMY blob = null)  -- Нужно указавать в случае union all например, т.к. 
оптимизатор выполняет запрос 1 раз
returns (
  NUM integer)
as
begin
  if (RDB$GET_CONTEXT('USER_TRANSACTION', 'LastSetNum') <> 
current_timestamp)
     then RDB$SET_CONTEXT('USER_TRANSACTION', 'RowNumber', null);
  NUM = coalesce(RDB$GET_CONTEXT('USER_TRANSACTION', 'RowNumber'), 1);
  RDB$SET_CONTEXT('USER_TRANSACTION', 'RowNumber', NUM + 1);
  RDB$SET_CONTEXT('USER_TRANSACTION', 'LastSetNum', current_timestamp);
  suspend;
end

надеюсь то, что current_timestamp не меняется в рамках одного
запроса не 
изменится в следующих версиях, или как?

использование:

select
  (select NUM from GET_ROW_NUM),
  r.RDB$RELATION_NAME
from RDB$RELATIONS r
(Continue reading)

Tonal | 23 Dec 10:15
Picon
Favicon
Gravatar

Где релизноты в ubuntu

Вроде, по описанию должны жить в пакете firebird2.5-doc
Ну или в firebird2.5-common-doc, в крайнем случае.
Но не там не там не наблюдается.

Кто в курсе где искать, куда смотреть?
--

-- 
Александр Замараев

Tonal | 23 Dec 08:31
Picon
Favicon
Gravatar

Что-то непонятное с left join

Есть табличка:
CREATE TABLE SYMPTOMS (
  ID integer not null,
  PARENT_ID integer,
  ORD_NUM integer
  -- отгрызено полей
  CONSTRAINT PK_SYMPTOMS PRIMARY KEY (ID),
  CONSTRAINT FK_SYMP2SYM_ID FOREIGN KEY (SYM_ID) REFERENCES SYMPTOMS (ID)
);

ORD_NUM - порядковый номер в отображении. Нумерация
начинается с 1,
одинаковых и номеров и дырок не допускается.
Выбираю уровень:
SQL> select s.ID, s.ORD_NUM from SYMPTOMS s where s.PARENT_ID = 450774;

          ID      ORD_NUM
============ ============
      450775            1
      450776            2
      450777            3

Проверяю на существование дырок:
SQL> select s.ID, s.ORD_NUM, s2.ID, s2.ORD_NUM
CON> from SYMPTOMS s left outer join SYMPTOMS s2
CON> on s.ORD_NUM + 1 = s2.ORD_NUM
CON> where s.PARENT_ID = 450774 and s2.PARENT_ID = 450774
CON> /*and s2.ID is null*/;

          ID      ORD_NUM           ID      ORD_NUM
(Continue reading)

Alexey Popov | 16 Dec 07:10
Favicon

Путь к bin

Может кто уже решал подобную задачу? Нужно сделать bat
файл, который бы 
интенсивно использовал утилиты fb из каталога bin.
Причём без участия 
узера. Проблема в том, что пути нет в PATH и ничего не
работает. Если 
способ извлечь в батник пусть из реестра?

Ещё вопросик. Есть ли способ вызывать isql не
посредством указания 
input-файла, а через перенаправление ввода типа
echo exit; | isql base.db

Tonal | 12 Dec 11:59
Picon
Favicon
Gravatar

Глюки в рекурсивном запросе

Наткнулся на такую глючу.
В запросе ниже, выдаётся разные результаты при
закомментированном и
раскомментированном group by, хотя вроде бы должны быть одинаковые.

with recursive
SYM as (
  select sr1.ID, sr1.PARENT_ID
  from SYMPTOMS sr1
  --group by 1, 2
),
TREE as (
  select 1 as LEV, sp.ID, sp.PARENT_ID
  from SYM sp where sp.ID = 450797
  union all
  select t.LEV + 1, st.ID, st.PARENT_ID
  from SYM st inner join TREE t on st.PARENT_ID = t.ID
)
select
  t.LEV, t.ID
from TREE t

Или меня опять подводит мой «здравый смысл»?
Пример возник из попытки написать проверку
некоторого условия которое
зависит от родителей.
Т. е. SYM предполагался довольно сложным - вычисляющим
данные для этого
условия.

(Continue reading)

reshetnyakvkt | 2 Dec 10:50
Picon

delete from MON$ATTACHMENTS where MON$ATTACHMENTS.MON$ATTACHMENT_ID<>CURRENT_CONNECTION

Установлена ОС Mandriva 2009 x64, 9Гб оперативки, винты 160Гб.
До этого стоял *FirebirdSS-2.5.0.25946-ReleaseCandidate3.amd64* конструкция
отваливает все залипшие коннекты из текущей БД, а
далее и в цикле из всех
архивов. Работало безупречно:
>>>
  in AUTONOMOUS TRANSACTION
  do delete from MON$ATTACHMENTS where
MON$ATTACHMENTS.MON$ATTACHMENT_ID<>CURRENT_CONNECTION;
  --
  for
    select a_path from DYN_PATH_NAME_ARCH(null, 199901, 201110)
  into :PATH
  do begin
    IN AUTONOMOUS TRANSACTION
    DO BEGIN
      EXECUTE STATEMENT ('delete from MON$ATTACHMENTS'
        ||' where MON$ATTACHMENTS.MON$ATTACHMENT_ID<>CURRENT_CONNECTION')
        ON EXTERNAL :PATH AS USER 'SYSDBA' PASSWORD :PASS;
    END
  end
>>>
После установки *FirebirdSS-2.5.1.26351-0.amd64*, такая
конструкция валит
сервер наглухо. Приложения выполняющее этот запрос
висит не реагируя. Не
помогает service firebird restart, а также stop/start. Зависшего
процесса не
замечено. В логе firebird.log лишь несколько строк об
ошибках с номерами и
(Continue reading)

Sergey Mereutsa | 28 Nov 13:20
Picon

offtopic - прога по недвижимости

Привет!

Народ, если кто занимается прогами, связанными с недвижимостью
(продажа/покупка/агенты) - свистните мне в мыло на serj
собака dqteam
ком - может что-нибудь вкусное всем перепадёт.

--

-- 
Best regards,
 Sergey                          mailto:gebelezis@...

A K | 27 Nov 19:01
Picon

Проверить существование учетной записи пользователя

На радостях заменил в проекте весь код
создания/удаления учетных записей 
пользователей с сервисов на команды CREATE USER/DROP USER.

Но, вот незадача, как сделать проверку существования
учетной записи
без обращения к сервисам?

Пока, ничего умнее

alter user yyy set middlename ''

и отлова ошибки с GDSCode = 336723990 на ум не приходит.


Gmane