Changeset 3286
- Timestamp:
- 04/27/08 14:45:27 (3 months ago)
- Files:
-
- trunk/opensync/db/opensync_db.c (modified) (5 diffs)
- trunk/opensync/db/opensync_db.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/opensync/db/opensync_db.c
r3285 r3286 155 155 156 156 /** 157 * @brief Exectues a SQL query and fill all requested data in a GList.157 * @brief Exectues a SQL query and fill all requested data in a OSyncList. 158 158 * Check error with osync_error_is_set(). 159 159 * … … 161 161 * @param query SQL database query 162 162 * @param error Pointer to a error struct 163 * @return Returns pointer to GList which contains the each result as another GList ptr. Freeing is recommend with osync_db_free_list()164 */ 165 GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error)163 * @return Returns pointer to OSyncList which contains the each result as another OSyncList ptr. Freeing is recommend with osync_db_free_list() 164 */ 165 OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error) 166 166 { 167 167 osync_trace(TRACE_ENTRY, "%s(%p, %s, %p)", __func__, db, query, error); … … 170 170 osync_assert(query); 171 171 172 GList *table = NULL;172 OSyncList *table = NULL; 173 173 int i, j, column_count = 0; 174 174 int numrows = 0, numcolumns = 0; … … 188 188 189 189 for (j=0; j < numrows; j++) { 190 GList *row = NULL;190 OSyncList *row = NULL; 191 191 for (i=0; i < numcolumns; i++) 192 192 /* speed up - prepend instead of append */ 193 row = g_list_prepend(row, g_strdup(result[column_count++]));193 row = osync_list_prepend(row, g_strdup(result[column_count++])); 194 194 195 195 /* items got prepended, reverse the list again */ 196 row = g_list_reverse(row);196 row = osync_list_reverse(row); 197 197 198 198 /* speed up - prepend instead of append. */ 199 table = g_list_prepend(table, row);199 table = osync_list_prepend(table, row); 200 200 } 201 201 202 202 /* items got prepended, reverse the list again */ 203 table = g_list_reverse(table);203 table = osync_list_reverse(table); 204 204 205 205 sqlite3_free_table(result); … … 212 212 * @brief Frees the full result of osync_db_query_table(). 213 213 * 214 * @param list Result GList pointer of osync_db_query_table()215 */ 216 void osync_db_free_list( GList *list) {214 * @param list Result OSyncList pointer of osync_db_query_table() 215 */ 216 void osync_db_free_list(OSyncList *list) { 217 217 osync_trace(TRACE_ENTRY, "%s(%p)", __func__, list); 218 218 219 GList *row;219 OSyncList *row; 220 220 for (row = list; row; row = row->next) { 221 g_list_foreach((GList *) row->data, (GFunc) g_free, NULL);222 g_list_free((GList *) row->data);223 } 224 225 g_list_free(list);221 osync_list_foreach((OSyncList *) row->data, (GFunc) g_free, NULL); 222 osync_list_free((OSyncList *) row->data); 223 } 224 225 osync_list_free(list); 226 226 227 227 osync_trace(TRACE_EXIT, "%s", __func__); trunk/opensync/db/opensync_db.h
r3260 r3286 38 38 OSYNC_EXPORT int osync_db_query_single_int(OSyncDB *db, const char *query, OSyncError **error); 39 39 OSYNC_EXPORT osync_bool osync_db_query(OSyncDB *db, const char *query, OSyncError **error); 40 OSYNC_EXPORT GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error);41 OSYNC_EXPORT void osync_db_free_list( GList *list);40 OSYNC_EXPORT OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error); 41 OSYNC_EXPORT void osync_db_free_list(OSyncList *list); 42 42 43 43 OSYNC_EXPORT osync_bool osync_db_bind_blob(OSyncDB *db, const char *query, const char *data, unsigned int size, OSyncError **error);
