Umwandlung char nach mysql-result



  • Hallo zusammen,
    folgende Datenbankanfrage liefert immer eine Ganzzahl zwischen 20 und 60.
    Das Result ist char, ich bräuchte es aber als int oder double.
    Ist das Result einer Abfrage immer char?

    class temperatur
    {
    	double temp;
    	char zeile[250], * cstr;
    
    	public:
    	temperatur() : temp(0)
    	{
    	}
    ....
    	double vorgabe_vorlaufTemp(int aussen)
    	{
    		MYSQL_RES *mResult;
    		MYSQL_ROW mRecord;
    		MYSQL *mConnection, mDB;
    		mysql_init(&mDB);
    
    		mConnection = mysql_real_connect(&mDB,"localhost","root","passwd","Heizung",0,0,0);
    		if (mConnection == NULL){
    			std::cout << "Es konnte keine Verbindung zur Datenbank hergestellt werden: " << mysql_error(&mDB);
    			return 1;
    		}
    		std::string query = "SELECT vorlauf FROM kennlinie WHERE aussen = '"+inttostr(aussen)+"'";
    		mysql_query(mConnection, query.c_str());
    
    		if (!(mResult = mysql_store_result(mConnection)))
    		{
    			return 0;
    		} 
    
    		mRecord = mysql_fetch_row(mResult);
    		return mRecord[0];
    	}
    };
    

    Beim Kompilieren tritt dann folgender Fehler auf:

    »char*« kann nicht nach »double« in return umgewandelt werden
    

    Gruß
    Bernd



  • Der Returnwert ist kein char sondern char*, also ein Zeiger auf char sprich ein Char-Array.
    Umwandlung nach int (double geht analog):

    std::stringstream ss;
    ss.str(mRecord);
    int i;
    ss >> i;
    


  • Danke,
    so klappt es


Anmelden zum Antworten