Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB

Реферат Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB





';

ref.reftables [0]. reftable = & menv.tsupplier;


}


void qthing :: GetRef_thing (uint num, char * key, char * val, db_recno_t * & refs, uint & ref_count)

{

thingKey * key1 = (ThingKey *) key;

thingVal * val1 = (ThingVal *) val;

if (num == 0)

{

refs = & Val1-> tsupplier; ref_count = 1;

}


}

void thingKey :: Export (FILE * f)

{

fprintf (f, "% d", key);

}

void thingKey :: Import (char * buf, uint len)

{

int j, num, i = 0;

char temp;

{j = i; for (; i

temp = buf [i]; buf [i] = ' 0'; sscanf (buf + j, "% d", & key);

buf [i] = temp;

i + +;

}

thingKey :: thingKey (const db_recno_t & key_temp)

{

memset (this, 0, sizeof (* this));

key = key_temp;

}

void thingVal :: Export (FILE * f)

{

fprintf (f, "% d", tsupplier);

fprintf (f, ",");

fprintf (f, "{");

CharArrInToStr (f, name, 12);

fprintf (f, "}");

fprintf (f, ",");

fprintf (f, "{");

CharArrInToStr (f, desc, 40);

fprintf (f, "}");

}

void thingVal :: Import (char * buf, uint len)

{

int j, num, i = 0;

char temp;

{j = i; for (; i

temp = buf [i]; buf [i] = ' 0'; sscanf (buf + j, "% d", & tsupplier);

buf [i] = temp;

if (tsupplier == 0) throw hbExcp (3, LL_CRITICAL, 0, "Помилка імпорту: + покажчик на таблицю = 0. "); p> i + +;


if (buf [i + +]! = '{')

throw hbExcp (3, LL_CRITICAL, 0, "Помилка імпорту: не можу розпарсити рядок.");

j = i;

for (; i

{

if (buf [i] == '}' && Buf [i-1]! = '') p> break;

}

StrToCharArr (buf + j, i-j, name, 12);

i + = 2;


if (buf [i + +]! = '{')

throw hbExcp (3, LL_CRITICAL, 0, "Помилка імпорту: не можу розпарсити рядок.");

j = i;

for (; i

{

if (buf [i] == '}' && Buf [i-1]! = '') p> break;

}

StrToCharArr (buf + j, i-j, desc, 40);

i + = 2;

}

thingVal :: thingVal (const db_recno_t & tsupplier_temp, char * name_temp, char * desc_temp)

{

memset (this, 0, sizeof (* this));

tsupplier = tsupplier_temp;

strncpy (name, name_temp, sizeof (name));

strncpy (desc, desc_temp, sizeof (desc));

}


ithing_name :: ithing_name (char * name_temp)

{

memcpy (name, name_temp, sizeof (name));

}


int qthing :: idx_name (Db * Db, const Dbt * pk, const Dbt * pv, Dbt * fv)

{

thingVal * v = (ThingVal *) (pv-> get_data ());


fv-> set_data (v-> name);

fv-> set_size (sizeof (ithing_name));

return 0;

}


// --------------------------------------------- ---------------------------------

mainEnv :: mainEnv (const char * path, ushort flt, Log * LogObj1): hbEnv (path, mainEnvInit, flt, LogObj1),

tsupplier (* (new qsupplier (* this))),

tthing (* (new qthing (* this)))

{

dbs [dbnsupplier] = &tsupplier; tsupplier.RefInit ();

dbs [dbnthing] = &tthing; tthing.RefInit ();


}


Файл приклад описаний так

int main (void)

{

mainEnv env ("./DataBase /");

// створюємо базу, тобто формуємо необхідні файли для всіх таблиць

env.Init (bexcp (16, "main", "example.cc", 3, LL_DEBUG)); p> env.Close (bexcp (16, "main", "example.cc", 3, LL_DEBUG)); p>// перевіряємо на індексну цілісність

env.CheckForIdx (bexcp (16, "main", "example.cc", 3, LL_DEBUG));

// перевіряємо на посилальну цілісність

env.CheckForRef (bexcp (16, "main", "example.cc", 3, LL_DEBUG));

env.OpenTDSMode ();// відкриваємо її в нормальному транзакційному режимі

try

{

hbTxn tx (env);

tx.Start ();

supplierKey key = {1};

supplierVal val = {"Boris", "Boss"};

env.tsupplier.Put (& tx, & key, & val);

thingKey key = {1};

thingVal val = {1, "Computer", "best"};

env.tthing.Put (& tx, & key, & val);

tx.commit ();

}

catch (hbExcp & excp)

{

cout <

}

env.Close ();

return 0;

}


7.Заключеніе


На сьогоднішній день навігаційно-мережеві бази знову набули свою актуальність. Це обумовлюється, головним чином, їх дуже високою швидкістю роботи, навіть, незважаючи на...


Назад | сторінка 13 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: The Main Song, Or What Is There in Your Words?
  • Реферат на тему: The main principles of safety market economy
  • Реферат на тему: The constitutional law in the modern world: the main trends and forms of de ...
  • Реферат на тему: Grammar of the Text: its Basic Units and Main Features (based on the novel ...
  • Реферат на тему: Створення молодіжного журналу "Main Stream"