odbc_close_all()
Функция odbc_close_all (листинг 17.24) закрывает все соединения, которые были открыты для источников данных ODBC. Как и функция odbc_close, эта функция возвращает ошибку, если в момент закрытия по одному из соединений осуществляется транзакция.

| Листинг 17.24. Функция odbc_close_all_
<?php
//подключиться к базе данных три раза
$Connection1 = odbc_connect("inventory", "guest", "guest"); $Connection2 = odbc_connect("inventory", "guest", "guest"); $Connection3 = odbc_connect("inventory", "guest", "guest"); // закрыть все подключения odbc_close_all();
?>

resource odbc_columnprivileges(resource connection, string catalog, string schema, string table, string column)
Функция odbc_columnprivileges (листинг 17.25) возвращает информацию о столбцах таблицы и привилегиях. Возвратить значение можно с помощью одной из функций из числа функций выборки строк. Для осуществления вызова через C API с помощью функции SQLColumnPrivileges драйверы ODBC не требуются. Поэтому вызов этой функции с неподдерживаемым драйвером возвратит ошибку или не возвратит никаких результатов.
Аргументы catalog и schema в зависимости от драйвера имеют различное значение. Аргумент column может содержать групповые символы % и _. Для получения всего списка используйте только групповой символ %. Другие аргументы не могут содержать групповых символов.
Возвращаемый результирующий набор содержит следующие столбцы: TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, GRANTOR, GRANTEE, PRIVILEGE и IS_GRANTABLE.

Листинг 17.25. Функция odbc_columnprivileges

<?php
// подключиться к базе данных
$Link = odbc_connect("SQLServer-Local", "dbo", "secret"); $Result = odbc_columnprivileges($Link, "Store", "dbo",
"Items","%"); // распечатать результаты odbc_result_all($Result); // закрыть соединение odbc_close($Link);

resource odbc_columns(resource connection, string catalog, string schema, string table, string column)
Функция odbc_columns (листинг 17.26) возвращает результирующий набор с описанием столбцов таблицы. Возвращаемое этой функцией значение можно использовать с любой функцией выборки строк.
Аргументы catalog и schema в зависимости от драйвера имеют различное значение. Аргумент столбца может содержать групповые символы % и _. Для получения всего списка используйте только групповой символ %. Другие аргументы не могут содержать групповых символов.
Возвращаемый результирующий набор содержит следующие столбцы: TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, DATA_TYPE, TYPE_NAME, COLUMN_SIZE, BUFFER_LENGTH, DECIMAL_DIGITS, NUM_PREC_RADIX, NULLABLE, REMARKS,
COLUMN_DEF, SQL_DATA_TYPE, SQL_DATTIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION, IS_NULLABLE.

Листинг 17.26. Функции ODBC, возвращающие метаданные

<?php /*
** Этот сценарий проверяет функции, возвращающие метаданные. ** Обратите внимание на использование троичного оператора. */
$catalog = "ft3"; $schema = "";
// подключиться к базе данных
$Link = odbc_connect("mysql-galt", "leon", ""); print("<h1>odbc_columns</h1>");
$Result = @odbc_columns($Link, "", "", "item");
$Result ? odbc_result_all($Result) : print(,Не поддерживается'); print("<h1>odbc_foreignkeys</h1>");
$Result = @odbc_foreignkeys($Link, $catalog, $schema, "user"); $Result ? odbc_result_all($Result) : print(,Не поддерживается'); print("<h1>odbc_gettypeinfo</h1>"); $Result = @odbc_gettypeinfo($Link);
$Result ? odbc_result_all($Result) : printp^ поддерживается'); print("<h1>odbc_primarykeys</h1>");
$Result = @odbc_primarykeys(Link, $catalog, $schema, "user"); $Result ? odbc_result_all($Result) : print('Не поддерживается'); print("<h1>odbc_procedurecolumns</h1>"); $Result = @odbc_procedurecolumns($Link);
$Result ? odbc_result_all($Result) : print('Не поддерживается');
print("<h1>odbc_procedures</h1>");
$Result = @odbc_procedures($Link);
$Result ? odbc_result_all($Result) : printp^ поддерживается'); print("<h1>odbc_specialcolumns</h1>");
$Result = @odbc_specialcolumns($Link, $catalog, $schema,
"user", SQL_SCOPE_SESSION, SQL_NULLABLE); $Result ? odbc_result_all($Result) : print('Не поддерживается'); print("<h1>odbc_statistics</h1>");
$Result = @odbc_statistics($Link, $catalog, $schema,
"user", SQL_INDEX_ALL, SQL_QUICK); $Result ? odbc_result_all($Result) : print('Не поддерживается'); 
print("<h1>odbc_tableprivileges</h1>");
$Result = @odbc_tableprivileges($Link, $catalog, $schema,
"%");
$Result ? odbc_result_all($Result) : print(,Не поддерживается'); print("<h1>odbc_tables</h1>");
$Result = @odbc_tables($Link, $catalog, $schema, "%");
$Result ? odbc_result_all($Result) : print(,Не поддерживается');
// закрыть соединение
odbc_close($Link);
?>

boolean odbc_commit(resource connection)
Функция odbc_commit предназначена для завершения всех задержанных операций для заданного соединения. Если автоматическое завершение включено, что, собственно, задано по умолчанию, эта функция не имеет никакого действия. При этом перед работой с этой функцией необходимо проверить, поддерживает ли драйвер транзакции.
resource odbc_connect(string dsn, string user, string password, integer cursor_type)
Функция odbc_connect предназначена для подключения к источнику данных ODBC. Функция возвращает идентификатор соединения, который используется большинством других функций этого раздела. Аргументы user и password являются обязательными, поэтому, если драйверу они не нужны, их нужно оставить пустыми. Необязательный аргумент cursor_type активизирует использование конкретного курсора, что позволяет избежать проблем с определенными драйверами ODBC. Например, использование константы SQL_CUR_USE_ODBC для указания типа курсора может позволить избежать проблем с вызовом хранимых процедур или получением номеров строк. В качестве значения аргумента cursor_type можно использовать один из следующих типов: SQL_CUR_DEFAULT, SQL_CUR_USE_DRIVER, SQL_CUR_USE_IF_NEEDED или SQL_CUR_USE_ODBC.
string odbc_cursor(resource result)
Функция odbc_cursor предназначена для выборки имени результирующего набора.