|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Заинтересованные в 64-битной версии IBEScript.dll для своих приложений есть? Имеется xIBEScript.dll 64-bit; движок абсолютно новый, с нуля; состояние - пре-альфа, я бы сказал :) Некоторые сложные функции в IBEBlock типа ibec_CompareTables, ibec_CompareMetadata пока не реализованы. Выполнение стандартных SQL скриптов должно работать - этот функционал хочется отладить в первую очередь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 05:23 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, О! Конечно интересно. А по какому адресу сие чудо можно скачать себе. Выложите URL, хочется по-тестировать. А какие версии ЖП она поддерживает (2,3,4) ? Спасибо. Будем пробовать! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 08:42 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
AltHasp А по какому адресу сие чудо можно скачать себе. Выложил сюда: https://www.ibexpert.com/rus/xIBEScript.sfx.exe AltHasp А какие версии ЖП она поддерживает (2,3,4) ? Снаружи там [почти] все так же, как и в актуальных IBEscript.exe/dll Специально поддержка каких-то версий не резалась, если только случайно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:25 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Добавил реализацию ibec_ExtractMetadata, ibec_ExecSQLScript, ibec_CompareTables, ibec_CompareMetadata. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2020, 09:33 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, Да, заинтересованные есть. Пока интересует выполнение скрипта создания БД на родном SQL без IBEBlock. Также интересует работоспособность подобного скрипта database_update.sql Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 04:55 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Пока к сожалению проверить не могу. Еще не все переведено на 64-бит. Там в архиве кроме dll еще и экзешник есть, просто подсунуть ему скрипт. Пока нашел одну проблему с вызовом функций без параметров: StartTime = ibec_GetTickCount; Без скобок - ibec_GetTickCount() - работать не будет, но это сейчас поправим. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 06:06 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert , какие-то изменения в 64-битной версии с момента последнего поста появились? Сейчас при вызове ibec_ExecSQLScript получаю такое сообщение: -------- ERROR ---------- Unknown server version: . Known versions are: IB5X, IB61, IB65, IB70, IB71, IB75, IB2007, FB10, FB15, FB20, FB21, FB25, FB30, FB40, YA10. Хотя 32-битное приложение работает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 18:10 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik какие-то изменения в 64-битной версии с момента последнего поста появились? Да, там много. На днях обновлю - дам знать в этой теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 06:15 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, к сожалению в одном из скриптов та же ошибка, про неизвестную версию сервера, и дополнительно получил -------- ERROR ---------- PSQL terminator (;) expected but 'into' found в скрипте Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 14:09 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik IBExpert, к сожалению в одном из скриптов та же ошибка, про неизвестную версию сервера Исправил. Но версию сервера таки стоит указывать для пущей определенности: ServerVersion=FB25 или какая она там у тебя. oleg_oleinik и дополнительно получил -------- ERROR ---------- PSQL terminator (;) expected but 'into' found Тоже исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 17:42 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, версию сервера в общем случае я не знаю, он на стороне заказчика и 32-битная версия как-то нормально отрабатывала такое. Переданный мной скрипт так и не работает -------- ERROR ---------- ''='' expected but ';' found Разный вывод результатов у 32/64 версий для одного и того же скрипта Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
32-битная версияD:\LGGT\Projects\Bases\Scripts\journals>..\..\..\FBLocal\IBEScript -GClientLib=fbembed.dll setup.sql IBEScript Version 2020.11.9.1 Copyright (c) 2002-2020 IBExpert Ltd (www.ibexpert.com) Executing script: setup.sql (Line: 10) : Executing IBEBlock... Error in script: setup.sql Error occurred while executing following statement (line 10): -------- STATEMENT ---------- IF not exists (select id from mlist) -------- ERROR ---------- Cannot perform operation -- DB is not open. Script executed with errors. Total execution time: 0ms 64-битная версияD:\LGGT\Projects\Bases\Scripts\journals>..\..\..\FBLocal64\IBEScript -GClientLib=fbembed.dll setup.sql xIBEScript Version 2020.11.9.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) Executing script: D:\LGGT\Projects\Bases\Scripts\journals\setup.sql (Line: 1): Executing IBEBlock... FAILED! Error occurred while executing following statement: -------- STATEMENT ---------- execute ibeblock as begin if (not exists (select id from mlist)) then begin mark_name = ibec_GetGlobalVar('user_name', '???????? ??????????'); insert into mlist (name) values (:mark_name); commit; end; end -------- ERROR ---------- Cannot perform operation -- DB is not open. Successful Time spent: 00:00.000 И непонятная кодировка результата второго скрипта. При перехвате вывода выяснилось, что это utf-8. Такое ощущение, что 64-битная версия и загружает скрипт в другой кодировке. PS: Наша компания при переводе дельфийского приложения на 64 бита сначала убрала асмовские вставки, потом приведение типов pointer/integer заменили на pointer/int_ptr, ну и по мелочи. Я думал у вас также. А тут такое ощущение, что полностью новое приложение пишется. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 16:07 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik А тут такое ощущение, что полностью новое приложение пишется. Об этом было сказано в самом первом сообщении темы: да, полностью новое. Ну и на твоем блоке я могу только проверить работу парсера, а как блок выполняется - не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 08:33 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, так у меня скрипт видимо проверку синтаксиса не проходит. -------- ERROR ---------- ''='' expected but ';' found для проверки скрипта в БД нужна таблица Код: plsql 1. 2. 3.
Запускаю на выполнение командой xIBEScript -GClientLib=fbembed.dll -GdbName=[алиас БД] database_update.sql во время работы скрипт ищет в текущей папке файлы с именами update_0_1.sql update_1_2.sql ... и пытается выполнить все необходимые для обновления структуры БД ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:37 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik IBExpert, так у меня скрипт видимо проверку синтаксиса не проходит. -------- ERROR ---------- ''='' expected but ';' found Да нет, твой блок у меня парсится без ошибок сейчас. А в этих update_0_1.sql что? Может, там парсер ошибки находит? Он вообще доходит до выполнения этих скриптов или сразу ошибку выше выплевывает? Завтра еще посмотрю, что там может быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 17:07 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, update_0_1.sql это предполагается скрипт, сгенерированный через инструмент сравнения БД за минусом строки коннекта. Но сейчас в папке нет ни одного такого файла. Полный результат выполненияxIBEScript Version 2020.11.12.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) Executing script: D:\LGGT\Projects\Bases\Scripts\database_update.sql (Line: 1): Executing IBEBlock... FAILED! Error occurred while executing following statement: -------- STATEMENT ---------- execute ibeblock as declare ibeblock cbb (BlockData variant) as begin sMessage = BlockData; if (sMessage is not null) then ibec_Progress(ibec_StringReplace(sMessage, ' : ', ' : [' || ibec_Now() || '] ', 0)); end; begin clib = '"' || ibec_GetGlobalVar('ClientLib', 'gds32.dll') || '"'; BaseName = ibec_GetGlobalVar('dbName', ibec_ExtractFileName(ibec_GetCurrentDir())); ibec_Progress(''); ibec_Progress('BaseName = ' || BaseName); ConnectionString = 'dbname="' || BaseName || '";user=sysdba;password=masterkey;SQLDialect=3;names=win1251;clientlib=' || clib; conn = ibec_CreateConnection(__ctFirebird, ConnectionString); try ibec_UseConnection(conn); select max(generation) from version_info into :GenValue; if (GenValue is null) then GenValue = 0; while (True) do begin GenNext = GenValue + 1; FileName = 'update_' || GenValue || '_' || GenNext || '.sql'; if (not ibec_FileExists(FileName)) then break; ibec_Progress(''); ibec_Progress('Executing script ' || FileName); StartTime = ibec_GetTickCount(); Msg = ibec_ExecSQLScript(conn, FileName, 'StopOnError=True', cbb); if (Msg is null) then begin ibec_Progress('Script executed successfully.'); end else begin ibec_Progress(''); ibec_Progress('Script executed with errors.'); end; ibec_Progress('Total execution time: ' || (ibec_GetTickCount() - StartTime) || 'ms'); ibec_Progress('=================================================='); insert into version_info (generation) values (:GenNext); commit; GenValue = GenNext; end; finally ibec_CloseConnection(conn); end end -------- ERROR ---------- ''='' expected but ';' found Time spent: 00:00.000 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 20:17 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Исправил кое-что, и вывод об ошибке сделал более детальным. Пробуй. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2020, 13:22 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, основной скрипт, вызываемый через IBEScript сейчас выполняется нормально. Но есть еще замечания: 1. При отсутствии файла скрипта получаем циклическую ошибку xIBEScript Version 2020.11.15.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) Executing script: D:\LGGT\Projects\Bases\Scripts\journals\test.sql Exception at 000000010001C089: EFOpenError: Unable to open file "test.sql". xIBEScript Version 2020.11.15.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) Executing script: D:\LGGT\Projects\Bases\Scripts\journals\test.sql Exception at 000000010001C089: EFOpenError: Unable to open file "test.sql". xIBEScript Version 2020.11.15.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) 2. При вызове подчиненного скрипта через ibec_ExecSQLScript что-то неправильно с кодировкой. Очень похоже на то, что описано здесь: https://www.sql.ru/forum/1328448/neponyatnoe-povedenie-ibec-createdatabase Только закрытие БД и окрытие её заново в текущей ситуации не помогают. Для тестов можно взять скрипты из той темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 11:14 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, ошибка при отсутствии файла скрипта починилась, нашел новые 1. Если в скрипте последний "end" не заканчивается переводом строки или ";" - скрипт не парсится Код: plaintext
Executing script: D:\LGGT\Projects\Bases\Scripts\test.sql (Line: 1): Executing IBEBlock... FAILED! Error occured while parsing IBEBlock (line 1): -------- STATEMENT (line 7/7) ---------- e -------- ERROR ---------- ''='' expected but '' found Time spent: 00:00.000 2. Следующий скрипт не выполняется, даже если добавить в конце пустую строку Код: plaintext
begin clib = '"' || ibec_GetGlobalVar('ClientLib', 'gds32.dll') || '"'; ConnectionString = 'dbname=test.fdb;user=sysdba;password=masterkey;SQLDialect=3;names=win1251;clientlib=' || clib; conn = ibec_CreateDatabase(__ctFirebird, ConnectionString); ibec_CloseConnection(conn); end Получаем ошибку Код: plaintext
Executing script: D:\LGGT\Projects\Bases\Scripts\test.sql (Line: 1): Executing IBEBlock... FAILED! Error occured while executing IBEBlock (line 1): -------- STATEMENT (line 5/5) ---------- conn = ibec_CreateDatabase(__ctFirebird, ConnectionString) -------- ERROR ---------- Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, column 28. user_name. ---------------------------------- SQLCODE: -104 SQLSTATE: 42000 GDSCODE: 335544569 Successful Time spent: 00:00.078 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2020, 12:05 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Исправил обе проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2020, 08:10 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, Теперь в этом же скрипте ругается на sysdba xIBEScript Version 2020.12.20.1 (very Alpha) Copyright (c) 2002-2020 IBExpert KG (www.ibexpert.net) Executing script: D:\LGGT\Projects\Bases\Scripts\test.sql (Line: 1): Executing IBEBlock... FAILED! Error occured while executing IBEBlock (line 1): -------- STATEMENT (line 5/5) ---------- conn = ibec_CreateDatabase(__ctFirebird, ConnectionString) -------- ERROR ---------- Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, column 33. "sysdba". ---------------------------------- SQLCODE: -104 SQLSTATE: 42000 GDSCODE: 335544569 Successful Time spent: 00:00.063 Если из строки коннекта убрать user=sysdba, то скрипт отрабатывает нормально. В скрипте, вызванном через ibec_ExecSQLScript не отрабатывает DESCRIBE. Error occurred while executing following statement (line 506): -------- STATEMENT ---------- DESCRIBE DOMAIN DOM_BOOLEAN '??? BOOLEAN ? ??????????? ?? ????' -------- ERROR ---------- Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, column 1. DESCRIBE. --------------------------------- SQLCODE: -104 SQLSTATE: 42000 GDSCODE: 335544569 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2020, 14:26 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, при выполнении Код: plsql 1.
происходит или порча значения conn или закрытие connection. После этой строчки получаем разные ошибки, в зависимости от того, что дальше происходит. Error occured while executing IBEBlock (line 1): -------- STATEMENT (line 55/55) ---------- ibec_CloseConnection(conn) -------- ERROR ---------- Cannot perform operation -- DB is not open. -------- ERROR ---------- There is no active connection. FAILED! Это происходит даже если вызываемый скрипт будет пустой. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2021, 15:11 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik происходит или порча значения conn или закрытие connection. Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 15:53 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, почти все в моих скриптах выполнилось нормально. Не отработали конструкции Код: plsql 1. 2.
Error occurred while executing following statement (line 13): -------- STATEMENT ---------- DESCRIBE -------- ERROR ---------- Empty query. (Line: 13) : [15.01.2021 13:39:33] Setting description for (something unknown: 900) ... FAILED! и в другом скрипте аналогичная конструкция Код: plsql 1. 2.
Error occurred while executing following statement (line 36): -------- STATEMENT ---------- FIELD HANGLETYPE TABLE ST_RES '??? ??????????? ???? (0-?????, 1-??????)' -------- ERROR ---------- Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, column 1. FIELD. --------------------------------- SQLCODE: -104 SQLSTATE: 42000 GDSCODE: 335544569 Оба скрипта вызываются через ibec_ExecSQLScript ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 13:48 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Не отработали конструкции Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 10:09 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, спасибо. Думал все заработало. Но нет, остался непонятный глюк. При вызове следующего скрипта через ibec_ExecSQLScript появляется ошибка test.sql Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
(Line: 1) : [17.01.2021 16:20:55] Executing IBEBlock... Error occurred while executing following statement (line 1): -------- STATEMENT ---------- execute ibeblock as begin if (not exists (select id from mlist)) then begin mark_name = ibec_GetGlobalVar('user_name', '???????? ??????????'); insert into mlist (name) values (:mark_name); commit; end; end -------- ERROR ---------- Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 2, column 13. ). ---------------------------------- SQLCODE: -104 SQLSTATE: 42000 GDSCODE: 335544569 Script executed with errors. Total execution time: 0ms ================================================== Time spent: 00:00.094 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2021, 16:25 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Думал все заработало. Но нет, остался непонятный глюк. При вызове следующего скрипта через ibec_ExecSQLScript появляется ошибка Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 15:42 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, спасибо !!! Мои скрипты все отработали без ошибок. Пора выпускать в более широкое Beta-тестирование ). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 09:36 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Столкнулся еще с одной ошибкой. Если в строке коннекта путь к clientlib будет содержат русские буквы, то получаем ошибку. авторC:\Program Files (x86)\РУССКИЙ ПУТЬ\Bases\Scripts\journals>"C:\Program Files (x86)\РУССКИЙ ПУТЬ\FBLocal64\xIBEScript.exe" ..\database_update.sql -l"C:\Program Files (x86)\РУССКИЙ ПУТЬ\FBLocal64\fbembed.dll" -G"dbName=journals" -G"ClientLib=C:\Program Files (x86)\РУССКИЙ ПУТЬ\FBLocal64\fbembed.dll" -T -VIBEScript.log xIBEScript Version (very Alpha) Copyright (c) 2002-2021 IBExpert KG (www.ibexpert.net) Executing script: C:\Program Files (x86)\РУССКИЙ ПУТЬ\Bases\Scripts\database_update.sql [05.08.2021 17:35:36] (Line: 1): Executing IBEBlock... BaseName = journals FAILED! Error occured while executing IBEBlock (line 1): -------- STATEMENT (line 18/18) ---------- conn = ibec_CreateConnection(__ctFirebird, ConnectionString) -------- ERROR ---------- Client Library is missing or invalid: C:\Program Files (x86)\РУССКИЙ ПУТЬ\FBLocal64\fbembed.dll Notice, that you have to use 32-bit client library even if you connect to 64-bit version of Firebird/InterBase because IBExpert is a 32-bit application. In case you specify a 64-bit version of client library dll instead of 32-bit one you can get this error. Time spent: 00:00.000 Хотя файл fbembed.dll в папке присутствует и для нормальной работы достаточно переименовать папку, чтобы в пути к fbembed.dll не было русских букв. database_drop.sqlexecute ibeblock as begin clib = '"' || ibec_GetGlobalVar('ClientLib', 'gds32.dll') || '"'; BaseName = ibec_GetGlobalVar('dbName', ibec_ExtractFileName(ibec_GetCurrentDir())); ibec_Progress(''); ibec_Progress('BaseName = ' || BaseName); ConnectionString = 'dbname="' || BaseName || '";user=sysdba;password=masterkey;clientlib=' || clib; ibec_DropDatabase(__ctFirebird, ConnectionString); end database_drop.sql сохранен в кодировке windows-1251, вызов производится из командной строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 17:44 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Дополнительно: в следующем фрагменте вставка записи через параметр (оба варианта присвоения в test_var) происходит в неправильной кодировке. Второй insert выполняется нормально. create.sql Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2021, 12:03 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Похоже, что ошибки в двух последних сообщениях связаны друг с другом. Видимо строковые переменные хранятся в кодировке UTF-8 и не преобразуются в кодировку скрипта при передаче в процедуры и функции и при использовании в качестве параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2021, 12:17 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Похоже, что ошибки в двух последних сообщениях связаны друг с другом. Видимо строковые переменные хранятся в кодировке UTF-8 и не преобразуются в кодировку скрипта при передаче в процедуры и функции и при использовании в качестве параметров. А сам скрипт в какой кодировке? Он в файле лежит или откуда ты его выполнял? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 07:29 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Все скрипты у меня в кодировке Windows-1251. Все лежат отдельными файлами. create.sql вызывается из другого скрипта, который тоже сохранен файлом на диске в папке на уровень выше текущей, вызывается через xIBEScript.exe. Архив со структурой скриптов прикладываю. Для теста распаковать в папку "C:\РУССКИЙ ПУТЬ\Bases\Scripts\". FireBird embedded вместе с xIBEScript.exe лежит в папке "C:\РУССКИЙ ПУТЬ\FBLocal64\" Вызывать из текущей папки test. Образец вызова: C:\РУССКИЙ ПУТЬ\Bases\Scripts\test>"C:\РУССКИЙ ПУТЬ\FBLocal64\xIBEScript.exe" ..\database_create.sql -l"C:\РУССКИЙ ПУТЬ\FBLocal64\fbembed.dll" -G"dbName=test" -G"ClientLib=C:\РУССКИЙ ПУТЬ\FBLocal64\fbembed.dll" -T -VIBEScript.log ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 17:05 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Исправил, но, возможно, где-то еще вылезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2021, 05:43 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, к сожалению вылезло Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Вставка записей теперь происходит в правильной кодировке, но путь к ClientLibrary все еще портится. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 14:25 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik к сожалению вылезло Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 11:11 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, сработало. Спасибо !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 11:56 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, при использовании совместно с xIBEScript.exe опции -V выходные данные выводятся в файл в разных кодировках. Сама первая строка "Executing script...." выводится в файл в кодировке UTF-8, а например сообщение об ошибке от сервера выводится в кодировке windows-1251. При чтении таких файлов возникает неудобство. Если ключ -V не использовать и выводить информацию на экран, то возникает обратная ситуация - первая строка читается нормально, а сообщение об ошибке отображается знаками вопроса. Текст использованного скрипта во вложении. Вот пример выходных данных Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 18:42 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Посмотри в свежей версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 06:06 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, скачал очередное обновление и обнаружил в архиве дополнительно и 32-битную версию тоже. Я так понимаю она скомпилирована на тех же исходниках, что и 64-битная и в дальнейшем развитие IBEScript предполагается на их базе? Имеет смысл тестировать эту версию отдельно? Попробовал запустить её - сразу получил сообщение об ошибке. При этом дальнейшая работа программы (вывод инструкции по использованию) выполнилась нормально. Если эта или другие библиотеки загружаются динамически, то может стоит их загружать несколько позже, на том этапе, где будет происходить действительная работа с БД ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 10:04 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Нет, тестировать отдельно 32-битную версию смысла нет. Время будет, посмотрю что там с dll-ками, это в сторонних компонентах. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:52 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, Подскажите, как можно создать глобальные переменные при использовании xIBEScript.dll ? В ibesScriptExecuteFile передается только имя файла скрипта, а дополнительные параметры, которые в xIBEScript.exe передавались через глобальные переменные как передать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 20:44 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, Пытаюсь заменить вызов xIBEScript.exe на соответствующие вызовы xIBEcript.dll. В общем разобрался, в том числе и с глобальными переменными. Споткнулся на операторе reconnect. Из своей программы основной скрипт я вызываю либо через ibesScriptExecuteFile, либо через xIBEScript.exe, который внутри в свою очередь вызывает ibec_ExecSQLScript для другого файла скрипта. Второй скрипт вылетает на операторе reconnect , если выполнение происходит через ibesScriptExecuteFile. Ну и соответственно дальше уже начинает вылетать основной скрипт, потому что слетел Connection. Результат вызова через xIBEScript.exeExecuting script: D:\LGGT\Projects\Bases\Scripts\database_update.sql [15.02.2022 0:27:18] (Line: 1): Executing IBEBlock... BaseName = D:\LGGT\Projects\Bases\journals.fdb Executing script update_1_2.sql (Line: 1) : [15.02.2022 0:27:18] Reconnecting to 'D:\LGGT\Projects\Bases\journals.fdb'... Successful Script executed successfully. Total execution time: 94ms ================================================== Time spent: 00:00.250 Результат вызова через ibesScriptExecuteFileExecuting script: D:\LGGT\Projects\Bases\Scripts\database_update.sql [15.02.2022 00:08:30] Executing IBEBlock... BaseName = D:\LGGT\Projects\Bases\journals.fdb Executing script update_1_2.sql Error occurred while executing following statement (line 1): -------- STATEMENT ---------- reconnect -------- ERROR ---------- Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. connection shutdown. ------------------------------------------------------------------------------------------------------------- SQLCODE: -902 SQLSTATE: 08003 GDSCODE: 335544856 (Line: 1) : [15.02.2022 0:08:31] Reconnecting to 'D:\LGGT\Projects\Bases\journals.fdb'... FAILED! Script executed with errors. Total execution time: 218ms ================================================== There is no active connection. Cannot perform operation -- DB is not open. Второй скрипт состоит из одного оператора reconnect ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 00:32 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, А как ты через xIBEScript.exe выполняешь скрипты сначала из одного файла, а потом на том же самом коннекте из другого файла?? Это возможно только через оператор INPUT в первом файле, в противном случае по завершении выполнения скрипта из первого файла коннект будет закрыт, и для второго скрипта его нужно создавать заново. С ibesScriptExecuteFile точно так же должно быть, если коннект создается в самом скрипте. Или ты его извне создаешь через ibesConnectionInit? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 05:07 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, да все нормально работает. я же написал, что второй скрипт из первого вызывается через ibec_ExecSQLScript. Там и передается созданный Connection. Почищенные исходники во вложении. Через командную строку работает, через dll - вылет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 09:25 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, и еще на мой взгляд в файле интерфейса xIBEScriptIntf.pas присутствуют ошибки в определении типа строковых параметров. В том виде, в котором он присутствует в архиве использовать dll не получается - появляются ошибки. Пришлось взять за образец файл IBEScriptIntf.pas и заменить в xIBEScriptIntf.pas все типы PChar на PAnsiChar. Только тогда я смог выполнить скрипт из-под Delphi. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 09:41 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik IBExpert, да все нормально работает. я же написал, что второй скрипт из первого вызывается через ibec_ExecSQLScript. Там и передается созданный Connection. Почищенные исходники во вложении. Через командную строку работает, через dll - вылет. У меня в тестовой демке все ОК. Меня смущает сообщение "connection shutdown." Т.е., попытка коннекта происходит, но сервер почему-то ругается вот такими словами. В dll и exe один и тот же код, так что и выполняться он должен абсолютно одинаково. Значит, дело в каких-то внешних по отношению к твоим скриптам данных. Ты уверен, что у тебя там одна и та же клиентская либа используется в обоих случаях?? А вот еще: dbname=test.fdb. Ты embedded используешь что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 06:18 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik IBExpert, и еще на мой взгляд в файле интерфейса xIBEScriptIntf.pas присутствуют ошибки в определении типа строковых параметров. В том виде, в котором он присутствует в архиве использовать dll не получается - появляются ошибки. Пришлось взять за образец файл IBEScriptIntf.pas и заменить в xIBEScriptIntf.pas все типы PChar на PAnsiChar. Только тогда я смог выполнить скрипт из-под Delphi. Ну это в твоей дельфи PChar = PWideChar или что у тебя там. А в моей дельфи и в лазарусе PChar = PAnsiChar. Но для ясности надо бы там на PAnsiChar заменить, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 06:21 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert Ты уверен, что у тебя там одна и та же клиентская либа используется в обоих случаях?? А вот еще: dbname=test.fdb. Ты embedded используешь что-ли? Исходя из вопроса я провел исследование. Ситуация 1: Для скрипта не устанавливаем путь к либе через глобальную переменную. Скрипт автоматом подставляет имя "gds32.dll" с кавычками. В программе на Delphi я перехватываю LoadLibraryExW и уже там меняю путь к либе и имя файла на fbembed.dll. LoadLibraryExW с именем gds32.dll за время работы скрипта вызывается 4 раза. В результате скрипт отрабатывает без ошибок. Ситуация 2: Устанавливаем в глобальную переменную путь к файлу fbembed.dll. LoadLibraryExW при этом вызывается 2 раза, после чего получаем ошибку на RECONNECT. Исходя из исследований ошибка где-то внутри xIBEScript.dll, т.к. результат LoadLibraryExW в обоих случаях возвращается для одной и той же либы. Но в первом случае имя либы внутри скрипта = "gds32.dll", а во втором случае это полностью сформированный путь к fbembed.dll. Т.е. чисто теоретически пользоваться DLL можно, но с костылями. PS: Есть ошибка в ibesScriptFinalize. По документации функция должна возвращать 0, но она возвращает мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 16:23 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, 1. Сервер какой версии ты используешь? 2. Как устанавливаешь глобальную переменную при использовании xIBEScript.dll? 3. Что происходит, если прописать полный путь к fbembed.dll прямо в строку коннекта? Вот это у меня работает без проблем: Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 05:35 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, оказывается можно еще много чего поисследовать)). Однако ваш скрипт с учетом моих изменений путей к либе и к базе тоже вылетает. Вылетает во всех вариациях - устанавливаю ли я путь к либе через глобальную переменную именно в этом скрипте, присваиваю ли я этот путь напрямую в переменную или даже если я указываю его напрямую в строке коннекта. Это ответ на 3-й вопрос. Теперь на первые: 1. Использую Firebird-2.5.9.27139-0_x64_embed.zip . С другими версиями сервера 3.x, 4.x мое приложение не тестировалось и скорее всего переход на них будет не скоро. 2. Для установки глобальной переменной использую следующую функцию Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 10:15 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Скачал клиента по твоей ссылке, упростил блок до предела, выполняю прямо в тестовой демке xIBEScript.dll: ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 11:21 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, а у меня тогда что не так? ) Единственно, что приходит на ум - разница между Delphi и FreePascal, но это же все обвязка вокруг DLL. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:27 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, так как у вас заработало только после того, как я установил правильные параметры connection и дополнительно к connection, который создается в скрите вызвал SetConnection перед вызовом ExecuteScriptText Код: pascal 1. 2. 3. 4. 5. 6. 7.
Если же InitConnection убрать, то получаем ошибку как у меня. Но это не совсем правильно. Насколько я понимаю, вызов ibec_SetConnection должен выполнять те же действия, что и SetConnection в Delphi. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 15:15 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik IBExpert, а у меня тогда что не так? ) Единственно, что приходит на ум - разница между Delphi и FreePascal, но это же все обвязка вокруг DLL. Ну, есть еще вариант, что мы разные версии xIBEScript мучаем. Собственно, так оно и есть, просто я не помню, чтобы что-то правил по обсуждаемой теме. Но я выложил актуальную (свою) версию, так что попробуй ее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 05:58 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Если же InitConnection убрать, то получаем ошибку как у меня. Но это не совсем правильно. InitConnection - это для скриптов/блоков, в которых не создается собственный коннект. В данном случае он не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 05:59 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, попробовал - чуда не произошло. Запускаю последний тестовый скрипт в DemoApp. Если connection создается и устанавливается в Delphi - то скрипт отрабатывает без ошибок. Если connection с теми же параметрами создается внутри скрипта - Cannot perform operation -- DB is not open. С 32-битной версией xIBEScript те же ошибки, и дополнительно ошибка на скриншоте. PS: Я попробую выполнить тестовый пример на другой машине на windows 10, может что-то в моей windows 11 накрутили. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 07:59 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Ну я бы еще для полноты картины сделал следующее: 1. Проверил скрипт на нормальном коннекте по TCP, чтобы удостовериться, что дело не в embedded. 2. В скрипте, который с reconnect, выполнил что-то, что не закрывает коннект. Чтобы убедиться, что коннект там рабочий. А пока других идей у меня нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 08:44 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, при входе в скрипт коннект рабочий, с этим проблем нет. Лог реального скриптаExecuting script update_1_2.sql (Line: 1) : [17.02.2022 10:11:19] Setting connection charset (WIN1251)... Successful (Line: 3) : [17.02.2022 10:11:19] Setting connection sql dialect (3)... Successful (Line: 5) : [17.02.2022 10:11:19] SET... Successful (Line: 10) : [17.02.2022 10:11:19] Altering procedure CHECK_POINT_NAME... Successful (Line: 18) : [17.02.2022 10:11:19] Altering trigger POINTS_BI0... Successful (Line: 23) : [17.02.2022 10:11:19] Altering trigger POINTS_BU0... Successful (Line: 30) : [17.02.2022 10:11:19] Dropping procedure CHECK_POINT_NAME... Successful (Line: 34) : [17.02.2022 10:11:19] Dropping trigger POINTS_BI0... Successful (Line: 35) : [17.02.2022 10:11:19] Dropping trigger POINTS_BU0... Successful Error occurred while executing following statement (line 39): -------- STATEMENT ---------- RECONNECT -------- ERROR ---------- Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. connection shutdown. ------------------------------------------------------------------------------------------------------------- SQLCODE: -902 SQLSTATE: 08003 GDSCODE: 335544856 (Line: 39) : [17.02.2022 10:11:20] Reconnecting to 'D:\LGGT\Projects\Bases\journals.fdb'... FAILED! Script executed with errors. Total execution time: 1719ms ================================================== А вот куда он дальше девается - непонятно. И да, с моей точки зрения embedded все-таки не виноват ) по двум причинам. 1. я пробовал подключаться этим же скриптом к базе на сервере, через fbclient.dll из дистрибутива сервера - результат тот же. 2. почему-то connection, созданный и установленный из Delphi отрабатывает reconnect нормально, независимо от пути к базе и к либе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 09:22 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik, Зачем ты все время дельфи какую-то упоминаешь и логи выполнения каких-то других скриптов выдаешь? Это процесс никак не упрощает, только запутывает. Есть вон простейший блок, на котором твоя проблема у тебя воспроизводится, а у меня - нет. Вот этот блок и надо мучать в тестовой демке. А твоих скриптов у меня нет, и дельфи твоей нет, и что ты там в своем приложении делаешь - я тоже не знаю и воспроизвести не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 09:42 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Меня продолжают терзать смутные сомнения, что xIBEScript.dll у тебя старая. Тестовая демка ищет ее уровнем выше, ты в курсе? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 10:22 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, кокретно язык Delphi тут не при чем, я проверил на fpc/Lazarus - тоже самое. Я имел ввиду, что connection должен быть установлен одним из способов либо в скрипте через ibec_UseConnection, либо в вызывающей программе через ibesSetConnection. Одного вызова ibec_CreateConnection в скрипте недостаточно, после этого не работают sql-запросы именно в этом скрипте. Хотя будут работать в том, который вызвать из него если при этом передать созданный connection. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 12:30 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, я смог локализовать проблему с reconnect, правда теперь не знаю, что с этим делать. Если я вызываю выполнение скрипта через dll сразу после старта моей программы - все работает нормально. Но если к базе, с которой работает скрипт предварительно создать connection средствами вызывающей программы (на Delphi я использую TIBDatabase), то все нормально работает до вызова reconnect. Причём не работает, даже если я перед вызовом скрипта разорву connection в программе. Т.е. сам connection в скрипте создаётся, остальные операторы ddl отрабатывают, а reconnect - не хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 12:38 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
IBExpert, да, конечно я в курсе, где демка ищет xIBEScript.dll. Концепция поменялась, я нашел другую, более простую причину, приводяющую к неработоспособности xIBEScript.dll. Достаточно в программе вызывающей выполнение скрипта через dll предварительно сделать вызов: LoadLibraryExW('ПУТЬ_К_КЛИЕНТСКОЙ_БИБЛИОТЕКЕ', 0, LOAD_WITH_ALTERED_SEARCH_PATH); т.е. ровно то же самое, что делает xIBEScript.dll при создании connection - и все. Изменения в uTestDLL.pas из DemoApp Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9.
Текст скрипта для теста Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Скрипт использует установленный локальный сервер и подключается к существующей или создает новую базу в текущей папке. Если в демке добавить вызов LoadLibraryExW - то reconnect не работает. Но от этого никуда не деться - загрузка клиентской либы выполняется любыми компонентами для работы с Firebird. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 20:16 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
oleg_oleinik Достаточно в программе вызывающей выполнение скрипта через dll предварительно сделать вызов: LoadLibraryExW('ПУТЬ_К_КЛИЕНТСКОЙ_БИБЛИОТЕКЕ', 0, LOAD_WITH_ALTERED_SEARCH_PATH); т.е. ровно то же самое, что делает xIBEScript.dll при создании connection - и все. Вооот... Теперь все понятно. 1. Сначала ты у себя в приложении грузишь клиентскую либу, потом то же самое делает xIBEScript. 2. RECONNECT сначала закрывает коннект и выгружает fbemded.dll. 3. Перед выгрузкой fbemded.dll от FB 2.5 выполняется fb_shutdown. 4. После вызова fb_shutdown использовать загруженную в адресное пространство приложения dll (если она там осталась, а это так раз твой случай) уже нельзя, ее нужно выгрузить полностью и загрузить снова. Запретить скриптеру выполнять fb_shutdown можно установкой переменной окружения IBECallFBShutdown в FALSE/0. Но тогда только ты отвечаешь за корректную выгрузку fbemded.dll. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 14:31 |
|
xIBEScript.dll 64-bit
|
|||
---|---|---|---|
#18+
Да, все сказанное относится и к не embedded версии, если это FB 2.5. fb_shutdown в движке эксперта выполняется только для этой версии, проверка делается по версии клиентской библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 15:04 |
|
|
start [/forum/topic.php?all=1&fid=42&tid=1598400]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
26ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
1031ms |
get tp. blocked users: |
1ms |
others: | 360ms |
total: | 1435ms |
0 / 0 |