[freetds] SP parameters
ZIGLIO, Frediano, VF-IT
Frediano.Ziglio at vodafone.com
Tue Jun 27 05:26:14 EDT 2006
>
> Well, I'm using freetds 0.63 and I'm working with this record
> per transaction:
>
> struct str_saldo
> {
> char sal_nro_tarjeta[MAX_STR];
> char sal_nro_ani[MAX_STR];
> int sal_sp_estado;
> char sal_saldofinal[MAX_STR];
> int sal_tipo_cliente;
> char sal_sp_exec[MAX_STR];
> };
> And it's my dbrpcparam calls for
> "Telviso_ValidaSaldoTarjetaAni" procedure that require 6 parameters.
>
> if ( dbrpcparam(dbcon, "@devuelve", (BYTE)0, SYBINT4, -1,
> -1, (BYTE *)op ) == FAIL) return FAIL;
> if ( dbrpcparam(dbcon, "@tarjeta", (BYTE)0, SYBVARCHAR,
> sizeof(rsaldo->sal_nro_tarjeta),
> sizeof(rsaldo->sal_nro_tarjeta), (BYTE
> *)&rsaldo->sal_nro_tarjeta) == FAIL)return FAIL;
This is quite wrong, maxlen should be 0 while datalen should be actual
length, something like
if (dbrpcparam(dbcon, "@tarjeta", 0, SYBVARCHAR, 0,
strlen(rsaldo->sal_nro_tarjeta),
(BYTE *)&rsaldo->sal_nro_tarjeta) == FAIL)
return FAIL;
However I'm having some strange problems, current 0.63 returns
executing dbrpcinit
executing dbrpcsend
executing dbsqlok
rpc: dblib.c:1473: dbcolname: Assertion `resinfo' failed.
Aborted
freddy77
More information about the FreeTDS
mailing list