|
|
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Исходные данные: DELPHI 7, MSSQL2008 R2 файл грузится в блоб-поле и сохраняется в varbinary(MAX): A) с клиента средствами ADO Б) с mssql- сервера c помощью OPENROWSET Результат: сохраняем из varbinary(MAX) в блоб например, так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. и получаем: из DELPHI А) все хорошо Б) Содержимое файла + такое же количество мусора приписанного после содержимого файла (как аски в юникод и получаем половину нужный файл целиком, половину мусора) из MSSQL : А) все хорошо Б) все хорошо CODPAGE на стороне mssql- сервера (OPENROWSET) на ситуацию не влияет. Что характерно: размер на клиенте указан правильно, fStream.Size но жесточайше воспринимает как юникод или нечто подобное. Чёт туплю: может кто сталкивался? ps: можно, конечно, и через mssql выгрузить, но это не совсем то решение, которое хотелось бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 15:49 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:00 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, а разве для записи не достаточно fStream.CopyFrom(myStream,myStream.Size); ? Зачем ещё fStream.Write(fStream,fStream.Size); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:01 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
goldmi45 Gerasimenko, а разве для записи не достаточно fStream.CopyFrom(myStream,myStream.Size); ? Зачем ещё fStream.Write(fStream,fStream.Size); Как пример. И так и так. Для чистоты эксперимента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:03 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, 22047863 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:04 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko _Vasilisk_, 22047863 Вопрос, в какую сторону рыть: АДО или MSSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:08 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Как пример. И так и так. Для чистоты эксперимента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:24 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Gerasimenko Как пример. И так и так. Для чистоты эксперимента. Ок. Почему все же в первом случае хрень не воспринимается как хрень, а во втором воспринимается как хрень. Сейчас танцую с бубнами и смотрю на размеры и т.д. Что попалось то и подставил в например . Суть не меняется. В первом случае Хрень не Хрень. Во втором: хрень есть хрень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:30 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Ок. Почему все же в первом случае хрень не воспринимается как хрень, а во втором воспринимается как хрень. Я еще раз спрашиваю, чего хочется достичь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:34 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Gerasimenko Ок. Почему все же в первом случае хрень не воспринимается как хрень, а во втором воспринимается как хрень. Я еще раз спрашиваю, чего хочется достичь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 16:37 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Gerasimenko Код: pascal 1. Извините, не оттуда скопировалб очепятка осталась, я даже не заметил когда носом тыкнули, ибо погружен в другое: Код: pascal 1. проблема осталась. Проблема: в бинарном поле сидит инфа. АВ зависимости из какого приложения записана : воспринимается по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:06 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:17 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Gerasimenko Код: pascal 1. например: 'd:\temp\1.txt' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:24 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenkoнапример: 'd:\temp\1.txt' то есть ты из строковой константы пишешь мусор размером в myStream.Size. "Прэлеестно..." (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:34 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Щас: крыша едет... брейк аут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:35 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Gerasimenkoнапример: 'd:\temp\1.txt' то есть ты из строковой константы пишешь мусор размером в myStream.Size. "Прэлеестно..." (с) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. крыша реально едет, могу неадекватно отвечать. Вот это работает для одних бинарников и не работает для других ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:46 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
дело не в BLOB, а в моей тупости и усталости. Разберусь, напишу. если не забуду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 17:53 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Gerasimenko Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 18:01 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Gerasimenko Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 18:04 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
GerasimenkoВот это работает для одних бинарников и не работает для других Вот поэтому не надо тупо копипастить код с гугля. Половина строк в нём совершенно не нужны, а вторая поражает воображение хацкерской извращённостью. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 18:53 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov GerasimenkoВот это работает для одних бинарников и не работает для других Вот поэтому не надо тупо копипастить код с гугля. Половина строк в нём совершенно не нужны, а вторая поражает воображение хацкерской извращённостью. Итого: 1) fStream.Write(fStream, myStream.Size); пишет хрень 2) Для файлов формата DOC, DOCX, mp3 и тп, видимо срабатывает защита от дураков. Там все срабатывает нормально и мусор отметается. (по размеру файла видно, но это не точно, и возможно кто более с этим работал подправят) 3) И, да... проверять надо, что и делал. СПАСИБО ВСЕМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 19:28 |
|
||
|
TFileStriam.Write BLOB различные результаты
|
|||
|---|---|---|---|
|
#18+
В дополнение: 1) И fStream, и myStream могли бы быть нужны в особых случаях, каковых тут не наблюдается. В данном случае достаточно одного вызова TBlobField.SaveToFile. 2) Запуск ассоциированной программы должен сопровождаться проверкой возвращаемой ошибки, поскольку даже при наличии у файла расширения, оно может быть не ассоциировано. 3) Диалог "Open With" показывается либо штатной функцией API SHOpenWithDialog(), либо вербой "openas", причём должен производиться и в случае получения SE_ERR_NOASSOC/SE_ERR_ASSOCINCOMPLETE в пункте 2. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 19:41 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39907621&tid=2038738]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 281ms |
| total: | 537ms |

| 0 / 0 |
