hey all. i got my engine to compile so now im doing basic SQL syntax of load 
the user, since its in a very early production stage the players table only has 
4 values to load. Table: Players          UserID varchar(30) /* their constant 
userid */          Race smallint          /*  their race number */          
Class smallint         /* their class number */          Loaded smallint      
/* character was loaded? */    when a user hits 'P' to play from the mainmenu 
the programexecutes loaduser() this queries the database ande loadstheir user 
data, and if it does not exist it will insert an initialrecord.i've tries this 
a bunch of different ways that result in falsequeries or inserting multiple 
records with the sameusername. ill post what im doing and someone can point me 
in the right direction.    /* snippet from SQLMUD.C */ 
player=&player_data[usrnum]; if( (margc == 1)  && (toupper(margv[0][0]) == 'P' 
)) /* menu command to play the game */{     loaduser();     if(player->loaded)  
   {         pmlt("I loaded your character record.\r");     }     else     {    
     pmlt("I did not load your character record, creating a new one.\r");     
}}    /* snippet from MUDUSER.C */  VOIDloaduser(VOID)/* load character data 
*/{     sqlite3 *database;     sqlite3_stmt *statement;     const CHAR *tail;   
  INT rc;          usaptr=&usroff(usrnum);      /* lets open the database */    
 rc=sqlite3_open("SQLMUD.DB",&database);     /* error: unable to establish 
connection */    if(rc!=SQLITE_OK)    {       pmlt("I was unable to establish a 
connection to the database! Exiting.\r");       return;    }     /* create a 
query string */    sprintf(vdatmp,"select * from Players where UserID = 
'%s'",usaptr->userid);     
rc=sqlite3_prepare_v2(database,vdatmp,INPSIZ,&statement,&tail);         
if(rc!=SQLITE_OK)    {        //did not query i think here is where i insert a 
new character record?        pmlt("Could not query you in the database, i think 
i need to insert.\r");        sqlie3_close(database);        return;    }      
player->loaded=0;      while(sqlite3_step(statement)==SQLITE_ROW)     {         
 pmlt("LOAD: USERID = %s\r",sqlite3_column_text(statement,0));           
pmlt("LOAD: RACE = %s\r",sqlite3_column_text(statement,1));           
pmlt("LOAD: CLASS = %s\r",sqlite3_column_text(statement,2));           
pmlt("LOAD: LOADED = %s\r",sqlite3_column_text(statement,3));           
strncpy(player->userid,sqlite3_column_text(statement,0),UIDSIZ);           
player->race=atoi(sqlite3_column_text(statement,1));           
player->class=atoi(sqlite3_column_text(statement,2));          
player->loaded=atoi(sqlite3_column_text(statement,3));              } 
sqlite3_finalize(statement);sqlite3_close(database);}    so what im trying to 
accomplish is: when they hit the menu command 'P' it loads their data.within 
loaduser() i want it to query the database for them by name.if it dont exist 
create an initial record containing default dataelse load their data.the user 
flag 'loaded' tells the game to either create a newcharacter or enter with the 
loaded data.  i got several other samples i been playing with but ill start 
with this oneto get pointed in the right direction.                             
              
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to