Все добрый день!
Есть задача с под АХ добраться к ораклу и получить некоторые данные. Все вроде получается, но как мне в запрос передать переменную?
"SELECT m,i_pr,k_pr from nsi_kr where k_pr=
:k_pr order by m "
Вот полный код:
PHP код:
static server void Job_OracleOpti1(Args _args)
{
str dbCnnString = "Provider=OraOLEDB.Oracle;" +
"Password=" + "bla" + ";" +
"User ID=" + "bla" + ";" +
"Data Source=" + "oracle";
COM cnnDB, rstDB;
COM flds, fld;
str strSQL, strInfo;
int i, iMax;
anytype adoValueFrom(COMVariant _val, int _type)
{
switch (_type)
{
// список констант соответствует типам данных, распознаваемых ADO
case 5: return _val.double(); // adDouble
case 6: return _val.currency(); // adCurrency
case 7: return _val.date(); // adDate
case 11: return _val.boolean(); // adBoolean
case 202, 203, 200: return _val.bStr(); // adVarWChar, adLongVarWChar("memo")
}
return '';
}
;
cnnDB = new COM("ADODB.Connection");
cmd = new COM("ADODB.Command");
param = new COM("ADODB.Parameter");
param.Type(16);
param.Value(327);
cnnDB.connectionString(dbCnnString);
cnnDB.Open();
strsql = "SELECT m,i_pr,k_pr from nsi_kr where k_pr=:k_pr order by m";
rstDB = new COM("ADODB.Recordset");
rstDB.open(strSQL, cnnDB);
flds = rstDB.Fields();
iMax = flds.Count() - 1;
while (!rstDB.EOF())
{
strInfo ='';
for (i = 0; i <= iMax; i += 1)
{
fld = flds.Item(i);
strInfo = strInfo + adoValueFrom(fld.value(), fld.Type())+ " ";
}
info(strfmt("%1",strinfo));
rstDB.MoveNext();
}
}
Заранее спасибо за помощь