Calling a store procedure

"Jaime Stuardo" <[email protected]>
Newsgroups gmane.comp.db.unixodbc.devel
Organization DESYTEC - Development, Systems & Technologies
Message-ID <000001ccf1d7$fedf2000$fc9d6000$@com>
Hello… I am trying to call a SQL Server 2005 stored procedure by mean of a
C++ application running under RedHat Linux. unixODBC is installed correctly
since I can connect to the database.

 

When I run SQLExecDirect, the returned value is an error. So, here are the
questions:

 

·         Why does an error occur?

·         Why does the SQLGetDiagRec function cannot return the actual
error? If I generate an error passing a string instead of a date in the
second parameter, the error is: [FreeTDS][SQL Server]Error converting data
type varchar to datetime. That means ExtractError function I implemented is
correct.

 

This is the code with SQLExecDirect:

 

    ret = SQLExecDirect(stmt, (SQLCHAR *) query.c_str(), SQL_NTS);

    if (!SQL_SUCCEEDED(ret)) {

        StoreSocket::ExtractError("SQLExecDirect", stmt, SQL_HANDLE_STMT);

        return false;

    }

 

Where query is:

execute usp_contrato_actualiza_aclaracion 'uno', '2012-02-22', 'dos',
'tres', 'cuatro', '2012-02-14', 'cinco', 'seis', 'siete', 'ocho', 'nueve',
'diez', 'once'

 

And the body of ExtractError is:

 

**************************

void StoreSocket::ExtractError(

        char *fn,

        SQLHANDLE handle,

        SQLSMALLINT type) {

    SQLINTEGER i = 0;

    SQLINTEGER native;

    SQLCHAR state[ 7 ];

    SQLCHAR text[256];

    SQLSMALLINT len;

    SQLRETURN ret;

 

    do {

        ret = SQLGetDiagRec(type, handle, ++i, state, &native, text,

                sizeof (text), &len);

        if (SQL_SUCCEEDED(ret)) {

            printf("%s:%ld:%ld:%s\n", state, i, native, text);

        }

    } while (ret == SQL_SUCCESS);

}

**************************

 

Any help will be greatly appreciated,

 


Jaime Stuardo - Gerente General

DESYTEC - Development, Systems & Technologies

 


http://www.coralina.gov.co/intranet/templates/ja_sargas/images/con_address.p
ng   La Concepción 81 Of. 608, Providencia, Santiago

http://solution.weborama.com/img/phone.png   + 56 2 264 9399
http://www.at4wireless.com/imagenes/icons/fax.png   + 56 2 264 1558

http://www.path.org.uk/webpage.gif    <http://www.desytec.com/>
http://www.desytec.com

desytec-assembla

_______________________________________________
unixODBC-dev mailing list
[email protected]
http://mailman.unixodbc.org/mailman/listinfo/unixodbc-dev
image001.png (image/png, 179 B) - not displayed
image002.gif (image/gif, 1.1 KB) - not displayed
image003.png (image/png, 634 B) - not displayed
image004.png (image/png, 428 B) - not displayed
image005.gif (image/gif, 1015 B) - not displayed
image006.gif (image/gif, 5.9 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.