#include #include #include #include #include "fatal.h" #define MAX_QUERY_LEN 4096 int main( int argc, char *argv[] ) { int msqlSocket, msqlFieldsCounter, index; m_result *msqlResultHandle; m_row msqlResultRow; char queryString[MAX_QUERY_LEN]; /* connect to database, NULL argument indicates localhost */ if( ( msqlSocket = msqlConnect( NULL ) ) == -1 ) fatal( "%s\n", msqlErrMsg ); if( msqlSelectDB( msqlSocket, "tasks" ) == -1 ) fatal( "%s\n", msqlErrMsg ); /* build query string */ strcpy( queryString, "select * from task_detail" ); if( msqlQuery( msqlSocket, queryString ) == -1 ) { fprintf( stderr, "%s\n", msqlErrMsg ); return( -1 ); } /* save the query to a result handle */ msqlResultHandle = msqlStoreResult(); /* determine how many fields were returned */ msqlFieldsCounter = msqlNumFields( msqlResultHandle ); /* spew the results */ while( ( msqlResultRow = msqlFetchRow( msqlResultHandle ) ) != NULL ) { for( index = 0; index < msqlFieldsCounter; index++ ) printf( "%s ", msqlResultRow[index] ); printf( "\n" ); } /* free the result handle */ msqlFreeResult( msqlResultHandle ); /* documentation says this returns an int, msql.h indicates void */ msqlClose( msqlSocket ); return( 0 ); }