|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Здравствуйте! Перевожу пример 10.backup.cpp на Pascal (Delphi XE10). Возникли проблемы с функцией printInfo. Функцию isc-vax-integer нашел этой теме: https://www.sql.ru/forum/1325822/isc-vax-integer-i-iattachment но не могу понять, подходит ли PortableInteger для этой ситуации. Наивная трансляция получилась следующая: Код: 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
при выполнении ошибок не выдает, но в outBuffer записывается мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 16:28 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Строки в буфере не нуль-терминированные. И уж тем более - не юникодные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 17:19 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я смотрел значение PAnsiChar(p) в отладчике, там проблемы с не-нуль-терминированностью еще нет. Проблема где-то гораздо раньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 17:36 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaosЯ смотрел значение PAnsiChar(p) в отладчике Ну значит ты можешь в том же отладчике посмотреть где, когда и откуда в outBuffer попадает мусор и не морочить нам хрустальные шары. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 18:38 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos, зачем изобретать велосипед, когда и isc_vax_integer, и isc_portable_integer экспортируются из fbclient.dll, которая в любом случае загружена процессом ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 18:59 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 19:00 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
hvlad Странный выбор названия для этого типа. Всегда short был 2 байта и tiny - 1 байт. "Плюс" в карму тому, кто так поиздевался... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 19:13 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
hvlad, Переделал PrintLine так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
isc_vax_integer возвращает 0. Может неправильно объявил? Ориентировался на SLONG API_ROUTINE isc_vax_integer(const SCHAR* input, SSHORT length) PrintLine из вызывается PrintInfo (p в PrintLine - это @results): т.е. данные в results есть и раз бэкап успешно создается, скорее всего правильные. Значение p - $18F054. Соответственно, p^ - 62. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 09:54 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 10:57 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
hvlad, Точно. Теперь isc_vax_integer вернул то же, что и PortableInteger - 62. В любом случае, строки по адресу p + sizeof(word) нет, любой длины. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 11:45 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Идём дальше. nicholaos Код: pascal 1.
nicholaos Код: pascal 1. 2.
nicholaos В любом случае, строки по адресу p + sizeof(word) нет, любой длины. В данном случе в results лежит 62, 0, 0, 1, 0, 0, 0, 0... 62 - isc_info_svc_line 0, 0 - длина строки (0) 1 - isc_info_end ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 12:17 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
hvlad, Т.е. на самом деле никакой информации там нет? Я думал будет лог по типу того, что выдает gbak. Тогда проще вообще удалить PrintInfo. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 13:39 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos, это смотря с какими ты ключами gbak запускаешь (тегами в данном случае). Он может лог операций выдавать в буфер, если ты его не в лог файл пишешь ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 13:44 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaosТ.е. на самом деле никакой информации там нет? Я думал будет лог по типу того, что выдает gbak. Так gbak ничего и не выдаёт при тех же условиях запуска. Поэтому и от сервисов ты получаешь то же самое ничего. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 13:45 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Симонов Денис, Dimitry Sibiryakov, Точно тэг? Добавил spb2.insertTag(st, isc_action_svc_get_fb_log); получил ошибку Internal error when using clumplet API: attempt to store 0 bytes in a clumplet, need 1 Если сделать так: spb2.insertInt(st, isc_spb_options, isc_action_svc_get_fb_log); ошибки нет, но и результата нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 14:15 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Продолжайте случайный поиск. Через бесконечное количество лет вам удастся воспроизвести второй том "Мёртвых душ". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 14:21 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos Я думал будет лог по типу того, что выдает gbak. hint: isc_spb_verbose nicholaos Тогда проще вообще удалить PrintInfo. nicholaos Добавил ... spb2.insertInt(st, isc_spb_options, isc_action_svc_get_fb_log); Может API Guide почитать сначала ? PS Инкремент p кто делать будет ? nicholaos Код: pascal 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 14:26 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
hvlad Проще вообще всё удалить. Я относительно примера 10.backup.cpp. Логично либо добавить isc_spb_verbose, либо вообще удалить printLine, если она всегда упирается в isc_info_end. hvlad Может API Guide почитать сначала ? Вы имеете в виду https://www.ibase.ru/files/interbase/ib6/ApiGuide.pdf от Interbase 6? hvlad Инкремент p кто делать будет ? Виноват. Добавил inc(p) после case. Добавил spb2.insertTag(st, isc_spb_verbose); ничего не поменялось. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 15:10 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos Я относительно примера 10.backup.cpp. Логично либо добавить isc_spb_verbose, либо вообще удалить printLine, если она всегда упирается в isc_info_end. nicholaos hvladМожет API Guide почитать сначала ? nicholaos Добавил inc(p) после case. Добавил spb2.insertTag(st, isc_spb_verbose); ничего не поменялось. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 15:30 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
В своей реализации я PrintLine удалил, в ней нет необходимости. Надеюсь, когда-нибудь все примеры из examples/interfaces переведут на Pascal в каноничной реализации. В любом случае всем спасибо за участие. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 17:27 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaos, конечная цель-то какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 17:31 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
kdv, Делать бэкап/рестор не через CreateProcess gbak. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 17:50 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
TIBBackupService/TIBRestoreService уже выпили из IBX, а TFDIBBackup/TFDIBRestore из FireDAC?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 18:01 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Да, они и используются. Но раз в FB3 добавили новый OO API, хотел проверить как получится на нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 18:08 |
|
Пример 10.backup.cpp на Pascal
|
|||
---|---|---|---|
#18+
nicholaosНо раз в FB3 добавили новый OO API, хотел проверить как получится на нем. Проверка провалилась: уровень API тебе пока не по зубам, вернись к киданию мышкой готовых компонент. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 18:29 |
|
|
start [/forum/topic.php?fid=40&msg=40035810&tid=1559883]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 157ms |
0 / 0 |