Oracle应用Linux开发C[7]

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:

printf("%s|%6s%19s%21s%11sn", v[0], v[1], v[2], v[3], v[4]);
}


argv[0] = "5";


if (SQLO_SUCCESS != sqlo_reopen(sth, argc, argv))
{
printf("sqlo_reopen failed: %sn", sqlo_geterror(dbh));
return 0;
}


printf("Fetch againn");


while (0 == sqlo_fetch(sth,1))
{
v = sqlo_values(sth, NULL, 0);
printf("%s|%6s%19s%21s%11sn", v[0], v[1], v[2], v[3], v[4]);
}


#ifdef CLOSE_CURSOR
if (0 > sqlo_close(sth))
{
printf("sqlo_open failed: %sn", sqlo_geterror(dbh));
return 0;
}
#endif
return 1;


}
/*-------------------------------------------------------------------------
* test_plsql
*-----------------------------------------------------------------------*/
int test_plsql( int dbh )
{
int ip2, op1;
double ip1;
char op2[40];


char * create_pack =
"CREATE OR REPLACE PACKAGE SQLORA_TEST ISn"
" PROCEDURE P1(ip1 IN NUMBER, ip2 IN NUMBER, op1 OUT NUMBER, op2 OUT VARCHAR);n"
"END;n";


char * create_pack_body =
"CREATE OR REPLACE PACKAGE BODY SQLORA_TEST ISn"
" PROCEDURE P1(ip1 IN NUMBER, ip2 IN NUMBER, op1 OUT NUMBER, op2 OUT VARCHAR)n"
" IS n"
" BEGINn"
" op1 := TO_NUMBER(ip1) + ip2;n"
" op2 := TO_CHAR(op1);n"
" END;n"
"END;n";


char * stmt =
"BEGINn"
" SQLORA_TEST.P1(:ip1, :ip2, :op1, :op2);n"
"END;n";


int sth;


printf("Testing PL/SQL proceduren");


if (SQLO_SUCCESS != sqlo_exec(dbh, create_pack))
{
printf("sqlo_exec failed: %sn%sn",sqlo_geterror(dbh), create_pack );
return 0;
}


printf("Package createdn");


if (SQLO_SUCCESS != sqlo_exec(dbh, create_pack_body))
{
printf("sqlo_exec failed: %sn%sn",sqlo_geterror(dbh), create_pack_body );
return 0;
}


printf("Package body createdn");


ip1 = 1.123456789012345;
ip2 = 20;
op1 = 0;
*op2 = 0;


if (0 <= (sth = sqlo_prepare(dbh, stmt)))
{
if (SQLO_SUCCESS !=
(sqlo_bind_by_name(sth, ":ip1", SQLOT_FLT, &ip1, sizeof(ip1),0,0) ||
sqlo_bind_by_name(sth, ":ip2", SQLOT_INT, &ip2, sizeof(ip2),0,0) ||
sqlo_bind_by_name(sth, ":op1", SQLOT_INT, &op1, sizeof(op1),0,0) ||
sqlo_bind_by_name(sth, ":op2", SQLOT_STR, op2, sizeof(op2),0,0)
))
{

本文关键:Oracle应用Linux开发C
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top