Changeset 22 for vtcross/trunk

Show
Ignore:
Timestamp:
10/22/08 14:00:21 (16 years ago)
Author:
ahe
Message:

get returned values from cbr search

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/cbr.c

    r21 r22  
    5050 
    5151 
    52 int SearchCallback(float *_retvals, int argc, char **argv, char **azColName){ 
     52/*int SearchCallback(float *_retvals, int argc, char **argv, char **azColName){ 
    5353    int i; 
    5454    for(i=0; i<argc; i++){ 
     
    5858    printf("\n"); 
    5959    return 0; 
    60 } 
     60}*/ 
    6161 
    6262 
     
    8080int ExecuteSearchCommand(cbr _cbr, float *_retvals){ 
    8181    int rc; 
    82     char *zErrMsg = 0; 
     82    //char *zErrMsg = 0; 
     83    unsigned int i; 
    8384 
    8485    printf("command: %s\n", _cbr->command); 
    85     rc = sqlite3_exec(_cbr->db, _cbr->command, SearchCallback, _retvals, &zErrMsg); 
    86     //rc = sqlite3_exec(_cbr->db, _cbr->command, SearchCallback, 0, &zErrMsg); 
     86    sqlite3_stmt * pStatement; 
     87    rc = sqlite3_prepare_v2(_cbr->db, _cbr->command, -1, &pStatement, NULL); 
     88    if (rc == SQLITE_OK && sqlite3_step(pStatement) == SQLITE_ROW){ 
     89        for (i=0; i<_cbr->num_columns; ++i) 
     90            _retvals[i] = sqlite3_column_double(pStatement, i); 
     91    } 
     92    sqlite3_finalize(pStatement); 
     93     
     94    /*rc = sqlite3_exec(_cbr->db, _cbr->command, SearchCallback, 0, &zErrMsg); 
    8795    if( rc!=SQLITE_OK){ 
    8896        fprintf(stderr, "SQL error: %s\n", zErrMsg); 
     
    9098    } else{ 
    9199        printf("command executed.\n"); 
    92     } 
     100    }*/ 
     101 
    93102    return rc; 
    94103} 
     
    138147} 
    139148 
     149 
    140150void cbr_free(cbr _cbr) 
    141151{ 
    142     // delete table here 
    143152    // delete table 
    144153     
    145     /*// generate command, delete all entries of a table 
    146     strcpy(_cbr->command, "delete from "); 
    147     strcat(_cbr->command, _cbr->tablename);*/ 
    148  
    149154    // generate command, remove a table with its content 
    150155    strcpy(_cbr->command, "drop table "); 
     
    161166} 
    162167 
     168 
    163169void cbr_print(cbr _cbr) 
    164170{ 
     
    175181} 
    176182 
    177 //static 
     183 
     184/*//static 
    178185int cbr_callback(void *notUsed, int argc, char **argv, char **azColName) 
    179186{ 
    180187    return 0; 
    181 } 
     188}*/ 
     189 
    182190 
    183191const char * ops_str[] = { 
     
    185193 
    186194 
    187 // cbr search 
    188195int cbr_search( 
    189196    cbr _cbr, 
     
    194201    float *_retvals) 
    195202{ 
    196     // set up statement 
    197  
     203    // cbr search 
     204     
    198205    // generate command 
    199206    strcpy(_cbr->command, "select "); 
     
    213220 
    214221        strcat(_cbr->command, _names[i]); 
    215         //strcat(_cbr->command, " "); 
    216222        strcat(_cbr->command, ops_str[_ops[i]]); 
    217223        sprintf(str_buffer, "%E", _vals[i]); 
     
    224230    } 
    225231 
    226     //printf("command: %s\n", _cbr->command); 
    227232    ExecuteCommand(_cbr); 
    228233    ExecuteSearchCommand(_cbr, _retvals); 
     234     
    229235    printf("search result: "); 
    230236    for (i=0; i<_cbr->num_columns; i++)