Вот такой код у меня работает 6 секунд:
PHP код:
static void DD_StoredProcWithParam(Args _args)
{
str serverName = "AXAPTA-SQL";
str baseName = "AXDB";
str userId = "sa";
str userPassword = "";
CCADOConnection cn;
COM comCN;
COM cmd;
COM param, params;
COMVariant emptyParam;
COMVariant result;
int i;
;
cn = new CCADOConnection();
cn.open(
"Provider=SQLOLEDB;"+
"Data Source=" + serverName + ";" +
"Initial Catalog=" + baseName + ";" +
"uid=" + userId + ";" +
"pwd=" + userPassword);
comCN = cn.connection();
cmd = new COM("ADODB.Command");
param = new COM("ADODB.Parameter");
params = cmd.Parameters();
param.Type(16); //adTinyInt, смотрите броузер объектов в среде VB в Экселе
param.Name("@Res_"); //для Оракла обязательно передавать имя параметра
param.direction(3); //adParamInputOutput, смотрите броузер объектов в среде VB в Экселе
params.append(param);
cmd.activeConnection(comCN);
cmd.commandType(4); //adCmdStoredProc, смотрите броузер объектов в среде VB в Экселе
cmd.CommandText("axExp");
emptyParam = new COMVariant(COMVariantInOut::Out, COMVariantType::VT_INT);
for (i=0 ;i<1000; i++)
{
param.Value(55); //передаем в процедуру число 55
cmd.Execute (emptyParam, params);
result = param.Value();
info(int2str(result.byte()));
}
cn.close();
}