Changeset 21 for vtcross

Show
Ignore:
Timestamp:
10/22/08 13:11:34 (16 years ago)
Author:
ahe
Message:

use callback return search results

Files:
1 modified

Legend:

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

    r20 r21  
    3939 
    4040 
    41 //int cbr_callback(void *notUsed, int argc, char **argv, char **azColName) 
     41//int cbr_callback(float *retvals, int argc, char **argv, char **azColName) 
    4242int callback(void *notUsed, int argc, char **argv, char **azColName){ 
    4343    int i; 
     
    4848    return 0; 
    4949} 
     50 
     51 
     52int SearchCallback(float *_retvals, int argc, char **argv, char **azColName){ 
     53    int i; 
     54    for(i=0; i<argc; i++){ 
     55        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); 
     56        sscanf((argv[i] ? argv[i] : "NULL"), "%f", _retvals+i); 
     57    } 
     58    printf("\n"); 
     59    return 0; 
     60} 
     61 
    5062 
    5163 
     
    6678 
    6779 
     80int ExecuteSearchCommand(cbr _cbr, float *_retvals){ 
     81    int rc; 
     82    char *zErrMsg = 0; 
     83 
     84    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); 
     87    if( rc!=SQLITE_OK){ 
     88        fprintf(stderr, "SQL error: %s\n", zErrMsg); 
     89        sqlite3_free(zErrMsg); 
     90    } else{ 
     91        printf("command executed.\n"); 
     92    } 
     93    return rc; 
     94} 
     95 
     96 
     97 
    6898cbr cbr_create(char * _filename, char * _tablename, char * _cols[], unsigned int _len) 
    6999{ 
     
    154184    "==", "!=", ">", ">=", "<", "<="}; 
    155185 
     186 
     187// cbr search 
    156188int cbr_search( 
    157189    cbr _cbr, 
     
    163195{ 
    164196    // set up statement 
    165  
    166     /*char* zErrMsg = NULL; 
    167     //sqlite3_exec(_cbr->db, argv[2], callback, NULL, &zErrMsg); 
    168     sqlite3_exec(_cbr->db, _cbr->command, cbr_callback, NULL, &zErrMsg);*/ 
    169197 
    170198    // generate command 
     
    198226    //printf("command: %s\n", _cbr->command); 
    199227    ExecuteCommand(_cbr); 
     228    ExecuteSearchCommand(_cbr, _retvals); 
     229    printf("search result: "); 
     230    for (i=0; i<_cbr->num_columns; i++) 
     231        printf("%f, ",_retvals[i]); 
     232    printf("\n"); 
    200233 
    201234    return 0;