static void load_table_row(sqlite3 *db, const hashstr_t *name, gint64 rowid, Row_t *row, Table_t *table) { int rc; sqlite3_stmt *stmt = NULL; gchar *sql; GRID_TRACE2("%s(%p,%s,%"G_GINT64_FORMAT",%p,%p)", __FUNCTION__, db, hashstr_str(name), rowid, row, table); sql = g_strdup_printf("SELECT * FROM %s WHERE ROWID = ?", hashstr_str(name)); sqlite3_prepare_debug(rc, db, sql, -1, &stmt, NULL); g_free(sql); sqlite3_bind_int64(stmt, 1, rowid); while (SQLITE_ROW == (rc = sqlite3_step(stmt))) load_statement(stmt, row, table); sqlite3_finalize_debug(rc, stmt); }
//static void statement(void) void statement(void) { int token; token = tokenizer_token(); switch(token) { case TOKENIZER_PRINT: print_statement(); break; case TOKENIZER_IF: if_statement(); break; case TOKENIZER_GOTO: goto_statement(); break; case TOKENIZER_GOSUB: gosub_statement(); break; case TOKENIZER_RETURN: return_statement(); break; case TOKENIZER_FOR: for_statement(); break; case TOKENIZER_NEXT: next_statement(); break; case TOKENIZER_END: end_statement(); break; case TOKENIZER_PSET: pset_statement(); break; case TOKENIZER_CLS: cls_statement(); break; case TOKENIZER_REFRESH: refresh_statement(); break; case TOKENIZER_LIST: list_statement(); break; case TOKENIZER_LOAD: load_statement(); break; case TOKENIZER_SAVE: save_statement(); break; case TOKENIZER_FILES: files_statement(); break; case TOKENIZER_PEEK: peek_statement(); break; case TOKENIZER_POKE: poke_statement(); break; case TOKENIZER_WAIT: wait_statement(); break; case TOKENIZER_INPUT: input_statement(); break; case TOKENIZER_INP: inp_statement(); break; case TOKENIZER_INR: inr_statement(); break; case TOKENIZER_INA: ina_statement(); break; case TOKENIZER_REM: rem_statement(); break; case TOKENIZER_RUN: run_statement(); break; case TOKENIZER_ERROR: tokenizer_error_print(); ended = 1; glcd_DrawCursor(); break; case TOKENIZER_LET: accept(TOKENIZER_LET); accept(TOKENIZER_VARIABLE); accept(TOKENIZER_CR); break; /* Fall through. */ case TOKENIZER_VARIABLE: let_statement(); break; default: exit(1); } }