今天用otl调用存储过程,一下是错误的写法
char *szsql2 = "begin procedure_normal(:a<double, in>,:b<char[1024], inout>);end;";
cout<<szsql<<endl;
cout<<szsql2<<endl;
//调用存储过程第一个参数为1
otl_stream o(1,szsql2,g_db);
double nPara1=999;
char szPara2[1024] = {0};
//顺序给输入参数赋值(从左到右)
o<<nPara1<<szPara2;
//顺序取出输出参数(从左到右)
o>>szPara2;
printf("P1=%f\nP2=%s\n",nPara1,szPara2);
printf("szPara2.Length=%d\n",strlen(szPara2));
咋一看好像没问题,实际上代码是错的原因是szsql2中的in、inout不能和前面的有空格