powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3 Alpha: New public API
25 сообщений из 57, страница 1 из 3
Firebird 3 Alpha: New public API
    #38353270
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю релиз-ноты :
авторA new public API replaces the legacy one in new applications, especially object-oriented ones. The interface part
can be found in the header file Provider.h in the directory /include/firebird beneath the installation
root directory.
Нет там этого файла.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353336
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если исходники скачать?
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353360
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА если исходники скачать?
В исходниках-то конечно есть.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353507
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

хоть скажи, где ты их искал и не нашел. В каких пакетах?
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353514
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeНет там этого файла.странно: у мну есть, но только на линухе:
Код: plaintext
1.
/opt/fb30cs/include/firebird/Provider.h
А на виндузе - нету.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353525
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrNickDee,
хоть скажи, где ты их искал и не нашел. В каких пакетах?
Firebird-3.0.0.30566_0_Win32_Alpha1.exe
Firebird-3.0.0.30566-0_Win32_Alpha1.zip
Firebird-3.0.0.30566-0_x64_Alpha1.zip
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353529
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу, на винде про них забыли. Пардон.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353530
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeedimitrNickDee,
хоть скажи, где ты их искал и не нашел. В каких пакетах?
Firebird-3.0.0.30566_0_Win32_Alpha1.exe
Firebird-3.0.0.30566-0_Win32_Alpha1.zip
Firebird-3.0.0.30566-0_x64_Alpha1.zip
Ещё в exe и в zip несколько разный контент. Например в exe нет udr_engine.conf.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353577
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

Дабы не открывать новый топик: неявная конвертация boolean к строке, это так задумано?
Код: sql
1.
2.
3.
4.
5.
6.
execute block as
declare variable bol boolean;
begin
  bol = TRUE;
  exception TEST_EXCEPTION using (bol);
end

и
Код: sql
1.
select '' || TRUE from rdb$database


выдаёт:

Код: plaintext
1.
Overflow occurred during data type conversion.
conversion error from string "BOOLEAN".
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353584
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

имею мнение, что неявно строка должна конвертироваться к булину, а не наоборот. Но это только если CAST в строку и из строки работают как ожидается.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353606
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrимею мнение, что неявно строка должна конвертироваться к булину, а не
наоборот.
При конкатенации?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353615
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrимею мнение, что неявно строка должна конвертироваться к булину, а не наоборот. Но это только если CAST в строку и из строки работают как ожидается.

В нижеследующем случае был бы согласен
Код: sql
1.
select * from rdb$database where rdb$character_set_name is TRUE


если бы не:
Код: plaintext
Invalid usage of boolean expression.

Когда в предикате where строки при сравнении конвертируются к числу - это понятно. Точнее для себя определил правило такой конвертации "к менее неоднозначному типу" и это кажется логичным.
А вот при операции склейки я бы ожидал приведения к строке или блобу.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353674
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,
в Provider.h есть код:
Код: plaintext
1.
2.
    virtual IStatement* FB_CARG prepare(IStatus* status, ITransaction* tra,
        unsigned int stmtLength, const char* sqlStmt, unsigned dialect, unsigned int flags) = 0;


Интересуют unsigned и unsigned int .
Я ведь правильно понимаю что они не различаются, причём на всех поддерживаемых платформах это будет 4 байта?
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353699
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно интересует возможность вызова java-кода из обычной ХП, по аналогии с вызовами UDF'ок.

На странице 9 пдфника читаем:
3.0 RN New, object-oriented C++ APIs
Object-oriented C++ APIs enable external code routines to plug in and run safely inside Firebird engine
space, including (but not limited to):
• Stored procedures, triggers and functions written in Java , C++, ObjectPascal, etc.
А на страницах 20 и 28 впитываем про External Names и UDR (User Defined Routines):3.0 RN, page 20 External Names
An external name for the UDR engine is defined as
'<module name>!<routine name>!<misc info>'3.0 RN, page 28 Other New APIs
Other new APIs support various plug-ins by declaring the interfaces between the engine and the plug-in. Besides
pluggable authentication and pluggable encryption, Firebird 3 supports “external engines”, bridges between the
engine and the execution environments that can run UDR s: native code, Java and others.
Будет ли добавлен хоть какой-нить пример вызова java-кода из ФБ ? Пока что нарыл только вот это:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE fieldCountExtern
(
dburlVARCHAR(256), 
user_nameVARCHAR(256), 
passwordVARCHAR(256)
) RETURNS (
V1VARCHAR(50),
V2INTEGER
) 
LANGUAGE JAVA
EXTERNAL NAME 'firebird.java.example.Examples.fieldNamesExtern';

(из отсюда ).
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353713
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(мысли вслух)RN, page 58 RETURNING Clause Value Can be Aliased
When using the RETURNING clause to return a value to the client, the value can now be passed under an alias.
Example Without and With Aliases
Код: plaintext
1.
2.
3.
  UPDATE T1 SET F2 = F2 * 10
    RETURNING OLD.F2, NEW.F2; -- without aliases
  UPDATE T1 SET F2 = F2 * 10
    RETURNING OLD.F2 OLD_F2, NEW.F2 AS NEW_F2; -- with aliases
- работает, проверил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> update tu set f01=111, f02=222 where id=1 returning old.f01, old.f02;

PLAN (TU NATURAL)

         F01          F02
============ ============
         100          200

SQL> rollback;
SQL> update tu set f01=-f02, f02=-f01 where id=1 returning old.f01, old.f02;

PLAN (TU NATURAL)

         F01          F02
============ ============
         100          200


Напрашивается аналог для delete :
Код: sql
1.
SQL> delete from t1 where id=1 returning old.f01, old.f02;

Однако, "разбежитесь об забор":
Код: plaintext
1.
2.
3.
4.
5.
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-OLD.F01
-At line 1, column 50
Хотя буквально следующий подпараграф гласит, что в рамках курсора это возможно ("RETURNING Clause from Positioned Updates and Deletes").
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353716
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще.
2 all involved ! не проходите мимо вот это сувенира:RN, pg 60
OR'ed Parameter in WHERE Clause
Dmitry Yemanov
Performance for ( table.field = :param or :param = -1 ) in the WHERE clause was enhanced.
Работает действительно БЫСТРЕЕ, чем в ФБ 2.5.
И хотя пишет для выборки из ХП типа следующей:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
set term ^;
create or alter procedure orpartest (a_n01 int) returns(cnt int) as
begin
    for
        select count(*) from tbig b where b.n01=:a_n01 or :a_n01=-1
--        select count(*) from tbig b
--        where b.n01 between coalesce(:a_n01, -2147483648)
--                            and coalesce(:a_n01, 2147483647)
        into cnt
    do
        suspend;
end^
set term ;^
commit;

- что, дескать,
Код: plaintext
1.
2.
SQL> set stat on; set plan on; select * from orpartest(700);

PLAN (ORPARTEST  NATURAL )
- "не верь глазам своим!" (С)

Ибо тут волк в овечьей шкуре: он по индексу прёт (если тот имеется, конечно же):
Код: plaintext
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.
2013-08-03T01:12:40.1560 (1804:00F02A08) EXECUTE_PROCEDURE_FINISH
        perf30 (ATT_39, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1180
                (TRA_109, CONCURRENCY | WAIT | READ_WRITE)

Procedure ORPARTEST:
param0 = integer, "700"

      0 ms

2013-08-03T01:12:40.1560 (1804:00F02A08) EXECUTE_STATEMENT_FINISH
        perf30 (ATT_39, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1180
                (TRA_109, CONCURRENCY | WAIT | READ_WRITE)

Statement 346:
---------------------------------------------------------------
select * from orpartest(700)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN (ORPARTEST NATURAL)
1 records fetched
     22 ms, 19848 fetch(es)

Table                             Natural     Index    Update
xpunge
*****************************************************************
TBIG                                           9916

В итоге, не надо больше извращаться с between и указанием лимитов для int/bigint чисел.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353736
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидНапрашивается аналог для delete :
Код: sql
1.
SQL> delete from t1 where id=1 returning old.f01, old.f02;


Однако, "разбежитесь об забор":У тебя опять руки быстрее головы работают :)
Небось думал об этом ?
Код: sql
1.
SQL> delete from t1 where id=1 returning old.f1 old_f1, old.f2 old_f2;
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353771
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovdimitrимею мнение, что неявно строка должна конвертироваться к булину, а не
наоборот.
При конкатенации?
тьфу ты, о другом думал. Это я о сравнении, конечно же. При конкатенации булин надо бы уметь неявно приводить к строке, если таковое возможно через каст.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353772
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmКогда в предикате where строки при сравнении конвертируются к числу - это понятно. Точнее для себя определил правило такой конвертации "к менее неоднозначному типу" и это кажется логичным. А вот при операции склейки я бы ожидал приведения к строке или блобу.
согласен
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353773
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeИнтересуют unsigned и unsigned int .
Я ведь правильно понимаю что они не различаются, причём на всех поддерживаемых платформах это будет 4 байта?
правильно. По крайней мере, для всех поддерживаемых на текущий момент платформ.
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353774
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид"не верь глазам своим!" (С)
приборы протри set explain включи
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353777
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНебось думал об этом ?
Код: sql
1.
SQL> delete from t1 where id=1 returning old.f1 old_f1, old.f2 old_f2;

Именно об этом и думал, только поля назвал F 0 1, F 0 2.
Для delete не работает вот это (а хотелось бы):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> show table tu;
ID                              INTEGER Nullable
F 0 1                             INTEGER Nullable
F 0 2                             INTEGER Nullable
SQL> delete from tu where id=1 returning old.f 01  old_f1, old.f 0 2 old_f2;
Statement failed, SQLSTATE = 42S22
Dynamic SQL Error
-SQL error code = -206
-Column unknown
-OLD.F 01 
-At line 1, column 61
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353779
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидДля delete не работает вот это (а хотелось бы)
а зачем тебе именно это? Чем не устраивает простое:

Код: sql
1.
delete from tu where id=1 returning f01 old_f1, f02 old_f2;


?
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353780
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrприборы протри set explain включиИ ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> set stat on; set explain on; select * from orpartest(777);

Select Expression
    -> Procedure "ORPARTEST" Scan

         CNT
============
        9900

Current memory = 1274448
Delta memory = 574800
Max memory = 1274856
Elapsed time= 14.09 sec
Buffers = 65535
Reads = 9886
Writes 0
Fetches = 20249
...
Рейтинг: 0 / 0
Firebird 3 Alpha: New public API
    #38353783
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

план запросов внутри процедуры надо смотреть для оных запросов, а не для вызова процедуры
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3 Alpha: New public API
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]