Пример #1
0
FolderList get_bookmark_folders() {
    FolderList folders;

    sqlite3 *db;
    sqlite3_stmt *stmt;
    std::string sql = "SELECT folderId, folder FROM folders ORDER BY folder";

    if (!run_statement(sql, &db, &stmt))
        goto exit;

    {
        int res = sqlite3_step(stmt);
        while (res == SQLITE_ROW) {
            Folder f;
            f.id = sqlite3_column_string(stmt, 0, "-1");
            f.name = sqlite3_column_string(stmt, 1, "");
            folders.emplace_back(f);
            res = sqlite3_step(stmt);
        }
        if (res != SQLITE_DONE) {
            std::cerr << "Error reading rows: " << sqlite3_errmsg(db) << std::endl;
        }
    }

    exit:
    sqlite3_close(db);
    return folders;
}
Пример #2
0
        void run_on_context( context_ptr const& ctx, EnvironmentPtr const& env, T const& statements, bool const on_conpile_time = true )
        {
            runner r( ctx, on_conpile_time );

            for( auto const& s : statements )
                run_statement( r, s, env );
        }
Пример #3
0
int main(int argc, char **argv)
{
	char		line[500];

	SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
	SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);

	connect_to_db("DSN=psqlodbc_test_dsn;Database=postgres");
	printf("Dropping and creating database contrib_regression...\n");
	run_statement("DROP DATABASE IF EXISTS contrib_regression");
	run_statement("CREATE DATABASE contrib_regression");

	connect_to_db("DSN=psqlodbc_test_dsn;Database=contrib_regression");

	printf("Running initialization script...\n");
	while (fgets(line, sizeof(line), stdin) != NULL)
		run_statement(line);

	printf("Done!\n");

	return 0;
}
Пример #4
0
BookmarkList get_bookmarks(std::string query, std::string folder, int sort) {
    BookmarkList bookmarks;

    sqlite3 *db;
    sqlite3_stmt *stmt;
    std::string sql = "SELECT url, title, icon FROM bookmarks WHERE 1";
    if (query != "")
        sql += " AND (url LIKE '%' || ? || '%' OR title LIKE '%' || ?1 || '%')";
    if (folder != "")
        sql += " AND folderId = '" + folder + "'";
    if (sort == 0)
        sql += " ORDER BY length(title) > 0 DESC, title ASC";
    else
        sql += " ORDER BY created DESC";

    if (!run_statement(sql, &db, &stmt))
        goto exit;

    if (query != "") {
        if (sqlite3_bind_text(stmt, 1, query.data(), -1, SQLITE_STATIC)) {
            std::cerr << "Error binding text: " << sqlite3_errmsg(db) << std::endl;
            goto exit;
        }
    }

    {
        int res = sqlite3_step(stmt);
        while (res == SQLITE_ROW) {
            Bookmark b;
            b.url = sqlite3_column_string(stmt, 0, "");
            b.title = sqlite3_column_string(stmt, 1, b.url);
            b.icon = sqlite3_column_string(stmt, 2, "file:///usr/share/icons/suru/actions/scalable/stock_website.svg");
            bookmarks.emplace_back(b);
            res = sqlite3_step(stmt);
        }
        if (res != SQLITE_DONE) {
            std::cerr << "Error reading rows: " << sqlite3_errmsg(db) << std::endl;
        }
    }

    exit:
    sqlite3_close(db);
    return bookmarks;
}
Пример #5
0
void parse_data(char *data, char *end)
{
	char *token_alloc;      // allocated memory for tokens
	
	killscript = false;     // dont kill the script straight away
	
	// allocate space for the tokens
	token_alloc = new char[current_script->len + T_MAXTOKENS];
	
	prev_section = NULL;  // clear it
	
	while(*rover)   // go through the script executing each statement
    {
		// past end of script?
		if(rover > end)
			break;
		
		// reset the tokens before getting the next line
		tokens[0] = token_alloc;
		
		prev_section = current_section; // store from prev. statement
		
		// get the line and tokens
		get_tokens(rover);
		
		if(killscript) break;
		
		if(!num_tokens)
		{
			if(current_section)       // no tokens but a brace
			{
				// possible } at end of loop:
				// refer to spec.c
				spec_brace();
			}
			
			continue;  // continue to next statement
		}
		
		if(script_debug) print_tokens();   // debug
		run_statement();         // run the statement
    }
	delete token_alloc;
}
Пример #6
0
//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);
	}
}