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; }
|
|