Changeset 173 for trunk/src/shared
- Timestamp:
- 11/19/08 13:43:02 (17 years ago)
- Location:
- trunk/src/shared/Database
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shared/Database/Database.h
r102 r173 62 62 template<class Class, typename ParamType1> 63 63 bool AsyncQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1), ParamType1 param1, const char *sql); 64 template<class Class, typename ParamType1, typename ParamType2> 65 bool AsyncQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *sql); 64 66 template<typename ParamType1> 65 67 bool AsyncQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *sql); 68 template<typename ParamType1, typename ParamType2> 69 bool AsyncQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *sql); 66 70 template<class Class> 67 71 bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*), const char *format,...) ATTR_PRINTF(4,5); 68 72 template<class Class, typename ParamType1> 69 73 bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); 74 template<class Class, typename ParamType1, typename ParamType2> 75 bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); 70 76 template<typename ParamType1> 71 77 bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); 78 template<typename ParamType1, typename ParamType2> 79 bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); 72 80 template<class Class> 73 81 bool DelayQueryHolder(Class *object, void (Class::*method)(QueryResult*, SqlQueryHolder*), SqlQueryHolder *holder); -
trunk/src/shared/Database/DatabaseImpl.h
r102 r173 48 48 } 49 49 50 template<class Class, typename ParamType1, typename ParamType2> 51 bool 52 Database::AsyncQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *sql) 53 { 54 if (!sql) return false; 55 ZThread::ThreadImpl * queryThread = ZThread::ThreadImpl::current(); 56 QueryQueues::iterator itr = m_queryQueues.find(queryThread); 57 if (itr == m_queryQueues.end()) return false; 58 m_threadBody->Delay(new SqlQuery(sql, new Trinity::QueryCallback<Class, ParamType1, ParamType2>(object, method, (QueryResult*)NULL, param1, param2), itr->second)); 59 return true; 60 } 61 50 62 template<typename ParamType1> 51 63 bool … … 60 72 } 61 73 74 template<typename ParamType1, typename ParamType2> 75 bool 76 Database::AsyncQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *sql) 77 { 78 if (!sql) return false; 79 ZThread::ThreadImpl * queryThread = ZThread::ThreadImpl::current(); 80 QueryQueues::iterator itr = m_queryQueues.find(queryThread); 81 if (itr == m_queryQueues.end()) return false; 82 m_threadBody->Delay(new SqlQuery(sql, new Trinity::SQueryCallback<ParamType1, ParamType2>(method, (QueryResult*)NULL, param1, param2), itr->second)); 83 return true; 84 } 85 62 86 template<class Class> 63 87 bool … … 102 126 } 103 127 128 template<class Class, typename ParamType1, typename ParamType2> 129 bool 130 Database::AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) 131 { 132 if(!format) return false; 133 134 va_list ap; 135 char szQuery [MAX_QUERY_LEN]; 136 va_start(ap, format); 137 int res = vsnprintf( szQuery, MAX_QUERY_LEN, format, ap ); 138 va_end(ap); 139 140 if(res==-1) 141 { 142 sLog.outError("SQL Query truncated (and not execute) for format: %s",format); 143 return false; 144 } 145 146 return AsyncQuery(object, method, param1, param2, szQuery); 147 } 148 104 149 template<typename ParamType1> 105 150 bool … … 123 168 } 124 169 170 template<typename ParamType1, typename ParamType2> 171 bool 172 Database::AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) 173 { 174 if(!format) return false; 175 176 va_list ap; 177 char szQuery [MAX_QUERY_LEN]; 178 va_start(ap, format); 179 int res = vsnprintf( szQuery, MAX_QUERY_LEN, format, ap ); 180 va_end(ap); 181 182 if(res==-1) 183 { 184 sLog.outError("SQL Query truncated (and not execute) for format: %s",format); 185 return false; 186 } 187 188 return AsyncQuery(method, param1, param2, szQuery); 189 } 125 190 126 191 template<class Class>