Windows 64 Caveats with ODBC
I'm pretty sure PHP only accesses the 32-bit ODBC stuff on Windows 64. Therefore, you will need to configure your ODBC DSNs via the Data Source Administrator found at:
/WINDOWS/SysWOW64/odbcad32.exe
ODBC Unificado
Índice
- odbc_autocommit — Modifica o funcionamento do autocommit
- odbc_binmode — Manipulação de uma coluna com dados binários
- odbc_close_all — Fecha todas as conexões ODBC
- odbc_close — Fecha uma conexão ODBC
- odbc_columnprivileges — Retorna um identificador de resultado que pode ser usado para obter uma lista das colunas e seus privilégios associados
- odbc_columns — Lista os nomes das colunas na tabela especificada
- odbc_commit — Grava uma transação ODBC
- odbc_connect — Conecta com uma fonte de dados
- odbc_cursor — Obtém o nome do cursor
- odbc_data_source — Retorna informação sobre a conexão atual
- odbc_do — Sinônimo de odbc_exec
- odbc_error — Obtém o último código de erro
- odbc_errormsg — Obtém a última mensagem de erro
- odbc_exec — Prepara e executa um comando SQL
- odbc_execute — Executa um comando preparado
- odbc_fetch_array — Obtém uma linha do resultado como uma array associativa
- odbc_fetch_into — Obtém uma linha do conjunto de resultados como uma matriz
- odbc_fetch_object — Obtém um conjunto de resultados como um objeto
- odbc_fetch_row — Obtém uma linha
- odbc_field_len — Obtém o tamanho (precisão) de um campo
- odbc_field_name — Obtém o nome da coluna
- odbc_field_num — Retorna o número da coluna
- odbc_field_precision — Sinônimo de odbc_field_len
- odbc_field_scale — Obtém a precisão de um campo
- odbc_field_type — Tipo de dados de um campo
- odbc_foreignkeys — Retorna uma lista de chaves estrangeiras na tabela especificada ou uma lista de chaves estrangeiras em outras tabelas que se referem a chave primária na tabela especificada
- odbc_free_result — Libera os recursos associados a um resultado
- odbc_gettypeinfo — Retorna um identificador de resultados contendo informações sobre os tipos de dados suportados pela fonte de dados
- odbc_longreadlen — Manipulação de colunas LONG
- odbc_next_result — Confere se resultados múltiplos estão disponíveis
- odbc_num_fields — Número de colunas em um resultado
- odbc_num_rows — Número de linhas em um resultado
- odbc_pconnect — Abre uma conexão persistente com o servidor de banco de dados
- odbc_prepare — Prepara um comando para execução
- odbc_primarykeys — Obtém a chave primária de uma tabela
- odbc_procedurecolumns — Obtém informações sobre parâmetros para procedures
- odbc_procedures — Obtém a lista de procedures guadadas na fonte de dados especificada.
- odbc_result_all — Mostra o resultado como uma tabela HTML
- odbc_result — Obtém dados do resultado
- odbc_rollback — Desfaz uma transação
- odbc_setoption — Ajusta definições ODBC
- odbc_specialcolumns — Retorna um conjunto de colunas que identificam de modo único uma linha na tabela ou as colunas que são automaticamente atualizadas quando qualquer valor na linha é atualizado por uma transação.
- odbc_statistics — Obtém estatisticas sobre uma tabela
- odbc_tableprivileges — Lista tabelas e os privilégios associados a cada tabela
- odbc_tables — Obtém uma lista dos nomes das tabelas guardadas em uma fonte de dados especificado
chaz_meister_rock at yahoo dot com ¶
5 years ago
Anonymous ¶
6 years ago
I had big performance problems retrieving data form MS SQL Server with odbc only when the query was unsing a join.
I found out, that I had to connect with the cursor-type "SQL_CUR_USE_ODBC" and everything was ok:
$conn = odbc_connect("ShopLive", 'shop', 'xxx', SQL_CUR_USE_ODBC);
sven at ajaxtechforums dot com ¶
7 years ago
I found this to be a perfect alternative to the MaxDB special drivers of version 7.5.00. Just weren't that easy to install on *nix. Windows seems fine. Anyway The ODBC is a perfect alternative for connecting the SAPDB/MaxDB towards PHP.
Installation guide for the odbc alternative (instead of the MAXDB-php driver) can be found here:
http://maxdb.yapabout.com/viewtopic.php?t=21
xangelusx at hotmail dot com ¶
7 years ago
If you receive an error stating "Connection is busy with results for another hstmt, SQL state S1000 in SQLExecDirect" try opening your odbc connection using the SQL_CURSOR_FORWARD_ONLY option
<?php
$db_link = odbc_connect($dsn, $username, $password, SQL_CURSOR_FORWARD_ONLY)
or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
?>
Anonymous ¶
8 years ago
I searched for the solution of why odbc connection of a network remote drive under Windows + Apache 2.0.X, cannot give the query, but seems no one provides the solution.
In fact, it is very simple.
Go to Control Panal -> Services;
Find and double click "Apache2";
In the page of "Log On", choose Log on as "This account" and give an account in the web server system which have the right to control the network remote drive;
Finally, restart Apache, and that's it.
denials at gmail dot com ¶
8 years ago
Ever wonder why you're experiencing really slow data retrieval times using IBM DB2 Universal Database for Linux, UNIX, and Windows? The default cursor type used by Unified ODBC is not supported by DB2, so it gets downgraded to a forward-only cursor -- and that negotiation occurs with every row fetch.
One way to force your PHP applications to use forward-only cursors is to modify your DB2 client configuration with a handy CLI patch2 setting value of 6:
$ db2 UPDATE CLI CONFIGURATION FOR SECTION dbname USING patch2 6
You have to update this client setting on the same machine on which you are running the PHP application. This works on Windows operating systems as well as on Linux & UNIX operating systems.
I ran a few basic benchmarks (fetch 10,000 rows consisting of 3 INTEGER columns from a remote database server) and concluded that this setting can make a major difference to your application speed:
Without CLI patch2 setting: ~22 seconds
With CLI patch2 setting: ~ 1.75 seconds
Note that the drawback of using this patch setting (or any other method of using forward-only cursors) makes odbc_num_rows() always return "-1" for the number of rows affected by a SELECT statement.
pascals at NOSPAM dot pobox dot com ¶
9 years ago
If the bundled ODBC library stumbles on some field formats (like some REAL from Pervasive.SQL), have a look at http://odbtp.sourceforge.net/.
After many headaches, I have adoped odbtp: it's a very solid library and best of all it's not tied to a particular OS.
vbwebprofi at gmx dot de ¶
9 years ago
On my search for a function to retriew the NewID of an inserted row wich has an autoincrement I found this solution like the mysql_insert_id for an ODBC connection to MS-Access :
<?
// make your connection below
$Connection = odbc_connect(...);
$Result = odbc_exec($Connection, "select @@identity");
$NewID = odbc_result($Result, 1);
odbc_free_result($Result);
// make here all what you want with the NewID
odbc_close($Connection);
?>
In my mind this should also work with MS-SQL-Server and with Sybase - via ODBC and direct (mssql_.../sybase_...).
HTH ...
Regards
Holger
