linter_cursopt

Назначение

Получить характеристики курсора.

Синтаксис

 
linter_cursopt cursorId option [number]
Параметр Описание
cursorId  Идентификатор курсора.
option  Идентификатор характеристики курсора.
number  Номер столбца курсора (только для характеристики cAnswerDesc). Нумерация столбцов с 1.

Идентификатор характеристики курсора Описание
cSelectRowCount  Число записей в выборке данных.
cRowCount  Количество обработанных последним SQL-оператором записей.
cColumnCount  Количество столбцов в выборке данных.
cStmtType  Тип последнего SQL-оператора.
cCurrentRow  Номер (в выборке данных) текущей записи.
cExecRow  Количество обработанных записей (за один Execute).
cAnswerDesc  Описание столбца выборки данных.
cAnswerSize  Размер записи выборки данных (в байтах).
cStmtNumber  Номер текущего оператора.
cParamNumber  Номер параметра, при обработке которого произошла ошибка.
cPriority  Приоритет курсора.
cConnectID  Номер соединения, по которому открыт курсор.
cTransMode  Режим обработки транзакций курсора.
cApiCode  Код завершения LinAPI.
cLinCode  Код завершения СУБД ЛИНТЕР при последней операции по курсору.
cSysCode  Код сообщения ОС при последней операции по курсору.
cStrNumber  Номер строки SQL-оператора, в которой выявлена ошибка трансляции.
cPosNumber  Номер позиции в строке SQL-оператора, в которой выявлена ошибка трансляции.
cCursorName  Имя курсора.

Возвращаемые значения

Строка, содержащая запрошенные элементы.

Если тип характеристики cAnswerDesc, то возвращается строка следующего вида:

< схема >#< таблица >#< столбец >#< тип >#< длина >#< точность >#< масштаб >

где:

  • # – символ пробела;

  • < схема > – имя схемы таблицы;

  • < таблица > – имя таблицы;

  • < столбец > – имя столбца;

  • < тип > – тип данных столбца;

  • < длина > – длина значений столбца;

  • < точность > – точность значений столбца (при наличии у значения точности);

  • < масштаб > – масштаб значений столбца (при наличии у значения масштаба).

Для неименованных столбцов в качестве имени столбца выдается < NONAME >.

Примеры

1)
# Получение характеристики cSelectRowCount курсора curs
if  {[catch {linter_cursopt $curs cSelectRowCount} row_count]}      {
   puts [linter_error];
}

2)
# Получение имен столбцов выборки данных
…
for {set i 1} {$i < = $ColumnsCount} {incr i} {
if  {[catch {linter_cursopt $curs cAnswerDesc $i} ans_desc]} {
puts [linter_error];
}
  set value [lindex $ans_desc 2];
  puts "Column name: $value";
}