|
Тема |
Зов за идея :с |
|
Автор | Sure (Нерегистриран) | |
Публикувано | 15.08.05 21:46 |
|
|
Опитвам се значи да пиша нещо като проста машина за 'плоски' бази данни , но се чудя как точно да имплементирам нещата така че да имам възможност за динамично създаване и редактиране на таблици, имена на полета , тип данни и т.н.
Засега ползвам следната схема :
//Имам структура представляваща таблицата
struct _record
{
char first_name[64];
unsigned age;
unsigned char blob_picture[256*256];
.....
};
// ползвам STL за манипулациите, нещата се пишат и четат от двоичен файл.
std::list<_record*> DB;
std::list<_record*> DBFiltered;
std::list<_record*>::iterator DBIter;
.....
//хедър в началото на файла
struct _header
{
char file_name [512]; //the database file name and path
char table_name[32]; //the database/table name
char field_names[1024]; //names are separated with ','
unsigned int field_count;
unsigned int record_count;
unsigned long sizeof_record; //размер на записите
......
};
Дотук добре..работи , има и елементарен SQL. Но взех да си задавам въпроса, какъв би бил най-елегантния начин да се избавя от тази статична структура/запис ?
Имам предвид какво би станало ако цялото това нещо отиде в .dll , как юзера
ще може да си проектира собствени таблици с различни типове данни, брой и размер на полетата и съответно размер на записа ? Иначе казано има ли начин
подобно изпълнение да се направи да работи с указани от юзера структури(или например войд указатели каствани до тях...хрмз...) ?
Съвети, идеи,порицания и похвали са добре дошли !
|
| |
|
|
|