|
#include "Stdafx.h"
#include <msclr/marshal.h>
#include "NETMdbTools.h"
using namespace NETMdbTools;
using namespace msclr::interop;
NETMdbDatabase::NETMdbDatabase()
{
libdatabase = new CMdbLibDatabase();
libdatabase->mdb = 0;
itr = new map<char*, CMdbLibTable, cmp_str>::iterator();
table = gcnew NETMdbTable();
}
NETMdbDatabase::~NETMdbDatabase()
{
delete libdatabase;
delete itr;
delete table;
}
bool NETMdbDatabase::Open(String^ strfilename)
{
marshal_context^ context = gcnew marshal_context();
const char* strcharfname = context->marshal_as<const char*>(strfilename);
bool res = libdatabase->Open(strcharfname);
return res;
}
void NETMdbDatabase::Close()
{
if (libdatabase->mdb == 0) return;
libdatabase->Close();
}
void NETMdbDatabase::LoadTables()
{
libdatabase->LoadTables();
}
void NETMdbDatabase::MoveFirstTable()
{
*itr = libdatabase->tables.begin();
}
bool NETMdbDatabase::MoveNextTable()
{
(*itr)++;
return (*itr) != libdatabase->tables.end();
}
NETMdbTable^ NETMdbDatabase::GetTable()
{
table->table = &(**itr).second;
table->LoadFromLib();
return table;
}
NETMdbTable^ NETMdbDatabase::GetTableByName(String^ strname)
{
marshal_context^ context = gcnew marshal_context();
const char* pname = context->marshal_as<const char*>(strname);
table->table = &(libdatabase->tables[(char*)pname]);
table->LoadFromLib();
return table;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
System developer from Argentina.
Programmed in VB 5,6,.NET, C#, Java, PL-SQL, Transac-SQL, C, C++ and even some "calculator" language.
Love to build small, useful applications.
Usually building big and complicated apps based on solid, reliable components.
Hobbies: reading, photography, chess, paddle, running.