I have a question about version 3.6.10.

I downloaded the amalgamation source code and built a static library.  I 
have included the static library in my Windows console application.  I 
have noticed something very strange though.  to execute my statement I 
use the prepare and then step not execute.  If I run the following sql, 
I get no return data.

select a.column1, b.column2
from aTable a
left join bTable b
on a.id = b.aTable_id

If I run the same sql statement through the command-line program 
downloaded from the site for 3.6.10, it returns the data with b.column2 
being null.  Which is what I expected. 

Below is my code

    // open database
    rc = sqlite3_open(szFile, &db);
    if( rc ){
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        exit(1);
    }
   
    sqlite3_stmt *ppStmt = 0;;
    const char *zLeftover;

    //compile sql statement
    rc = sqlite3_prepare(db, szSQL, -1, &ppStmt, &zLeftover);

    //step through recordset
    int i = 0;
    int nCol = 0;
    char rowstr[256] = "";
    const char *temp;
   
    //get column count
    nCol = sqlite3_column_count(ppStmt);
   
    //for each row
    while(sqlite3_step(ppStmt)==SQLITE_ROW){   

        //for each column
        for(int j=0;j<nCol;j++){
            temp = (char *)sqlite3_column_text(ppStmt, j);
            strcat(rowstr, temp);
            strcat(rowstr, "|");
        }

        cout << rowstr << endl;
        strcpy(rowstr, "");
        i++;  //increment row counter
    }

    //delete recordset
    rc = sqlite3_finalize(ppStmt);

    // close database
    sqlite3_close(db);

    cout << "finished" << endl;


-- 
*Nathan Biggs*
Computerway Food Systems
System Controls Manager

(336) 841-7289 /Work/
(336) 841-2594 /Fax/
nbi...@mycfs.com

PO Box 5623 (27262)
635 Southwest Street
High Point, NC 27260
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to