summaryrefslogtreecommitdiff
path: root/mg_db.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg_db.c')
-rw-r--r--mg_db.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/mg_db.c b/mg_db.c
index e0462f0..30f7b73 100644
--- a/mg_db.c
+++ b/mg_db.c
@@ -512,24 +512,33 @@ mgKeyNormal::AddIdClause(mgDb *db,mgParts &result,string what) const
}
bool
-mgKey::LoadMap() const
+mgKey::LoadMapFrom(mgDb *db) const
{
if (map_sql().empty())
return false;
- mgDb *db = GenerateDB();
db->LoadMapInto(map_sql(), &map_ids[Type()], &map_values[Type()]);
- delete db;
return true;
}
+mgKeyMaps::mgKeyMaps() {
+ kmdb = 0;
+}
+
+mgKeyMaps::~mgKeyMaps() {
+ delete kmdb;
+}
+
mgKeyMaps KeyMaps;
+
bool
mgKeyMaps::loadvalues (mgKeyTypes kt) const
{
if (map_ids[kt].size()>0)
return true;
mgKey* k = ktGenerate(kt);
- bool result = k->LoadMap();
+ if (!kmdb)
+ kmdb = GenerateDB();
+ bool result = k->LoadMapFrom(kmdb);
delete k;
return result;
}