コード例 #1
0
void simpleQueryTest() {
    //Intercept query test
    {
        std::unique_ptr<SQLResponse> y  = restQuery ( L"SELECT 1", KServerAddr, KPort, KUserName, KPassword, KDefaultProject );

        if ( ( int ) y->results.size() != 1 ) {
            report();
        }
    }
    //Ungzipped Query Test
    {
        std::unique_ptr<SQLResponse> y  = restQuery ( L"select cal_dt from test_kylin_fact limit 1", KServerAddr, KPort,
                                          KUserName, KPassword, KDefaultProject );

        if ( ( int ) y->results.size() != 1 ) {
            report();
        }
    }
    //zipped Query Test
    {
        std::unique_ptr<SQLResponse> y  = restQuery ( L"select * from test_kylin_fact limit 12", KServerAddr, KPort, KUserName,
                                          KPassword, KDefaultProject );

        if ( ( int ) y->results.size() != 12 ) {
            report();
        }
    }
}
コード例 #2
0
ファイル: KO_EXEC.CPP プロジェクト: Arun-Ghosh/odbc-driver
RETCODE SQL_API _SQLExecStmtFromReq ( pODBCStmt pStmt, bool pPrepared ) {
    ////// this part should not be required if already prepared
    // release existing stmt contents
    //SQLFreeStmt ( pStmt, SQL_CLOSE );
    //////
    __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "================================================================" ) );
    __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "start exec the query: " ) );
    __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, pStmt->Stmt ) );
    std::unique_ptr<SQLResponse> p;
    
    try {
        p = restQuery ( pStmt->Stmt, pStmt->Conn->Server, pStmt->Conn->ServerPort, pStmt->Conn->UserName, pStmt->Conn->Password,
                        pStmt->Conn->Project );
        __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The REST request succeed" ) );
    }
    
    catch ( const exception& e ) {
        std::stringstream ss;
        ss << "The REST query request failed, the error message is: " << e.what();
        std::string s = ss.str();
        __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, s.c_str() ) );
        _SQLPutDiagRow ( SQL_HANDLE_STMT, pStmt, "_SQLExecStmtFromReq", "01000", -1, ( char* ) s.c_str() );
        return SQL_ERROR;
    }
    
    // feed stmt structure with response, stmt will take charge of deleting it
    if ( p == NULL ||  p->isException == true || PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) {
        return SQL_ERROR;
    }
    
    __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "Successfully done executing the query" ) );
    return SQL_SUCCESS;
}
コード例 #3
0
ファイル: VeroTest.cpp プロジェクト: ajoabraham/odbc-driver
void veroRestApiTest() {
    // rest authenticate
    bool ret = restAuthenticate(KServerAddr, KPort, KUserName, KPassword);
    if (!ret) {
        report();
    }

    // rest projects
	std::map<string, string> projectMap;
	restListProjects(KServerAddr, KPort, KUserName, KPassword, projectMap);

	for (std::map<string, string>::iterator i = projectMap.begin(); i != projectMap.end(); i++) {
		cout << "Project = " << (*i).first << endl;
	}

    // rest meta
    std::unique_ptr<MetadataResponse> metaResponse = restGetMeta(KServerAddr, KPort, KUserName, KPassword, KDefaultProject);

	// rest query
	{
		std::unique_ptr<SQLResponse> y = restQuery(L"select Year", KServerAddr, KPort,
			KUserName, KPassword, KDefaultProject);

		if ((int)y->results.size() != 1) {
			report();
		}
	}
}