PHP Australia Conference 2015

odbc_setoption

(PHP 4, PHP 5)

odbc_setoptionAjusta definições ODBC

Descrição

bool odbc_setoption ( resource $id , int $function , int $option , int $param )

Esta opção permite mudar opções ODBC para um conexão em particular ou o resultado de uma consulta. Foi escrita para ajudar a encontrar meios para contornar problemas com drivers ODBC caprichosos. Você provavelmente somente usar esta função se você é um programador ODBC e intender os efeitos que as várias opções terão. Você certamente vai precisar de uma boa referencia ODBC que explique todas as opções diferentes e valores que podem ser usados. Versões diferentes dos drivers suportam opções diferentes.

Devido aos efeitos variarem dependendo do driver ODBC, o uso desta função em scripts que serão tornados publicos é fortemente desencourajado. Também, algumas opções ODBC não estão disponíveis para esta função porque devem ser definidas antes de a conexão ser estabelecida ou a consulta ser preparada. Em todo o caso, se em um trabalho particular isso pode fazer o PHP funcionar e seu superior não dizer para você usar um produto comercial, isto é tudo o que importa realmente.

Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

id é um id de conexão o o id de um resultado de uma consulta no qual será mudada as definições. Para SQLSetConnectOption(), este é um id de conexão. Para SQLSetStmtOption(), este é um id de um resultado de uma consulta.

Function é a função ODBC a ser usada. O valor deve ser 1 para SQLSetConnectOption() e 2 para SQLSetStmtOption().

O parâmetro option é a opção a ser definida.

O parâmetro param é o valor para a option indicada.

Exemplo #1 Exemplos ODBC Setoption

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    This example has the same effect as
//    odbc_autocommit($conn, true);

odbc_setoption ($conn11021);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    This example sets the query to timeout after 30 seconds.

$result odbc_prepare ($conn$sql);
odbc_setoption ($result2030);
odbc_execute ($result);
?>

add a note add a note

User Contributed Notes 1 note

up
-1
egil at wp dot pl
5 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