![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid to BLOB
K_Lock © (2006-08-06 18:32:00)Добрый день .
Подскажите пожалуйста:
Есть таблица StringGrid. Как все данные этой таблицы добавить в таблицу БД в поле типа BLOB
K_Lock (2006-08-06 22:35:00) [1]Разобрался. :-) Всем спасибо.
F1- рулит.
Юрий Зотов (2006-08-06 21:31:00) [2]Добавление: чтобы правильно организовать цикл при чтении потока, в него самыми первыми полями нужно записать количество строк и столбцов (2 поля по 4 байта). А уж потом - сами строки (в формате длина+тело).
Юрий Зотов (2006-08-06 21:26:00) [3]> K_Lock © (06.08.06 18:32)
Если данные из StringGrid перегнать в поток (Stream), то остальное уже не проблема, верно? Поскольку существует TBlobStream.
ОК, теперь будем думать, как записать двумерный массив строк (что, по сути, и содержит StringGrid) в поток. Очевидно, это надо делать в двойном вложенном цикле - и, таким образом, осталась последняя проблема: как записать в поток строку переменной длины, чтобы ее потом можно было оттуда прочитать?
Очень просто - сначала в поток пишем длину строки (4 байта), затем саму строку. Соответственно, читается так же - сначала длина (4 байта), потом под строку выделяется память и в нее читается сама строка.
Собственно, вот и вся проблема. Осталось написать то же самое, только уже не по-русски, а на языке Object Pascal.
K_Lock (2006-08-06 21:11:00) [4]Ребят, ну подскажите кто-нибудь....
Virgo_Style (2006-08-06 19:06:00) [5]если я правильно понял
Нет
K_Lock (2006-08-06 18:59:00) [6]т.е. если я правильно понял:
DataSet.FieldByName('BlobField').Assign(StringGrid) ;
??????
KilkennyCat (2006-08-06 18:37:00) [7]SaveToStream ?