|
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 |
|
|
start [/forum/topic.php?fid=42&msg=39991301&tid=1598400]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
33ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
450ms |
get tp. blocked users: |
0ms |
others: | 9ms |
total: | 506ms |
0 / 0 |