|
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 |
|
|
start [/forum/topic.php?fid=42&msg=40134137&tid=1598400]: |
0ms |
get settings: |
7ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
32ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
433ms |
get tp. blocked users: |
0ms |
others: | 362ms |
total: | 845ms |
0 / 0 |