Hi

This won't work, because sUsername.assign... will not be accepted with 
sqlite3_column_text, because sqlite_column_text if of type const unsigned 
char...

Anyway, the other version with the callback function still gives me headache... 
how shall i access the data in my statement, when i have to call another 
function? Does somebody have another good example for this?


-------- Original-Nachricht --------
> Datum: Wed, 05 Sep 2007 12:13:25 +0200
> Von: "Daniel Önnerby" <[EMAIL PROTECTED]>
> An: [email protected]
> Betreff: Re: [sqlite] C/C++ API

> This code is totaly untested. But something like this:
> 
>     std::string sUsername;
>     sqlite3 *db;
>     if( sqlite3_open("db/users.db",&db) ){
>      
>        // prepare the statement
>         sqlite3_stmt *oStmt;
>         if( sqlite3_prepare_v2(db,"SELECT username FROM users WHERE 
> nick=?",-1,&oStmt,NULL)==SQLITE_OK ){
>        
>             // Bind your nickname to the ?-parameter in SQL.
>             sqlite3_bind_text(oStmt,1,nick,-1,SQLITE_STATIC);
>            
>             // Execute the statement
>             if( sqlite3_step(oStmt)==SQLITE_ROW){
>                 sUsername.assign( sqlite3_column_text(oStmt,1) );
>             }
>            
>         }
>         sqlite3_reset(oStmt);
>         sqlite3_finalize(oStmt);
>        
>         sqlite3_close(db);
>        
>         return sUsername;
>     }
> 
> 
> Severin Müller wrote:
> > Hi
> >
> > I'm new to sqlite3, and i' have some Problems with my code. I'm trying
> to select data from a table and to save the result in a string. but i have
> no clue how to accomplish this. 
> >
> > Here is a part of my code:
> >
> > std::string get_user_info(const char* nick,int mode)
> > {
> > #ifdef _WIN32 
> >     const char *filename = "db\\users.db";
> > #else
> >     const char *filename = "db/users.db";
> > #endif
> >     services serv;
> >     Config conf;
> >     sqlite3 *db;
> >     char *zErrMsg = 0;
> >     int rc;
> >     char *sql = (char*) malloc(sizeof(char)*64);
> >     rc = sqlite3_open(filename,&db);
> >     if(rc)
> >     {
> >             std::cout << "S_ERR_USERDATABASE" << std::endl;
> >             globops(conf.get_s_name(),S_MSG_SRVGOINGDOWN);
> >             sqlite3_close(db);
> >             return NULL;
> >     }
> >     sprintf(sql,"SELECT * FROM '%s';",nick);
> >     if(rc!=SQLITE_OK)
> >     {
> >             fprintf(stderr,"SQL error: %s\n",zErrMsg);
> >             sqlite3_free(zErrMsg);
> >     }
> >         user = ...// i'd like to store the db data in a string here...
> >     return user;
> > }
> >
> > Can anybody help me here? Thanks
> >
> >
> > Regards
> >
> > Sevi
> >
> >
> >   
> 
> 
> -----------------------------------------------------------------------------
> To unsubscribe, send email to [EMAIL PROTECTED]
> -----------------------------------------------------------------------------

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to