![]() |
Query Class ReferenceSQL Statement execute / result set helper class. More...
Collaboration diagram for Query: ![]()
Detailed DescriptionSQL Statement execute / result set helper class.
Definition at line 55 of file Query.h. Constructor & Destructor Documentation
Definition at line 88 of file Query.cpp. References Database::error(), Database::freedb(), GetDatabase(), m_db, odb, and res. 00089 { 00090 if (res) 00091 { 00092 GetDatabase().error(*this, "mysql_free_result in destructor"); 00093 mysql_free_result(res); 00094 } 00095 if (odb) 00096 { 00097 m_db.freedb(odb); 00098 } 00099 }
Published / author: 2001-02-15 / grymse@alhem.net Definition at line 57 of file Query.cpp. 00058 :m_db(*dbin) 00059 ,odb(dbin ? dbin -> grabdb() : NULL) 00060 ,res(NULL) 00061 ,row(NULL) 00062 ,m_num_cols(0) 00063 { 00064 }
Member Function Documentation
Check to see if database object is connectable.
Definition at line 442 of file Query.cpp. References Database::error(), GetDatabase(), and odb. 00443 { 00444 if (odb) 00445 { 00446 if (mysql_ping(&odb -> mysql)) 00447 { 00448 GetDatabase().error(*this, "mysql_ping() failed"); 00449 return false; 00450 } 00451 } 00452 return odb ? true : false; 00453 }
Return reference to database object.
Definition at line 102 of file Query.cpp. References m_db. Referenced by Connected(), execute(), get_result(), and ~Query(). 00103 { 00104 return m_db; 00105 }
Return string of last query executed.
Definition at line 424 of file Query.cpp. References m_last_query. Referenced by SysLog::error(), and StderrLog::error(). 00425 { 00426 return m_last_query; 00427 }
execute() returns true if query is successful, does not store result
Definition at line 108 of file Query.cpp. References Database::error(), GetDatabase(), m_last_query, odb, and res. Referenced by get_result(), and Query(). 00109 { // query, no result 00110 m_last_query = sql; 00111 if (odb && res) 00112 { 00113 GetDatabase().error(*this, "execute: query busy"); 00114 } 00115 if (odb && !res) 00116 { 00117 if (mysql_query(&odb -> mysql,sql.c_str())) 00118 { 00119 GetDatabase().error(*this,"query failed"); 00120 } 00121 else 00122 { 00123 return true; 00124 } 00125 } 00126 return false; 00127 }
execute query and store result.
Definition at line 133 of file Query.cpp. References Database::error(), execute(), GetDatabase(), m_nmap, m_num_cols, odb, and res. Referenced by get_count(), get_num(), and get_string(). 00134 { // query, result 00135 if (odb && res) 00136 { 00137 GetDatabase().error(*this, "get_result: query busy"); 00138 } 00139 if (odb && !res) 00140 { 00141 if (execute(sql)) 00142 { 00143 res = mysql_store_result(&odb -> mysql); 00144 if (res) 00145 { 00146 MYSQL_FIELD *f = mysql_fetch_field(res); 00147 int i = 1; 00148 while (f) 00149 { 00150 if (f -> name) 00151 m_nmap[f -> name] = i; 00152 f = mysql_fetch_field(res); 00153 i++; 00154 } 00155 m_num_cols = i - 1; 00156 } 00157 } 00158 } 00159 return res; 00160 }
free stored result, must be called after get_result()
Definition at line 163 of file Query.cpp. References m_nmap, m_num_cols, odb, res, and row. Referenced by get_count(), get_num(), and get_string(). 00164 { 00165 if (odb && res) 00166 { 00167 mysql_free_result(res); 00168 res = NULL; 00169 row = NULL; 00170 } 00171 while (m_nmap.size()) 00172 { 00173 std::map<std::string,int>::iterator it = m_nmap.begin(); 00174 m_nmap.erase(it); 00175 } 00176 m_num_cols = 0; 00177 }
Fetch next result row.
Definition at line 180 of file Query.cpp. References odb, res, row, and rowcount. Referenced by get_count(), get_num(), and get_string().
Number of columns in current result.
Definition at line 206 of file Query.cpp. References m_num_cols. 00207 { 00208 return m_num_cols; 00209 }
Last error string.
Definition at line 430 of file Query.cpp. References odb. Referenced by SysLog::error(), and StderrLog::error().
Last error code.
Definition at line 436 of file Query.cpp. References odb. Referenced by SysLog::error(), and StderrLog::error().
Execute query and return first result as a string.
Definition at line 407 of file Query.cpp. References fetch_row(), free_result(), get_result(), getstr(), and m_tmpstr. 00408 { 00409 bool found = false; 00410 m_tmpstr = ""; 00411 if (get_result(sql)) 00412 { 00413 if (fetch_row()) 00414 { 00415 m_tmpstr = getstr(); 00416 found = true; 00417 } 00418 free_result(); 00419 } 00420 return m_tmpstr.c_str(); // %! changed from 1.0 which didn't return NULL on failed query 00421 }
Execute query and return first result as a long integer.
Definition at line 394 of file Query.cpp. References fetch_row(), free_result(), get_result(), and getval(). 00395 { 00396 long l = 0; 00397 if (get_result(sql)) 00398 { 00399 if (fetch_row()) 00400 l = getval(); 00401 free_result(); 00402 } 00403 return l; 00404 }
Execute query and return first result as a double.
Definition at line 379 of file Query.cpp. References fetch_row(), free_result(), get_result(), and getnum(). 00380 { 00381 double l = 0; 00382 if (get_result(sql)) 00383 { 00384 if (fetch_row()) 00385 { 00386 l = getnum(); 00387 } 00388 free_result(); 00389 } 00390 return l; 00391 }
Definition at line 357 of file Query.cpp. References error(), getubigint(), and m_nmap. 00358 { 00359 int index = m_nmap[x] - 1; 00360 if (index >= 0) 00361 return getubigint(index); 00362 error("Column name lookup failure: " + x); 00363 return 0; 00364 }
Definition at line 373 of file Query.cpp. References rowcount. Referenced by getubigint(). 00374 { 00375 return getubigint(rowcount++); 00376 }
Definition at line 456 of file Query.cpp. References Database::error(), and m_db. Referenced by getbigint(), getnum(), getstr(), getubigint(), getuval(), getval(), and is_null().
Member Data Documentation
Definition at line 134 of file Query.h. Referenced by error(), getbigint(), GetDatabase(), getubigint(), getuval(), safestr(), and ~Query().
Definition at line 135 of file Query.h. Referenced by Connected(), execute(), fetch_row(), free_result(), get_result(), getbigint(), GetErrno(), GetError(), getnum(), getstr(), getubigint(), getuval(), getval(), insert_id(), is_null(), num_rows(), and ~Query().
Definition at line 136 of file Query.h. Referenced by execute(), fetch_row(), free_result(), get_result(), getbigint(), getnum(), getstr(), getubigint(), getuval(), getval(), is_null(), num_rows(), and ~Query().
Definition at line 137 of file Query.h. Referenced by fetch_row(), free_result(), getbigint(), getnum(), getstr(), getubigint(), getuval(), getval(), and is_null().
Definition at line 138 of file Query.h. Referenced by fetch_row(), getbigint(), getnum(), getstr(), getubigint(), getuval(), getval(), and is_null().
Definition at line 141 of file Query.h. Referenced by free_result(), get_result(), getbigint(), getnum(), getstr(), getubigint(), getuval(), getval(), and is_null().
The documentation for this class was generated from the following files: |