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