|
|
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Добрый день. Смысл такой, нужно бинарные данные отправить в виде строки в MSSQL. Вроде как есть момент в дельфях: System.NetEncoding.TBase64Encoding но как это работает не могу разобраться... помогите (подскажите) строчкой кода, как правильно это должно работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 11:28 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 11:35 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Valery_BИгорь_UUS, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Спасибо... код рабочий, но в итоге сохраняет что-то не то... сейчас у меня код такой: Код: 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. Исходный файл имеет размер 11556, то что сохраняется в БД имеет больший размер 11859. При этом если посмотреть "поток" данных, то в самом начале он идентичен, к середине потока появляется "какой-то мусор"... но самое интересное файл заканчивается тем же потоком что и исходный. То что отправил в MSSQL читаю след. образом: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:56 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. Читая справку mssql: Двоичные типы такие как "varbinary, binary, image, timestamp, rowversion" должны храниться как строка в кодировке Base64. Вроде как всё правильно, но что-то идёт не так... помогите разобраться уже голову сломал(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 17:00 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Я бы советовал пользоваться IdCoderMIME.TIdEncoderMIME. Он кроссплатформенный в отличие от System.NetEncoding. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 17:33 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, а Delphi какая версия? Попробуй так Код: pascal 1. Попробуй закодировать текст и раскодировать его online декодером. и на что ругается mssql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:58 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
TNetEncoding.Base64.EncodeBytesToString конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:59 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, на вскидку https://olontsev.ru/2013/06/convert-to-base64-and-back/ https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-the-binary-base64-option?view=sql-server-2017 https://medium.com/falafel-software/t-sql-easy-base64-encoding-and-decoding-872ad184bd7e https://stackoverflow.com/questions/32243815/sql-server-base64-encoding-stored-function https://dba.stackexchange.com/questions/191273/decode-base64-string-natively-in-sql-server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 21:40 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSДвоичные типы такие как "varbinary, binary, image, timestamp, rowversion" должны храниться как строка в кодировке Base64Нет там такого. Читай про типы данных и XML https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-2017 https://docs.microsoft.com/ru-ru/sql/relational-databases/xml/use-the-binary-base64-option?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 21:49 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
rgreatОн кроссплатформенный в отличие от System.NetEncoding. а в каком месте System.NetEncoding не кросс-платформа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 10:01 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSпомогите разобраться уже голову сломал(( Разберись, что ты хочешь - работать с Json, БД, полем или ещё чем. Если ты хочешь, 1. Преобразовать поток в Base64 - я сделал пример. 2. Работать с полем VARBINARY(MAX) - то тебе надо преобразовать строку Base64 в VARBINARY. 3. У поля VARBINARY есть метод .Write - работай с ним 4. То создай сторед процедуру, с параметром @Data VARBINARY(MAX) и создавай параметр с соответствующим типом. Сделай рефакторинг своего "кода" на методы из не более чем 3-5 строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 10:53 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
У меня всё работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. авторID Data EncodedText 1 0x48656C6C6F20776F726C6421 Hello world! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:15 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Василий 2rgreatОн кроссплатформенный в отличие от System.NetEncoding. а в каком месте System.NetEncoding не кросс-платформа?Там нельзя кодировку текста выставить. И под линуксом там по умолчанию идет utf8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 12:07 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Valery_BУ меня всё работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. авторID Data EncodedText 1 0x48656C6C6F20776F726C6421 Hello world! Спасибо за намёк... зачем тогда base64? может поискать как передавать параметр в виде бинарной строки в HEX формате? т.е. поток данных не перекодировать в base64 а перевести его в текст и "засунуть" в json... я вот думаю, зачем мне передавать в base64 если в mssql мне нужно будет перекодировать base64 в "нормальный" бинарник.. или я что-то не догоняю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 14:37 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Я несколько не врубился. В MSSQL есть возможность в таблице создать поле для хранения бинарных данных (JPEG, например, или там PDF или ZIP, не важно): например VARBINARY(MAX) И если программа-клиент написана на Delphi, то имеющиеся компоненты доступа позволяют получить это поле в виде TBLOBField со всеми вытекающими удобствами записи/чтения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 14:44 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнЯ несколько не врубился. В MSSQL есть возможность в таблице создать поле для хранения бинарных данных (JPEG, например, или там PDF или ZIP, не важно): например VARBINARY(MAX) И если программа-клиент написана на Delphi, то имеющиеся компоненты доступа позволяют получить это поле в виде TBLOBField со всеми вытекающими удобствами записи/чтения. всё бы ничего, но нужно передать данные в формате json ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 15:14 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, Чем отличается формат json от форматов zip, jpeg, pdf? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 15:29 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, кстати, я так делаю изменения софта реплицирую базой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 15:33 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSвсё бы ничего, но нужно передать данные в формате json Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 15:54 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSзачем тогда base64? Base64 увеличивает размер на 3/4, а хексы ровно в 2 раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 17:17 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
rgreatВасилий 2пропущено... а в каком месте System.NetEncoding не кросс-платформа?Там нельзя кодировку текста выставить. И под линуксом там по умолчанию идет utf8. Да и правильно, для целей коммуникации все кодировки помимо utf8 должны умереть. Но для особых любитетей никто не мешает засунуть RawByteString ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 17:49 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Василий 2Да и правильно, для целей коммуникации все кодировки помимо utf8 должны умереть. Но для особых любитетей никто не мешает засунуть RawByteStringАга, но проблема в том что на вход функции там идет String UTF16 а в кишках ее обрабатывают как поток UTF8. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 19:23 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Ты конечно можешь попробовать попытаться запихать в дельфовый стринк байты в формате UTF8, но такой секс на ветру с дефайнами и хаками памяти - это без меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 19:24 |
|
||
|
Помогите разобраться: Строка в кодировке Base64
|
|||
|---|---|---|---|
|
#18+
Valery_BИгорь_UUSзачем тогда base64? Base64 увеличивает размер на 3/4, а хексы ровно в 2 раза. Вообще-то base64 на 1/3 увеличивает: 3 => 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39837548&tid=2039247]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 532ms |

| 0 / 0 |
