odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoptionModifica los parámetros ODBC

Descripción

odbc_setoption(
    Odbc\Connection|Odbc\Result $odbc,
    int $which,
    int $option,
    int $value
): bool

odbc_setoption() permite acceder a las opciones ODBC para una conexión particular o un resultado de consulta. Fue escrita para ayudar a la resolución de problemas relacionados con los controladores ODBC problemáticos. Será necesario utilizar odbc_setoption() si se es un programador ODBC y se comprenden los diversos efectos de las opciones disponibles. Asimismo, se necesitará un buen manual de referencia para comprender las opciones y su uso. Diferentes versiones de controladores admiten diferentes versiones de opciones.

Dado que los efectos pueden variar de un controlador a otro, el uso de odbc_setoption() en scripts destinados a ser entregados al público está muy fuertemente desaconsejado. Además, ciertas opciones ODBC no están disponibles porque deben ser fijadas antes del establecimiento de la conexión. Sin embargo, si en un caso bien específico, odbc_setoption() permite utilizar PHP sin que el jefe obligue a usar un producto comercial, entonces no importa.

Parámetros

odbc

Un identificador de conexión, o un identificador de resultado, para el cual se desea modificar opciones. Para SQLSetConnectOption(), es un identificador de conexión. Para SQLSetStmtOption(), es un identificador de resultado.

which

Función ODBC a utilizar. El valor debe ser 1 para usar SQLSetConnectOption() y 2 para SQLSetStmtOption().

option

La opción a definir.

value

El valor para la opción dada.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.4.0 odbc espera ahora una instancia de Odbc\Connection o de Odbc\Result; anteriormente, se esperaba un resource.

Ejemplos

Ejemplo #1 Ejemplo con odbc_setoption()

<?php
// 1. La opción 102 de SQLSetConnectOption() es SQL_AUTOCOMMIT.
// 1 de SQL_AUTOCOMMIT es SQL_AUTOCOMMIT_ON.
// Este ejemplo tiene el mismo efecto que
// odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Opción 0 de SQLSetStmtOption() es SQL_QUERY_TIMEOUT.
// Este ejemplo fija el tiempo límite a 30 segundos.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>

add a note

User Contributed Notes 1 note

up
-1
egil at wp dot pl
16 years ago
Some options for Microsoft SQL Server ODBC:
1 - (SQL_MAX_ROWS) show top x rows
6 - (SQL_CURSOR_TYPE) zmiana kursora - ma działać dopiero w PHP 5.3

You can "translate" constant names (found on e.g. Microsoft website) to appropriate values using this page:
http://www.freepascal.org/docs-html/packages/odbcsql/index-2.html

BTW. If anyone is banging his head about "cursor type changed" warning while using execute with ORDER BY clause, then just use exec for now (remember to addslashes for yourself). In PHP 5.3 a Bug #43668 will be fixed and it will allow you to change a cursor type to SQL_CUR_USE_ODBC.

Note that you could also try to select a cursor type in odbc_connect, but that didn't work for me (much more problems appeared then it solved).
To Top