Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------------------------
- #include "sqlite3.h"
- #include <iostream>
- //-----------------------------------------------------------------------------
- static int callback(void *NotUsed, int argc, char **argv, char **azColName){
- int i;
- for(i=0; i<argc; i++){
- std::cout << azColName[i] << " = " << ( argv[i] ? argv[i] : "NULL" ) << std::endl;
- }
- std::cout << std::endl;
- return 0;
- }
- //-----------------------------------------------------------------------------
- int main(int argc, char **argv){
- sqlite3 *db = NULL;
- char *zErrMsg = 0;
- int rc;
- if( argc!=3 ){
- std::cerr << "Usage: " << argv[0] << " DATABASE SQL-STATEMENT" << std::endl;
- return 1;
- }
- std::cout << "Db : " << argv[1] << std::endl;
- std::cout << "SQL : " << argv[2] << std::endl;
- rc = sqlite3_open_v2(argv[1], &db, SQLITE_OPEN_READONLY, NULL);
- if( rc!=SQLITE_OK || NULL == db ){
- std::cerr << "Can't open database: " << sqlite3_errmsg(db) << std::endl;
- sqlite3_close(db);
- return 1;
- }
- // method 1
- std::cout << "method 1: sqlite3_exec" << std::endl;
- rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
- if( rc!=SQLITE_OK ){
- std::cerr << "SQL error: " << zErrMsg << std::endl;
- sqlite3_free(zErrMsg);
- }
- // method 2
- std::cout << "method 1: sqlite3_get_table" << std::endl;
- int iRows = 0, iCols = 0;
- char **sTable = 0;
- rc = sqlite3_get_table( db, argv[2], &sTable, &iRows, &iCols, &zErrMsg );
- if( rc!=SQLITE_OK ){
- std::cerr << "SQL error: " << zErrMsg << std::endl;
- sqlite3_free(zErrMsg);
- }
- for(int i=0; i< iCols; i++){
- std::cout << sTable[ i ] << " = " << sTable[ i + iCols ] << std::endl;
- }
- sqlite3_free_table( sTable );
- sqlite3_close(db);
- return 0;
- }
- //-----------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement