Pro C en SQL
Publicado por Hector Moreno (3 intervenciones) el 27/02/2008 19:22:34
Saludos.
estimados todos, espero su respuesta. gracias
No domino proC y necesito que este sig codido se pase a SQL mediante la creacion de una funcion.
GRACIAS !!
/******************************************************************
* * ******************************************************************/
void contrat( cduniec, cdram, edo, nopol, agrupa, digv, mon )
char *cduniec;
char *cdram;
char *edo;
char *nopol;
char *agrupa;
int digv;
char *mon;
{
char cRefe[19]; /* Referencia*/
int v_digito; /*Digito verificador*/
int i;
int m;
int cont = 0;
vcharstr(v_cdunieco,cduniec);
vcharstr(v_cdramo,cdram);
vcharstr(v_estado,edo);
vcharstr(v_nmpoliza,nopol);
vcharstr(v_cdagrupa,agrupa);
v_digito = digv;
vcharstr(v_moneda,mon);
printf(" JJD: Agrupa %s ", v_cdagrupa.arr);
EXEC SQL
Select Lpad(:v_cdunieco,3,'0'),Lpad(:v_nmpoliza,10,'0')
Into :v_unieco,:v_poliza
From dual;
EXEC SQL WHENEVER NOT FOUND GOTO salir;
EXEC SQL WHENEVER SQLERROR GOTO casca;
EXEC SQL OPEN C_CONTRAT;
for ( m = 1; m <= 8; m++ ){
printf(" %d", m);
cont = cont + 1;
EXEC SQL FETCH C_CONTRAT INTO :v_banco, :v_tipcontr, v_contrato, :v_refer;
vcharlim(v_banco);
vcharlim(v_tipcontr);
vcharlim(v_contrato);
printf(" JJD: %s %s %s %s ", v_banco.arr, v_tipcontr.arr, v_contrato.arr, cRefe );
if ( v_refer == 1 ){
sprintf(cRefe,"%s%s%s%s%d",v_unieco.arr,v_cdramo.arr,v_poliza.arr,v_cdagrupa.arr, v_digito);
}
trc( "%s %s %s %s ", v_banco.arr, v_tipcontr.arr, v_contrato.arr, cRefe );
}
salir:
EXEC SQL CLOSE C_CONTRAT;
if ( cont < 8 ){
for ( i = cont; i <= 8; i++ ){
trc( " ");
}
}
casca:
EXEC SQL WHENEVER SQLERROR CONTINUE;
sqlca.sqlerrm.sqlerrmc[sqlca.sqlerrm.sqlerrml]=' ';
strcpy(jmsgerror,sqlca.sqlerrm.sqlerrmc);
}
/*********************************************************/
estimados todos, espero su respuesta. gracias
No domino proC y necesito que este sig codido se pase a SQL mediante la creacion de una funcion.
GRACIAS !!
/******************************************************************
* * ******************************************************************/
void contrat( cduniec, cdram, edo, nopol, agrupa, digv, mon )
char *cduniec;
char *cdram;
char *edo;
char *nopol;
char *agrupa;
int digv;
char *mon;
{
char cRefe[19]; /* Referencia*/
int v_digito; /*Digito verificador*/
int i;
int m;
int cont = 0;
vcharstr(v_cdunieco,cduniec);
vcharstr(v_cdramo,cdram);
vcharstr(v_estado,edo);
vcharstr(v_nmpoliza,nopol);
vcharstr(v_cdagrupa,agrupa);
v_digito = digv;
vcharstr(v_moneda,mon);
printf(" JJD: Agrupa %s ", v_cdagrupa.arr);
EXEC SQL
Select Lpad(:v_cdunieco,3,'0'),Lpad(:v_nmpoliza,10,'0')
Into :v_unieco,:v_poliza
From dual;
EXEC SQL WHENEVER NOT FOUND GOTO salir;
EXEC SQL WHENEVER SQLERROR GOTO casca;
EXEC SQL OPEN C_CONTRAT;
for ( m = 1; m <= 8; m++ ){
printf(" %d", m);
cont = cont + 1;
EXEC SQL FETCH C_CONTRAT INTO :v_banco, :v_tipcontr, v_contrato, :v_refer;
vcharlim(v_banco);
vcharlim(v_tipcontr);
vcharlim(v_contrato);
printf(" JJD: %s %s %s %s ", v_banco.arr, v_tipcontr.arr, v_contrato.arr, cRefe );
if ( v_refer == 1 ){
sprintf(cRefe,"%s%s%s%s%d",v_unieco.arr,v_cdramo.arr,v_poliza.arr,v_cdagrupa.arr, v_digito);
}
trc( "%s %s %s %s ", v_banco.arr, v_tipcontr.arr, v_contrato.arr, cRefe );
}
salir:
EXEC SQL CLOSE C_CONTRAT;
if ( cont < 8 ){
for ( i = cont; i <= 8; i++ ){
trc( " ");
}
}
casca:
EXEC SQL WHENEVER SQLERROR CONTINUE;
sqlca.sqlerrm.sqlerrmc[sqlca.sqlerrm.sqlerrml]=' ';
strcpy(jmsgerror,sqlca.sqlerrm.sqlerrmc);
}
/*********************************************************/
Valora esta pregunta


0