C++ odbc ms sql

Hallo, ich habe ein Problem mit folgendem Code:

SQLAllocHandle(SQL\_HANDLE\_STMT, m\_hSQLDatabase, &hstmt);
SQLExecDirect(hstmt, (unsigned char \*)(LPCSTR)query, query.GetLength());
SQLFreeHandle(SQL\_HANDLE\_STMT, &hstmt);

Und zwar bekomme ich einen Fehler, wenn ich diesen Code mehrmals hintereinander ausführe (), außerdem liefert die Funktion SQLFreeHandle() SQL_INVALID_HANDLE zurück, obwohl SQLAllocHandle SQL_SUCCESS zurückliefert. Kann mir vielleicht jemand weiterhelfen. Danke schonmal Gruß Tobias.