![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как сохранить файл в БД MS SQL Server?
Алексей Петухов © (2004-02-16 07:27:00)
Здравствуйте уважаемые мастера.
Не подскажете, как сохранить файл в БД MS SQL Server?
я делаю так:
Читаю файл по батам и набираю в string функцией CHR.
Затем сохраняю в БД в поле text. Воссоздать не получается.
Причем с БД paradox все проходит хорошо, там я для хранения файла использую поле типа BLOB(1,3) "Formated memo"
Подскажите что мне делать?
Заранее благодарен.
Nikolay M. (2004-02-17 09:06:00) [1]
> В принципе в поле типа text то-же любые данные хранить можно,
> а все-таки поле text гроаздо длиннее.
> Хотя нет, извините, то-же 2Гбайт.
Тебе говорят как правильно, а ты все о том же.
Хотя бы аргумент, что в среднем бинарник, переведенный твоим способом в текст, будет занимать раза в 2-3 больше, чем если бы его хранить image-ем тебя тоже не переубедит?
Алексей Петухов (2004-02-16 18:43:00) [2]
Спасибо большое всем з помощь
А по поводу
> а не проще использовать тип поля Image (так всеже надежнее,
> храни хоть текст хоть бинарник)
В принципе в поле типа text то-же любые данные хранить можно,
а все-таки поле text гроаздо длиннее.
Хотя нет, извините, то-же 2Гбайт.
mtb (2004-02-16 13:27:00) [3]
>>Читаю файл по батам и набираю в string функцией CHR.
>>Затем сохраняю в БД в поле text. Воссоздать не получается.
а не проще использовать тип поля Image (так всеже надежнее, храни хоть текст хоть бинарник)
с таким кодом для записи
ATable1.Append;
TblobField(ATable1.FieldByName("bl")).LoadFromFile("c:\asdsa.exe");
ATable1.Post;
для чтения данных
TBlobField(ATable1.FieldByName("bl")).SaveToFile ("c:\asssa123.exe")
bl название поля на МС скуель (image!!!)
Алексей Петухов (2004-02-16 12:10:00) [4]
> Вот только код затаил и показывать не хочет :)
:-) Ежели надо то код покАжу.
Проблема решилась установкой в свойстве поляTransLiterate:=false.
А по поводу чесания: я еще и не так умею. О как :-)
Nikolay M. (2004-02-16 11:52:00) [5]
> сдается мне, что поле типа BLOB(1,3) "Formated memo" не
> подойдет для бинарных файлов - memo для текста,
Во-первых, это у него для парадокса, а во-вторых, он их все равно потом в строку через CHR в строку колбасит. Вот только код затаил и показывать не хочет :)
Danilka (2004-02-16 11:46:00) [6]
А какой файл пишешь, текстовый или бинарный?
Вообще-то я не знаток МС-Скуля, но, сдается мне, что поле типа BLOB(1,3) "Formated memo"не подойдет для бинарных файлов - memo для текста, у тебя скорее всего всякие символы теряются, или вообще, кодировка на какой-нибудь юникод меняется :))
Nikolay M. (2004-02-16 11:44:00) [7]
> Читаю файл по батам и набираю в string функцией CHR.
> Затем сохраняю в БД в поле text
Левой рукой правое ухо чешешь, имхо.
Сделай-таки поле типа image и загружай файл, как сказали в [1].
Алексей Петухов (2004-02-16 11:39:00) [8]
> TBlobField.LoadFromFile(const FileName: string);
> Чем не подходит?
Не подходит. Результат - тот же.
Проблема не в том как получить и присвоить данные полю, а в том как их сохранить на MS SQL 2000.
После сохранения данных на сервер при получаю не то, что пытался сохранить.
Delirium (2004-02-16 10:28:00) [9]
Лучше не text, а image - чтобы не было проблем с бинарными файлами.
asp (2004-02-16 09:35:00) [10]
TBlobField.LoadFromFile(const FileName: string);
Чем не подходит?