Zapisanie danych z bazy danych mysql do tablicy

0

Witam

Piszę program w którym chce pracować na danych pobranych z bazy danych mysql. Program łączy się z bazą danych i wyświetla dane poprawnie. Niestety nie potrafię ich zapisać do tablicy. Poniżej fragment kodu.

void MojaFunkcjaKorzystajaca_z_MySql()
{
  char szDB[ 30 ] ;
MYSQL * myData ;
  
 strcpy( szDB, "name"); 

 string wynik;
 char * query;
  long h;
  MYSQL_RES	* res ;
  MYSQL_ROW	row ;


    if ( (myData = mysql_init((MYSQL*) 0)) &&
       mysql_real_connect( myData,  "adres",  "user",  "pass", NULL, MYSQL_PORT,
			   NULL, 0 ) )
    {
      myData->reconnect = 1;
      if ( mysql_select_db( myData, szDB ) < 0 )
      {
	MessageBox(NULL,"Nie można wybrać bazy danych!","Błąd na serwerze sql",MB_OK|MB_ICONSTOP);
	mysql_close( myData ) ;
      }
    }
    else
    {
    	MessageBox(NULL,"Nie można połączyć się z serwerem!","Błąd na serwerze sql",MB_OK|MB_ICONSTOP);
	mysql_close( myData ) ;
    }


	MYSQL_RES *result;
	mysql_query(myData, "select iduser from baza");
	result = mysql_store_result(myData);

	int i;
	int num_fields;
	num_fields = mysql_num_fields(result);
	
	int tab[30];
	char bufor[10];
	while ((row = mysql_fetch_row(result)))
  {
      for(i = 0; i < num_fields; i++)
      {		  
        printf("%s ", row[i] ? row[i] : "NULL");      //tutaj próbowałem wstawiać fragment kodu odpowiedzialny za zapisanie do tablicy 
      }
	  
      printf("\n"); 
  }
	

mysql_free_result(result);
mysql_close( myData ) ;
}
 

Przy próbach zapisu najczęstszym błędem było że chce zapisać char* do int, znalezione w internecie sposoby zmiany typu zmiennej nie pomogły. Proszę o pomoc.

0

Pokaż jak próbowałeś te dane konwertować...

0

W pętli wstawiałem:

tab[i]=atoi(row[i]); 

kompilator błędu nie wywalał ale gdy chciałem sobie wyświetlić np tab[2] to przerywał działanie programu w tym momencie. Ten sam problem był gdy zrobiłem

tab[i]=(int)row[i];
0

Pomógłby ktoś rozwiązać mój problem? Nie mam pojęcia jak to zrobić poprawnie, siedzę nad tym już drugi dzień i nic. Jak próbuję pobrać dane w ten sposób to czepia się cały czas że: cannot convert from 'char *' to 'int'. Jak mogę w inny sposób zapisać dane z bazy danych do jakiejś tablicy? Proszę o pomoc.

0

No bo nie możesz łańcucha znaków char* konwertować do inta poprzez przypisanie. Spróbuj użyć strumieni: istringstream

1 użytkowników online, w tym zalogowanych: 0, gości: 1