OCI
От: Alixandra Россия  
Дата: 20.06.06 21:52
Оценка:
Помогите, пожалуйста, решить такую проблему:

я пытаюсь получить информацию о выполняемом запросе, для этого пишу нечто подобное:

OCIStmtExecute(mysvchp, stmthp, myerrhp, 0,0,0,0,OCI_DESCRIBE_ONLY); //подготовка запроса
OCIAttrGet(stmthp, OCI_HTYPE_STMT, &numcols,0, OCI_ATTR_PARAM_COUNT, myerrhp);  //число полей

for (int i=1; i<=numcols; i++)
{
    OCIParamGet((dvoid*)stmthp, OCI_HTYPE_STMT, myerrhp, (dvoid**)&colhd, i); //дескриптор поля

    OCIAttrGet((dvoid*)colhd, OCI_DTYPE_PARAM,(dvoid*)&coltype, 0,OCI_ATTR_DATA_TYPE, myerrhp); //тип поля

    size = 255;
    OraText* colname = new OraText[256];
    loaded_OCIAttrGet((dvoid*)colhd, OCI_DTYPE_PARAM,(dvoid*)colname,&size,OCI_ATTR_NAME, myerrhp); //название поля
}


При этом название поля приходит в какой-то странной кодировке. Т.е. это явно оно — количество символов совпадает с оригиналом, но прочесть его невозможно.
В то же время значения, выбираемые из таблицы, приходят в нормальной кодировке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.