Changeset 15603
- Timestamp:
- 2008-05-20T17:19:33+12:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/lib/sqliteclass.cpp
r15602 r15603 63 63 } 64 64 65 if (sqlitefile != NULL && mode == DB_WRITER_CREATE) 66 { 67 sqlexec("CREATE TABLE data (key TEXT, value TEXT, PRIMARY KEY(key))"); 68 } 69 65 70 return (sqlitefile != NULL); 66 71 } … … 80 85 bool sqliteclass::getinfo(const text_t& key, infodbclass &info) 81 86 { 82 text_t sql_cmd = "SELECT value FROM table WHERE key=" + key;87 text_t sql_cmd = "SELECT value FROM data WHERE key='" + key + "'"; 83 88 84 89 vector<text_tmap> sql_results; … … 109 114 if (sqlitefile == NULL) return false; 110 115 111 // !! TO IMPLEMENT 112 return false; 116 text_t subkey; 117 text_t data; 118 119 // get all the keys and values 120 infodbclass::const_iterator info_here = info.begin(); 121 infodbclass::const_iterator info_end = info.end(); 122 while (info_here != info_end) { 123 // add the key 124 subkey.clear(); 125 subkey.push_back('<'); 126 text_t::const_iterator subkey_here = (*info_here).first.begin(); 127 text_t::const_iterator subkey_end = (*info_here).first.end(); 128 while (subkey_here != subkey_end) { 129 if (*subkey_here == '>') { 130 subkey.push_back('\\'); subkey.push_back('>'); 131 } else if (*subkey_here == '\n') { 132 subkey.push_back('\\'); subkey.push_back('n'); 133 } else if (*subkey_here == '\r') { 134 subkey.push_back('\\'); subkey.push_back('r'); 135 } else if (*subkey_here == '\\') { 136 subkey.push_back('\\'); subkey.push_back('\\'); 137 } else { 138 subkey.push_back (*subkey_here); 139 } 140 ++subkey_here; 141 } 142 subkey.push_back('>'); 143 144 // add the values 145 text_tarray::const_iterator subvalue_here = (*info_here).second.begin(); 146 text_tarray::const_iterator subvalue_end = (*info_here).second.end(); 147 while (subvalue_here != subvalue_end) { 148 data += subkey; 149 150 text_t::const_iterator thissubvalue_here = (*subvalue_here).begin(); 151 text_t::const_iterator thissubvalue_end = (*subvalue_here).end(); 152 while (thissubvalue_here != thissubvalue_end) { 153 if (*thissubvalue_here == '>') { 154 data.push_back('\\'); data.push_back('>'); 155 } else if (*thissubvalue_here == '\n') { 156 data.push_back('\\'); data.push_back('n'); 157 } else if (*thissubvalue_here == '\r') { 158 data.push_back('\\'); data.push_back('r'); 159 } else if (*thissubvalue_here == '\\') { 160 data.push_back('\\'); data.push_back('\\'); 161 } else { 162 data.push_back (*thissubvalue_here); 163 } 164 165 ++thissubvalue_here; 166 } 167 168 data.push_back('\n'); 169 ++subvalue_here; 170 } 171 172 ++info_here; 173 } 174 175 outconvertclass text_t2ascii; 176 (*logout) << text_t2ascii << "Inserting for " << key << ":\n" << data << "\n"; 177 178 text_t sql_cmd = "INSERT INTO data (key, value) VALUES ('" + key + "', '" + data + "')"; 179 return sqlexec(sql_cmd); 113 180 } 114 181 … … 116 183 void sqliteclass::deletekey(const text_t &key) 117 184 { 118 if (sqlitefile == NULL) return; 185 if (sqlitefile == NULL) return; 119 186 120 187 // !! TO IMPLEMENT
Note:
See TracChangeset
for help on using the changeset viewer.