Sie sind nicht angemeldet.

1

22.09.2008, 13:11

C++ und mysql

Hallo,

Habe diesen Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
char* sql_nodb (char* host, char* user, char* password, char* query)
{
	/* Private vars defintions */
	MYSQL *mysql=NULL;
	MYSQL_RES *result;
	MYSQL_ROW row;
	char sQuery[1000];
	unsigned int num_fields;
	int i;

  	if ((mysql=mysql_init(mysql)) == NULL) 
	{
    		perror ("Fatal");
		exit(1);
  	}

  	if (!mysql_real_connect(mysql, host, user, password, NULL, 0, NULL, 0)) 
	{
    		perror ("Fatal");
    		exit(1);
  	}
	cout << "\033[32mConnection to database established\033[m"<<endl;

  	strcpy (sQuery, query);
  	if(mysql_exec_sql(mysql,sQuery) == 0) 
	{
    		result = mysql_store_result(mysql);
    		// are there any rows??
    		if (result) 
		{
      			num_fields = mysql_num_fields(result);
      			while ((row = mysql_fetch_row(result))) 
			{
        			for(i = 0; i < num_fields; i++) 
				{
          				cout << row[i]<<endl;
        			}
     			}
      			mysql_free_result(result);
     		}
  	}
	mysql_close(mysql);
	cout << "\033[31mConnection closed\033[m"<<endl;

}


Wie kann ich row umwandeln in eine string oder char* Variable?
Ich würde nämlich gerne mti den Werten von row[0]-row[x] arbeiten...

Danke für die Hilfe

DerRatlose

unregistriert

2

22.09.2008, 17:56

Du könntest den Inhalt von row mit Hilfe von Stringstreams in einen String umwandeln. Ich weiß nicht ob es funktioniert, aber es wäre vielleicht einen Versuch wert:

#include <sstream> // für stringstream

....

MYSQL_ROW row;
stringstream ss;
string s;

....

z << row;
z >> s;

....


Dann hast du row im String. Aber wie gesagt, ich weiß nicht ob es funktioniert.

MfG
DerRatlose

Thema bewerten