tdbc_resultset
Имя
tdbc::resultset — объект набора результатов TDBCСинопсис
пакет require tdbc 1.0пакет require tdbc::версия драйвера
tdbc::драйвер::соединение создать база данных ?-опция значение...?
set выражение [база данных подготовить sql-код]
set набор результатов [$выражение выполнить ?аргументы...?]
$набор результатов колонки
$набор результатов строки
$набор результатов следующая строка ?-как списки|словари? ?--? имя переменной
$набор результатов следующий список имя переменной
$набор результатов следующий словарь имя переменной
$набор результатов следующие результаты
$набор результатов все строки ?-как списки|словари? ?-переменная колонок имя? ?--?
$набор результатов foreach ?-как списки|словари? ?-переменная колонок имя? ?--? имя переменной скрипт
$набор результатов закрыть
Описание
Каждый драйвер базы данных для TDBC (Tcl DataBase Connectivity) реализует объект набора результатов, который представляет результаты, возвращаемые при выполнении SQL-запроса в базе данных. Экземпляры этого объекта создаются с помощью команды объекта выполнить на объекте выражения.Команда объекта колонки возвращает список имен столбцов в наборе результатов. Столбцы будут отображаться в том же порядке, в котором они появлялись в SQL-запросе, выполнявшем запрос к базе данных. Если SQL-запрос не возвращает набор столбцов (например, если это запрос INSERT, UPDATE или DELETE), команда колонки вернёт пустой список.
Команда объекта строки возвращает количество строк в базе данных, затронутых выполнением запроса INSERT, UPDATE или DELETE. Для запроса SELECT количество строк не определено.
Команда объекта следующий список устанавливает переменную, заданную именем переменной в области видимости вызывающей функции, на следующую строку результатов, представленную в виде списка значений столбцов. Значения NULL заменяются пустой строкой. Столбцы строки результатов отображаются в том же порядке, в котором они отображались в запросе SELECT. Возвращаемое значение следующего списка равно 1, если операция выполнена успешно, и 0, если достигнут конец набора результатов.
Команда объекта следующий словарь устанавливает переменную, заданную именем переменной в области видимости вызывающей функции, на следующую строку результатов, представленную в виде словаря. Ключами словаря являются имена столбцов, а значениями — значения этих столбцов в строке. Если значение столбца в строке равно NULL, его ключ опускается из словаря. Ключи отображаются в словаре в том же порядке, в котором столбцы отображались в запросе SELECT. Возвращаемое значение следующего словаря равно 1, если операция выполнена успешно, и 0, если достигнут конец набора результатов.
Команда объекта следующая строка точно эквивалентна команде объекта следующий словарь или следующий список в зависимости от того, указано ли -как словари (по умолчанию) или -как списки.
Некоторые базы данных поддерживают идею одного оператора, возвращающего несколько наборов результатов. Команда объекта следующие результаты выполняется, как правило, после того, как команда объекта следующий список или следующий словарь вернула 0, для перехода к следующему набору результатов. Она возвращает 1, если существует другой набор результатов для обработки, и 0, если обработанный набор результатов был последним. После вызова следующие результаты и получения значения возврата 1, вызывающая сторона может снова вызвать колонки, чтобы получить описание столбцов следующего набора результатов, а затем вернуться к вызову следующий словарь или следующий список, чтобы обработать строки следующего набора результатов. Ошибка вызывается, если после возврата следующие результаты значение 0 вызывается колонки, следующий словарь, следующий список или следующая строка.
Команда объекта все строки устанавливает переменную, обозначенную опцией -переменная колонок (если она присутствует), на результат команды объекта колонки. Затем она многократно выполняет команду объекта следующая строка до тех пор, пока не будет достигнут конец набора результатов. Если следующие результаты возвращает ненулевое значение, она выполняет две указанные выше операции (колонки, за которой следуют повторяющиеся вызовы следующая строка) до тех пор, пока доступны дополнительные результаты. Строки, возвращённые следующей строкой, собираются в список Tcl и становятся значением возврата команды все строки; последнее возвращаемое значение колонок отображается в приложении в -переменная колонок.
Команда объекта foreach устанавливает переменную, обозначенную опцией -переменная колонок (если она присутствует), на результат команды объекта колонки. Затем она многократно выполняет команду объекта следующая строка до тех пор, пока не будет достигнут конец набора результатов, сохраняя последовательные строки в переменной, обозначенной имя переменной. Для каждой строки она выполняет заданный скрипт. Если скрипт завершается с ошибкой, ошибка сообщается командой foreach, и итерация останавливается. Если скрипт выполняет операцию break, итерация завершается преждевременно. Если скрипт выполняет операцию continue, итерация возобновляется со следующей строки. Если скрипт выполняет return, результаты совпадают с результатами, если бы скрипт вне управления foreach вернул значение. Любой другой необычный код возврата завершает итерацию и сообщается командой foreach.
После того, как следующая строка вернёт 0, команда объекта foreach пытается перейти к следующему набору результатов с помощью следующие результаты. Если следующие результаты вернёт 1, указанные выше операции (колонки и следующая строка с вызовом скрипта) повторяются, пока остаются наборы результатов. Скрипт всегда будет видеть правильное описание столбцов текущего набора результатов в переменной, обозначенной -переменная колонок. В конце вызова переменная, обозначенная -переменная колонок, будет содержать описание столбцов последнего набора результатов.
Команда объекта закрыть удаляет набор результатов и освобождает все связанные системные ресурсы.