powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вызов dll-форм из скрипта
13 сообщений из 63, страница 3 из 3
Вызов dll-форм из скрипта
    #40000444
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Какой формат входных параметров у ibesConnectionInit?


Там еще можно использовать ту же строку параметров, которую ibec_CreateConnection понимает.
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001062
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Вроде все исправил, проверяй.
Стало лучше.

Но нашлись новые баги
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SET NAMES WIN1251;

SET CLIENTLIB 'fbclient.dll';

CONNECT 'Server:D:\MyDB.fdb' USER 'SYSDBA' PASSWORD 'masterkey';

EXECUTE IBEBLOCK
AS
BEGIN
  select 1 from rdb$database into :var;
END;

Код: pascal
1.
2.
ibesScriptExecuteFile(FScripterHandle, 'test.sql', nil);
ibesScriptExecuteFile(FScripterHandle, 'test.sql', nil);

На втором запуске после оператора CONNECT возникает AVAccess violation at address 04F4EC14 in module 'IBEScript.dll'. Read of address 00000050.

Еще наткнулся на такую особенность. Для операторов
Код: sql
1.
2.
SET NAMES WIN1251;
SET CLIENTLIB 'fbclient.dll';

OnBeforeExecStatement вызывается, а OnAfterExecStatement нет. Мне не критично, но может так не задумывалось?
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001068
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дальше, есть такая таблица
Код: sql
1.
2.
3.
CREATE TABLE MY_TABLE(
    ID  DM_PK /* DM_PK = INTEGER NOT NULL */
);

пишу такой скрипт
Код: sql
1.
2.
3.
4.
5.
EXECUTE IBEBLOCK
AS
BEGIN
  SELECT t."ID" FROM my_table t rows 1 into :var;
END;

выполняю
Код: pascal
1.
2.
ibesScriptSetConnection(FScripterHandle, FConHandle);
ibesScriptExecuteFile(FScripterHandle, 'test.sql', nil);

получаю ошибкуInvalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 10.
"ID".Если убрать кавычки вокруг ID, то все работает. IBExpert такой скрипт выполняет
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001085
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Если убрать кавычки вокруг ID, то все работает. IBExpert такой скрипт выполняет
Похоже на игнорирование третьего диалекта. Но в строке подключения он указан

db_name=Server:D:\MyDB.fdb;user_name=SYSDBA;password=masterkey;lc_ctype=WIN1251;clientlib=fbclient.dll;sql_dialect=3
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001090
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Похоже на игнорирование третьего диалекта.
Таки да. Если имя параметра изменить с sql_dialect на SqlDialect, то все работает
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001094
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос: такой скрипт

Код: sql
1.
2.
3.
UPDATE OR INSERT INTO MY_TABLE (.....);
..........
UPDATE OR INSERT INTO MY_TABLE (.....);

В IBExpert в заголовке Script Executive я вижу бегущий прогресс
(NNN) Uptating (or inserting into) MY_TABLE...Можно эту строку получать в cbfOnIBEBlockProgress при вызове ibesScriptExecuteFile?
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001157
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
В IBExpert в заголовке Script Executive я вижу бегущий прогресс
(NNN) Uptating (or inserting into) MY_TABLE...
Можно эту строку получать в cbfOnIBEBlockProgress при вызове ibesScriptExecuteFile?

Какое отношение это имеет к cbfOn IBEBlock Progress? cbfOnIBEBlockProgress дергается функцией ibec_Progress и только ей.
А лог выполнения скрипта, если он тебе необходим, нужно формировать в OnBeforeExecStatement и OnAfterExecStatement.
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001163
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
[На втором запуске после оператора CONNECT возникает AV


Исправил.
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001164
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
_Vasilisk_
Похоже на игнорирование третьего диалекта.
Таки да. Если имя параметра изменить с sql_dialect на SqlDialect, то все работает


Исправил.
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001264
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
А лог выполнения скрипта, если он тебе необходим, нужно формировать в OnBeforeExecStatement и OnAfterExecStatement.
Я так и думал, что ты так скажешь :)

В IBExpert формируется такая красивая строка. А тут придется самому парсить запрос. Ну да ладно
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001298
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Все работает.

Это так и оставляешь?
_Vasilisk_
Еще наткнулся на такую особенность. Для операторов
Код: sql
1.
2.
SET NAMES WIN1251;
SET CLIENTLIB 'fbclient.dll';


OnBeforeExecStatement вызывается, а OnAfterExecStatement нет. Мне не критично, но может так не задумывалось?
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001350
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
В IBExpert формируется такая красивая строка. А тут придется самому парсить запрос
Не увидел второй параметр в OnBeforeExecuteStatement.

Вопрос снят совсем
...
Рейтинг: 0 / 0
Вызов dll-форм из скрипта
    #40001505
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Спасибо. Все работает.

Это так и оставляешь?
_Vasilisk_
Еще наткнулся на такую особенность. Для операторов
Код: sql
1.
2.
SET NAMES WIN1251;
SET CLIENTLIB 'fbclient.dll';


OnBeforeExecStatement вызывается, а OnAfterExecStatement нет. Мне не критично, но может так не задумывалось?


Не смотрел еще, почему там OnAfterExecStatement не дергается. В принципе, должно.
...
Рейтинг: 0 / 0
13 сообщений из 63, страница 3 из 3
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вызов dll-форм из скрипта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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