C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Blob as Ini-file, Использование BLOB -полей IBase как ini-
Alex-San
Отправлено: 30.12.2003, 08:50


Ученик-кочегар

Группа: Участник
Сообщений: 16



Добрый день
С наступающим!


Есть ли возможность использовать BLOB-поля (текстовые) как INI-файлы?
Нужно не совсем типизированную информацию запихать в таблицу..

Заранее спасибо за ответ
Valdemar
Отправлено: 30.12.2003, 16:25


Мастер участка

Группа: Участник
Сообщений: 433



В BLOB поля можно записыть что угодно.
Alex-San
Отправлено: 31.12.2003, 09:09


Ученик-кочегар

Группа: Участник
Сообщений: 16



Это понятно, но как?
Можно ли связать эти компоненты?
Nick
Отправлено: 31.12.2003, 10:05


Машинист паровоза

Группа: Участник
Сообщений: 247



INI теряет скорость, хотя это сейчас не очень актуально, ради удобства и программиста и опытного пользователя.

Разработай лучше свою структуры и пиши/читатай ее.
ну например.

typedef struct
{
int Data;
} TBRInt;

typedef struct
{
double Data;
} TBRDbl;

typedef struct
{
int Len;
char Data[255];
} TBRStr;

union BlobRecordData
{
TBRInt intData;
TBRDbl dblData;
TBRStr strData;
}



typedef BlobRecord
{
char brType; //тип данных
char brName[30]; // наименование параметра
BlobRecordData Data;
}

При чтении читаешь первый байт и наименование, определяешь тип
если наименование нужное читаешь данные, если не определяешь адрес следующего парамется изходя из типа данных.

Если тебе не нужна эта морока.
Берешь блоб пишешь его в файл и открываешь как INI и обратно так же.


** pasha
Отправлено: 31.12.2003, 13:26


Не зарегистрирован







Alex-San

Я так понимаю, вы хотели-бы совместить работу с BLOB-полями,
с возможностью работы методами TIniFile
типа ReadInteger() WriteInteger() ReadString() и другими...
(а хранить этот 'ini' в BLOB-поле базы данных)

Возможно имеет смысл временно создавать такой ini-файл,
записывать в него информацию через эти методы,
а потом этот файл (можно весь) помещать в нужное
BLOB-поле Базы Данных,

а при считывании информации — считывать файл из BLOB-поля
и записывать его на диск в виде ini-файла и читать из файла
методами TIniFile.


Вернуться в Работа с базами данных в C++Builder