|
|
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Нужно в базу записывать небольшие куски (до 60 байт) бинарных данных. Также на это поле нужен уникальный ключ. Создал в базе поле Код: sql 1. А как теперь записать в него данные, при условии, что в подключении указано Код: sql 1. Как пробовал Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. везде вылетает ошибка arithmetic exception, numeric overflow, or string truncation Cannot transliterate character between character sets. Сервер IB2009. Компоненты IBX. Delphi XE3 С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 18:09 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, OCTETS в Interbase нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 18:11 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисOCTETS в Interbase нету? Должно быть. Это очень древняя вещь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 18:23 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, попробуй Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 18:36 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисOCTETS в Interbase нету?Есть. Сейчас щупаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 18:43 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов Дениспопробуй Код: sql 1. Адекватно записать данные не удается Код: pascal 1. 2. вычисляет длину данных как Код: pascal 1. соответственно два стоящих подряд #0#0 усекает данные. SetAsAnsiString определена как Код: pascal 1. 2. 3. 4. и теперь один #0 усекает строку. Вызов CreateBlobStream приводит к AV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 19:29 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Все, что приходит в голову - это сохранять в HEX или на клиента отдавать поле как BLOB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 19:39 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Выкинуть DataSet и использовать IBSQL не предлагать?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 20:00 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВыкинуть DataSet и использовать IBSQL не предлагать?..Пока нет. Внутренний фреймворк заточен на TDataSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 20:05 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Если отнаследоваться от TIBDataSet, переопределить InternalInitFieldDefs и на CHARSET NONE/OCTETS вернуть FieldType = ftBlob взлетит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 21:04 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Какого типа поле создаётся в датасете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 21:57 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, собственно, поскольку в большинстве компонент varchar или char преобразуется в строку C с окончанием нулями, то никакие бинарные данные туда записать нельзя. OCTETS может чего и даст, но не факт. Поэтому, бинарные данные пишутся только в блоб. _Vasilisk_Также на это поле нужен уникальный ключ. это ахинея, ответственно заявляю. По бинарным данным, особенно длиной 60 байт, не может быть никакого уникального ключа. Читаем http://www.ibase.ru/natural-keys-versus-atrificial-keys-by-tentser/ выход - доп. столбец как хэш этих 60 бинарных байт, и вот его уже можно делать уникальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 00:34 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
kdvв большинстве компонент varchar или char преобразуется в строку C с окончанием нулями Нет, так делают только очень-очень глупые компоненты, а таких всё-таки не большинство. kdvПо бинарным данным, особенно длиной 60 байт, не может быть никакого уникального ключа. Да ну? 4 или 8 бинарных байт целого - уникальный ключ в порядке, 16 байт гуида - уникальный ключ в порядке, а на 60 вдруг внезапный качественный скачок и уникальный ключ невозможен? Ты ещё скажи, что на строках вообще уникальные ограничения невозможны... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 12:28 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
hvladКакого типа поле создаётся в датасете ?ftString (TIBStringField) kdvвыход - доп. столбец как хэш этих 60 бинарных байт, и вот его уже можно делать уникальным.Это не выход 1. Хеш по определению не может быть уникальным 2. Хеш это те-же бинарные данные, которые нужно как-то сохранять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 16:11 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Хеш (тем паче их много разных) - всё же имеет представление в виде строки. Хотя в твоём случае особого смысла в нём нет, лучше добить обработку binary. Data содержит корректные данные (байты) ? Строковое представление тебе, по сути, вроде бы не нужно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 16:23 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_hvladКакого типа поле создаётся в датасете ?ftString (TIBStringField)А должно быть [var]binary. Без этого не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 16:29 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамХеш (тем паче их много разных) - всё же имеет представление в виде строки.Я с тем же успехом могу данные записать в hex Гаджимурадов РустамData содержит корректные данные (байты) ?Ты сейчас о поле? Я же говорю - обрезается до перого #0 если такой встретится Гаджимурадов РустамСтроковое представление тебе, по сути, вроде бы не нужно.Нет Гаджимурадов Рустамлучше добить обработку binary.В понедельник еще поковыряюсь hvladА должно быть [var]binary.Это какой тип? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 17:02 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_> Ты сейчас о поле? Я же говорю - обрезается Нет, конечно, о свойстве (не помню, доступно ли оно в TField). Хотя если у тебя даже Get/SetData не пашут, то, наверное, нет. > Это какой тип? ftBytes, видимо. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 17:18 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_hvladА должно быть [var]binary.Это какой тип?Насколько я понимаю и помню эту кухню, нужно править TIBCustomDataSet.InternalInitFieldDefs, чтобы оно создавало ftVarBytes (ftBytes) при наличии чарсета OCTETS у поля SQL_VARYING (SQL_TEXT) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 19:01 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
hvladНасколько я понимаю и помню эту кухню, нужно править TIBCustomDataSet.InternalInitFieldDefs, чтобы оно создавало ftVarBytes (ftBytes) при наличии чарсета OCTETS у поля SQL_VARYING (SQL_TEXT)Не взлетело. При подмене типа получаем картину Код: 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. В начало буфера добавляется еще и длина. А потом, контрольный в голову Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. InternalSetFieldData имела в виду мои ftVarBytes Если тип поля в InternalInitFieldDefs вернуть как ftBlob, то на Post возникает "Internal error" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 16:39 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Код: pascal 1. ну это чепуха для бинарных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 16:46 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов Денисну это чепуха для бинарных данныхЯ знаю. Но так оно есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:03 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
ну раз уж начал править, правь Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:04 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_В начало буфера добавляется еще и длинаУ себя в буфере могут и фазу луны хранить, тебе-то что _Vasilisk_InternalSetFieldData имела в виду мои ftVarBytesНу так надо её наказать научить PS За многократное повторение PRecordData(Buff)^.rdFields[FMappedFieldPosition[Field.FieldNo - 1]] автора этого кода нужно сколько же раз проклясть канделябром... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:10 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Код: pascal 1. 2. добавь проверку CHARSET. Как не подскажу, пока нет времени разбираться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:16 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийну раз уж начал править, правьЯ не правлю. Я наследуюсь hvladУ себя в буфере могут и фазу луны хранить, тебе-то чтоРазмер буфера совпадает с размером поля. И лишние два байта могут быть не к месту hvladНу так надо её наказать научитьДумаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:16 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
hvlad, это писатели IBX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:17 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисКак не подскажу Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:18 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, не трогай NONE, только OCTETS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:22 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
16.10.2018 17:16, _Vasilisk_ пишет: > Я не правлю. Я наследуюсь не взлетит. не боись, каждый дельфятник должен иметь своего клона IBX ;-) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:25 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Симонов Денисне трогай NONE, только OCTETSУчту. А почему? Мимопроходящий> Я не правлю. Я наследуюсь не взлетит.Взлетит. Уже вижу как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 17:36 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Потом покаж, я в свой клон от XE5 вставлю.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 18:46 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Если тип поля в InternalInitFieldDefs вернуть как ftBlob, то на Post возникает "Internal error" Может быть потому, что блобы надо записывать в БД отдельно и заранее, а в строку записываются только номера (хэндлы) блобов. Вообще попробуй своё приложение писать одновременно на IBX и UIB Потому что UIB гораздо ниже к FB API и некоторые подробности, спрятанные в "красивых" компонентах - в UIB вылезают и колют. И чтобы понять как именно тебе править работу с FB API в IBX - можно будет для образца смотреть в каком порядке и с какими данными вызываются функции FB в UIB и подгонять твой форк IBX под этакий эталон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 18:48 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Vlad F, может вам на пару IBX2 портануть и поддерживать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 18:49 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Arioch, А может на троих или на пятерых? Мимипроходящий вон тож постоянно напрашивается.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 18:52 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Ariochпопробуй своё приложение писать одновременно на IBX и UIB Разный интерфейс, второй как будто пьяный делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 18:55 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
16.10.2018 18:52, Vlad F пишет: > А может на троих или на пятерых? Мимипроходящий вон тож постоянно напрашивается.)) не взлетит. у меня форк порождён от IBX 4.42 сейчас там от творчества Джефа осталось очень мало. но начиналось всё как у Василиска, с попытки обойтись малой кровью... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:03 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, и небось сидишь на D5... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:20 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Все. Я пас. ftVarBytes не спасло Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Кому интересно - вот наработки Код: 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. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. Может допилю, как время будет, но врядли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:34 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Arioch_Vasilisk_Если тип поля в InternalInitFieldDefs вернуть как ftBlob, то на Post возникает "Internal error" Может быть потому, что блобы надо записывать в БД отдельно и заранее, а в строку записываются только номера (хэндлы) блобов.Internal error это мой косяк. Внимания не обращайте AriochВообще попробуй своё приложение писать одновременно на IBX и UIB Потому что UIB гораздо ниже к FB API и некоторые подробности, спрятанные в "красивых" компонентах - в UIB вылезают и колют.На TIBSQL задача решается. Интересовало решение на TIBDataSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:36 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_> На TIBSQL задача решается. С правками или без? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:48 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Arioch, API-шная часть IBX2 кстати распространяется и отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 19:56 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
AriochVlad F, может вам на пару IBX2 портануть и поддерживать ? Нафик этот ибх2 нужен обычному прикладнику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 20:12 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Все. Я пас. ftVarBytes не спаслоПосмотри на ADODB - там всё работало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 20:27 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, А как дышал, как дышал!! (с) )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 20:55 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, быстро сдался. А уж хотел предложить в исходники FibPlus заглянуть, там это поправили. Один фиг их тут 100500 раз выкладывали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 21:38 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Я тоже хотел посоветовать заглянуть в FibPlus, но не уверен, что игра вообще стоит свеч, если у него есть воркэраунды. Разве что на будущее или из спортивного интереса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 23:04 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Короче, надо пока он пребывает типа в коме тырить из него все, что плохо лежит. Я сам, помнится лет пятнадцать тому, не удержался и позаимствовал у йом алиас-менеджер, приторочив сей трофей к IBX.)) Модератор: Тема перенесена из форума "Firebird, InterBase". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2018, 23:31 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
А какой нибудь энкодинг совсем не предлагать? например хранить в виде HEX строки в 60 * 2 байтах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 12:04 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЯ тоже хотел посоветовать заглянуть в FibPlus, но не уверен, что игра вообще стоит свеч, если у него есть воркэраунды. Разве что на будущее или из спортивного интереса. В фиб+ все работает. Я гуиды хранил в октетс чар полях (зачем-то), никаких проблем не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 12:45 |
|
||
|
Сохранение бинарных данных
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам_Vasilisk_> На TIBSQL задача решается. С правками или без?Без. Но с потенциальными граблями Код: 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. С другой стороны, никто не мешает сделать так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. обернув все в хелпер и добавив проверки по вкусу Симонов Денисбыстро сдался.Работу работать нужно DimonkaА какой нибудь энкодинг совсем не предлагать? 21702895 КотовасияВ фиб+ все работает.Я даже больше скажу - в FireDAC все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 14:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040259]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 488ms |

| 0 / 0 |
