
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.04.2003, 18:30
|
|||
|---|---|---|---|
|
|||
UDF на VC6 |
|||
|
#18+
Ребят, привет! Есть небольшая проблемка. Начал писать UDF (до этого для Interbase не писал их вообще) на VC6. Для Interbase 6. Листинг простейший: #include "stdafx.h" #include <ibase.h> extern "C" __declspec(dllexport) int UDFTEST(int&); //--------------------------------------------------------------- BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) { return TRUE; } //------------------------------------------------------------------------ int UDFTEST(int& k) { return 1; // Простейший тест - поставили всегда возвращает 1 } Никакие библиотеки кроме стандартных не подключаются. Функция устанавливается: declare external function udftest integer returns integer entry_point 'UDFTEST' module_name 'udf_test.dll'; При выполнении в запросе (запрос выполнялся в Interactive SQL) select * from toures where udftest(nigths)=1; выдаёт табличку с ошибкой "сonnection lost to database". При этом восстановить соединение никак не удаётся. Ребят, кто-нибудь с такой проблемой сталкивался? Что делать? И ещё. Быть может у кого-нибудь листинги есть по работе c BLOB через UDF на VC6. Если поделитесь - очень обяжете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.04.2003, 18:44
|
|||
|---|---|---|---|
UDF на VC6 |
|||
|
#18+
Есть неплохая статья http://www.ibase.ru/devinfo/udf_ok.htm, правда не на VC, но с блобами немного растолковано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.04.2003, 19:03
|
|||
|---|---|---|---|
|
|||
UDF на VC6 |
|||
|
#18+
Разобрался, почему виснет. Всё дело в том, что результат должен возвращаться как ссылка на глобальную переменную. Вот так: #include "stdafx.h" #include <ibase.h> extern "C" __declspec(dllexport) int& UDFTEST(int); int iResult; //---------------------------------------------------------------------------- BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) { return TRUE; } //---------------------------------------------------------------------------- int& UDFTEST(int k) { iResult=1; return iResult; } Но за ихходники BLOB буду благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1580649]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 368ms |

| 0 / 0 |
