Beispiel #1
0
int OdbcStaticConnection::do_rdbi_connect (rdbi_context_def* rdbi_context, int& id)
{
	FdoStringP csStr = UnitTestUtil::GetConnectionString(Connection_NoDatastore);
    if (rdbi_context->dispatch.capabilities.supports_unicode == 1)
        return (rdbi_connectW (rdbi_context, csStr, L"", L"", &id));
    else
        return (rdbi_connect (rdbi_context, csStr, "", "", &id));
}
int MySqlGeometryTests::do_rdbi_connect (const char* dataStoreName, const char* userName, const char* userPassword)
{
    int cursor;
    int ret;

    ret = rdbi_connect (
        mRdbiContext,
        UnitTestUtil::GetEnviron("service"),
        UnitTestUtil::GetEnviron("username"),
        UnitTestUtil::GetEnviron("password"),
        &mId);

    if (RDBI_SUCCESS == ret)
    {
        // condition the connection to use MyIsam tables by default
        cursor = -1;
        try
        {
            CPPUNIT_ASSERT_MESSAGE ("rdbi_est_cursor failed", RDBI_SUCCESS == rdbi_est_cursor (mRdbiContext, &cursor));
            CPPUNIT_ASSERT_MESSAGE ("rdbi_sql failed", RDBI_SUCCESS == rdbi_sql (mRdbiContext, cursor, "set storage_engine=MyIsam"));
            CPPUNIT_ASSERT_MESSAGE ("rdbi_execute failed", RDBI_SUCCESS == rdbi_execute (mRdbiContext, cursor, 1, 0));
            CPPUNIT_ASSERT_MESSAGE ("rdbi_fre_cursor failed", RDBI_SUCCESS == rdbi_fre_cursor (mRdbiContext, cursor));
            cursor = -1;
        }
        catch (CppUnit::Exception exception)
        {
            const char *msg = exception.what ();
			char message[RDBI_MSG_SIZE];
			rdbi_get_msg (mRdbiContext);
#ifdef _WIN32
			WideCharToMultiByte ( CP_THREAD_ACP, 0, mRdbiContext->last_error_msg, (int)wcslen(mRdbiContext->last_error_msg), message, RDBI_MSG_SIZE, NULL,  NULL);
#else
			wcstombs ( message, mRdbiContext->last_error_msg, RDBI_MSG_SIZE);
#endif
			strcat (message, ": ");
			strcat (message, msg);
			if (-1 != cursor)
				rdbi_fre_cursor (mRdbiContext, cursor);
			throw CppUnit::Exception (message);
        }
        catch (...)
        {
            if (-1 != cursor)
                rdbi_fre_cursor (mRdbiContext, cursor);
            CPPUNIT_FAIL ("unexpected exception encountered");
        }
    }
    return (ret);
}