Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » mysql free_result führt zu abbruch

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.10.2007, 14:39 Uhr
~ulibeariy
Gast


hi,

ich arbeite mich mysql und habe ein problem, wenn ich das result set wieder frei geben möchte.




C++:
class CRequestDB :
    public CConnectDB
{
public:
    CRequestDB(HWND hWnd, char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort);
    ~CRequestDB(void);

    MYSQL_RES*    SearchDB(std::vector<std::string> *searchArg);
    bool        GetStatSearchSuccess(){return bSearchSuccessful;}

public:
    MYSQL_RES* result;
    MYSQL_ROW rowContent;
    unsigned long int numRow;
    unsigned long int numCol;
private:
    bool    bSearchSuccessful;
};



C++:
CRequestDB::~CRequestDB()
{
    mysql_free_result(result);
}


wenn ich im destruktor die free_resutl mehtode aufrufe bricht das programm mit einer speicherzugriffsverletzung ab. so richtig verstehen tu ich das nicht, was kann das für gründe haben?

die fehlermeldung ist leider nicht aussagekräftig

Zitat:
Unbehandelte Ausnahme bei 0x10004ed4 in KnowledgeBase.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeef005a.


jemand eine idee oder einen lösungsansatz, ich finde leider nix brauchbares über google wenn ich nach einen abbruch beim benutzen der free_result methode google.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.10.2007, 16:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


result ist uninitialisiert oder schon gelöscht und zeigt auf nonsense - darum der crash. zeig mal den rest deiner klasse.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.11.2007, 12:33 Uhr
~ulibeariy
Gast



Zitat von FloSoft:
result ist uninitialisiert oder schon gelöscht und zeigt auf nonsense - darum der crash. zeig mal den rest deiner klasse.



C++:
#include "StdAfx.h"
#include "CRequestDB.h"

CRequestDB::CRequestDB(HWND hWnd, char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort):CConnectDB(hWnd, pHost, pUser, pPass, pDatab, pPort)
{
    this->bSearchSuccessful = false;
    this->result = NULL;
}

CRequestDB::~CRequestDB()
{
    mysql_free_result(result);
}


MYSQL_RES* CRequestDB::SearchDB(std::vector<std::string> *searchArg)
{
    std::string temp("Select * from knowledgebase where info like '%");

    size_t iArgCount = searchArg->size();
    
    if(iArgCount > 1)
    {
        // 1. Argument zusammenbauen
        temp += searchArg->at(0) + endArg;

        for( unsigned int i = 1; i < iArgCount; i++)
        {
            //weitere Argumente anhängen
            temp += addArg + searchArg->at(i) + endArg;
        }

    }
    else if (iArgCount == 1) /* Speicherzugriffsverletzung abfangen, prüfen ob zumindest 1 Suchbegriff angegeben wurde */
         temp += searchArg->at(0) + endArg;

    if (iArgCount > 0) /* Wenn min. 1 Suchargument angegeben wurde, Verbinden und suchen */
    {
        if(!mysql_query(this->pConnection, temp.c_str()))
        {
            this->result = mysql_store_result(this->pConnection);
            this->bSearchSuccessful = true;
        }
    }
    

    return this->result;
}




der Aufruf erfolg in der windproc funktion


C++:
    case WM_COMMAND:
    
        case ID_GOBUTTON:
            {
            CRequestDB* myRequest = new CRequestDB(hWnd, "localhost","root","root","knowledgebase",3306);
            CSearchArg  mySearchArg;
            myRequest->SearchDB(mySearchArg.GetSearchArguments(hSearchLine));
            OutputQueryResultsToListView(hListView, *myRequest);
            delete myRequest;
            break;
            }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.11.2007, 12:52 Uhr
~Deviloper
Gast


Kennst du Referenzen und const-correctniss?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.11.2007, 13:18 Uhr
~ulibeariy
Gast



Zitat von ~Deviloper:
Kennst du Referenzen und const-correctniss?


const-correctniss hab ich noch nie gehört, referenze kenn ich. was mach ich den falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.11.2007, 13:48 Uhr
~ulibeariy
Gast


ich hab mir mal was dazu durchgelesen, aber meinen fehler finde ich trotzdem nicht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: