aRTcomponent* aRTconn::CreateDb(SEXP data)
{
    string dbname = GET_STRING_ELEMENT(data, "dbname");

	TeDatabase* database = NewTeDatabase();

	PrintSilent("Creating database \'%s\' ... ", dbname.c_str());
    if (!database -> newDatabase(dbname, User, Password, Host, Port))
	{
        string error_ = database -> errorMessage();
		PrintSilentNo;
        delete database;
		error(error_.c_str());
    }
	PrintSilentYes;
	PrintSilent("Creating conceptual model of database \'%s\' ... ", dbname.c_str());
	if (!database->createConceptualModel(true, false))
	{
		string error_ = database -> errorMessage();
		PrintSilentNo;
		delete database;
		error(error_.c_str());
	}
	PrintSilentYes;

	PrintSilent("Creating application theme table \'%s\' ... ", dbname.c_str());
	if(!createAppThemeTable(database))
	{
		string error_ = database -> errorMessage();
		PrintSilentNo;
		delete database;
		error(error_.c_str());
	}
	PrintSilentYes;

	aRTdb* root = new aRTdb(database);
	return root;
}