Program Listing - OLE DB Provider for Teradata

OLE DB Provider for Teradata User Guide

Product
OLE DB Provider for Teradata
Release Number
15.00
Language
English (United States)
Last Update
2018-09-28
dita:id
B035-2498
Product Category
Teradata Tools and Utilities

Program Listing

//Create Statement
const WCHAR wszUDFCreateStmt[]=
L"REPLACE FUNCTION udf01(INTEGER) \
RETURNS INTEGER \
LANGUAGE C \
NO SQL \
PARAMETER STYLE SQL \
EXTERNAL NAME \
'SS!udf01!/tmp/udf01.c'";     //file must reside on server node
 
//Delete Statement
const WCHAR wszUDFDeleteStmt[] = L"DROP FUNCTION udf01; ";
 
//Rename Statement
const WCHAR wszUDFRenameStmt[] = L"RENAME function udf01 to udf0001; ";
 
 
void UDFOperations (ICommand *pICommand)
{
    ICommandText			*pICommandText = 0;
    HRESULT				hResult = S_OK;
 
    //creating Command Text
    pICommand->QueryInterface(IID_ICommandText, (void **)&pICommandText);
 
    //--------------
    //     Going to CREATE the UDF
 
    hResult = m_pICommandText->SetCommandText(DBGUID_DEFAULT, UDFCreateStmt);
    if (hResult != S_OK)
        goto CLEANUP;
 
    hResult = m_pICommand->Execute(NULL, IID_NULL, NULL, &cRowsAffected, NULL);
    if (hResult != S_OK)
        goto CLEANUP;
 
    //--------------
 
    //--------------
    //     Going to RENAME the UDF
 
    hResult = m_pICommandText->SetCommandText(DBGUID_DEFAULT, UDFRenameStmt);
    if (hResult != S_OK)
        goto CLEANUP;
 
    hResult = m_pICommand->Execute(NULL, IID_NULL, NULL, &cRowsAffected, NULL);
    if (hResult != S_OK)
        goto CLEANUP;
 
    //--------------
 
    //--------------
    //     Going to DELETE the UDF
 
    hResult = m_pICommandText->SetCommandText(DBGUID_DEFAULT, UDFDeleteStmt);
    if (hResult != S_OK)
        goto CLEANUP;
 
    hResult = m_pICommand->Execute(NULL, IID_NULL, NULL, &cRowsAffected, NULL);
    if (hResult != S_OK)
        goto CLEANUP;
 
    //--------------
 
CLEANUP:
 
    //---------------------------------------------------------
    // See Chapter 4 for more details about Error Messages
    //---------------------------------------------------------
 
    if (pICommandText)
        pICommandText->Release();
}