|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Вот тестовый пример. Непосредственно вызова, при attach'е к базе, происходит два раза вызов callback-функции Код: pascal 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 08:59 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Нюанс в том, что используется собственный плагин для шифрования и данный пример с той же структурой отлично выполняется в c++. Но в delphi вызывается callback-функция 2 раза и в итоге вылетает fbexception: Callback return 0 Тестировал пример и на delphi 2006 и на rad studio xe8. Использовал файл firebird.pas от разработчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 09:03 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Клиентский колбэк выполняется столько раз сколько об этом попросит Key Holder. С некоторыми исключениями. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2018, 13:22 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКлиентский колбэк выполняется столько раз сколько об этом попросит Key Holder. С некоторыми исключениями. Да, спасибо, именно в KeyHolder и была причина. Тему можно закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 12:55 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Теперь этот пример работает нормально. Вы можете подсказать, получится ли у меня установить callback-функцию, если для подключения я использую TIBDatabase в своей программе? здесь у меня используется iprovider, iattachment..передавать handle соединения в tibdatabase? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 09:40 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslaboneВы можете подсказать, получится ли у меня установить callback-функцию, если для подключения я использую TIBDatabase в своей программе? Код: plaintext 1.
Колбек должен использоваться тем же потоком, в котором вызвана fb_database_crypt_callback. Т.е. TDatabase.Open нужно вызывать в том же потоке. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 10:54 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvlad, пробую вот так - не получается. Я не совсем Вас понял, если честно. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 08:37 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslabonehvlad, пробую вот так - не получается. Я не совсем Вас понял, если честно. Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 10:30 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslabone, я не пойму, а чем не устраивает наш пример на Дельфи??? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 11:21 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvlad, Вот это рабочий код - callback вызывается, соединение устанавливается: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Вы указали сделать так: Код: pascal 1. 2.
Я так понимаю, Вы имели ввиду сделать так мне: Код: pascal 1. 2. 3. 4. 5. 6.
Так тоже не работает - callback не вызывается. Или Вы имели ввиду, что надо напрямую использовать Код: pascal 1.
, минуя IProvider? (Использую TIBDatabase из пакета ibx, среда delphi 2006) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 11:40 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslaboneИли Вы имели ввиду, что надо напрямую использовать Код: pascal 1.
, минуя IProvider? (Использую TIBDatabase из пакета ibx, среда delphi 2006)Именно. Вопрос же был про TIBDatabase и, соответственно, ISC API ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 11:52 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvlad, А есть ли возможность получить хендел коннекта из IAttachment ? Тогда можно было бы подключится через attachDatabase а после использовать TIBDatabase и подобные. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 12:30 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslabone, Tonal я так понимаю, вам до лампочки http://www.ibase.ru/download-demo-firebird-encryption-plugin ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 12:39 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
kdv, авторВ этом кратком руководстве находится описание тестирования демонстрационной версии IBSurgeon Firebird Encryption Plugin для шифрования ваших баз данных Мы не используем "Firebird Encryption Plugin Framework от IBSurgeon". Плагин шифрования свой. В исзодниках клиента используется fbcrypt.dll Мы её не используем - т. к. её н5ет в стандартной поставке сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 12:51 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
TonalА есть ли возможность получить хендел коннекта из IAttachment ?Есть: Код: plaintext 1. 2.
Последний пар-р, который void* - это IAttachment или ITransaction TonalТогда можно было бы подключится через attachDatabase а после использовать TIBDatabase и подобные.Зачем ??? Чтобы избежать вызова fb_database_crypt_callback делаем вызов десятка других ф-ций? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 13:16 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
kdvrasslabone, Tonal я так понимаю, вам до лампочки http://www.ibase.ru/download-demo-firebird-encryption-plugin Кстати рассмотрел подробнее ваши версии клиента. У вас в BeforeConnect вызывается установка пароля через вашу dll и подключение через интерфейсы. Т. е. это никак не является примером использования штатного апи вместе с компонентами. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 12:45 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvladTonalА есть ли возможность получить хендел коннекта из IAttachment ?Есть: Код: plaintext 1. 2.
Последний пар-р, который void* - это IAttachment или ITransaction TonalТогда можно было бы подключится через attachDatabase а после использовать TIBDatabase и подобные.Зачем ??? Чтобы избежать вызова fb_database_crypt_callback делаем вызов десятка других ф-ций? В общем, попробовал сначала сделать вызов через установку Код: plaintext 1.
, как Вы и сказали. Используемые типы: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
Объявление функции: Код: pascal 1.
Переменные: Код: pascal 1. 2. 3. 4.
Вызываю: Код: pascal 1. 2. 3. 4.
Результат: после вызова fb_database_crypt_callback переменная sstatus=1 . При вызове процедуры gRadugaDatabase.Open; вызова callback-функции не происходит . 2-й способ через передачу handle от IAttachment. Объявление функции: Код: pascal 1.
Переменные: Код: pascal 1. 2. 3.
Вызываю: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Результат: после вызова fb_get_database_handle переменная sstatus=1 , а dbhandle=nil . Аналогичный вызов в c++: Код: plaintext 1. 2. 3. 4. 5.
возвращает хэндл. Что-то не так с типами данных, которые я использую? Может быть у Вас удастся увидеть, что здесь не так сделано? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 15:00 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslabone Код: pascal 1.
Тут нужен массив из 20 элементов. Обычно его называют ISC_STATUS_ARRAY, но название не так важно. rasslaboneпеременная sstatus=1 И исследовать вест статус-вектор, а не только его первый элемент. rasslaboneОбъявление функции: Код: pascal 1.
Насколько я помню, IBX динамически загружает библиотеку клиента, так что это объявление может связать не с тем экземпляром dll ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 15:10 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvladrasslabone Код: pascal 1.
Тут нужен массив из 20 элементов. Обычно его называют ISC_STATUS_ARRAY, но название не так важно. rasslaboneпеременная sstatus=1 И исследовать вест статус-вектор, а не только его первый элемент. Использовал isc_status_array, как Вы и указали, в случае вызова callback'а ничего не поменялось , а в случае передачи handle после вызова fb_get_database_handle чем-то заполнилась переменная dbhandle, но после установки через gRadugaDatabase.SetHandle соединение не установилось. В обеих случаях у status заполняется только первый элемент единицей , остальные - по нулям. Объявил статус так: Код: pascal 1. 2.
По поводу rasslaboneОбъявление функции: Код: pascal 1.
Насколько я помню, IBX динамически загружает библиотеку клиента, так что это объявление может связать не с тем экземпляром dll Для нас это пока не актуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 16:16 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Тэг потерял, в цитату все попало. Сорри ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 16:17 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
hvladrasslabone Код: pascal 1.
Тут нужен массив из 20 элементов. Обычно его называют ISC_STATUS_ARRAY, но название не так важно. rasslaboneпеременная sstatus=1 И исследовать вест статус-вектор, а не только его первый элемент. rasslaboneОбъявление функции: Код: pascal 1.
Насколько я помню, IBX динамически загружает библиотеку клиента, так что это объявление может связать не с тем экземпляром dll Использовал isc_status_array, как Вы и указали, в случае вызова callback'а ничего не поменялось, а в случае передачи handle после вызова fb_get_database_handle чем-то заполнилась переменная dbhandle, но после установки через gRadugaDatabase.SetHandle соединение не установилось. В обеих случаях у status заполняется только первый элемент единицей, остальные - по нулям. Объявил статус так: Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 16:24 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslaboneВ обеих случаях у status заполняется только первый элемент единицей, остальные - по нулям. Это означает успешное выполнение функции. Читай API Guide. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 16:45 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovrasslaboneВ обеих случаях у status заполняется только первый элемент единицей, остальные - по нулям. Это означает успешное выполнение функции. Читай API Guide. Замечательно. Функции возвращают успех, но калбек не вызывается, а хендел не является хенделом соединения. Куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 17:11 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslaboneДля нас это пока не актуально.Что именно неактуально ? TLS в каждой DLL - свой собственный, и это - актуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 18:25 |
|
Callback функция для установки crypt key вызывается два раза в Delphi
|
|||
---|---|---|---|
#18+
rasslaboneв случае передачи handle после вызова fb_get_database_handle чем-то заполнилась переменная dbhandleЧем ? rasslaboneпосле установки через gRadugaDatabase.SetHandle соединение не установилосьЧто значит - не установилось ? Оно уже установлено. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2018, 18:28 |
|
|
start [/forum/topic.php?fid=40&msg=39731077&tid=1560904]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 556ms |
0 / 0 |