Lançado Adianti Framework 7.6!
Clique aqui para saber mais
acessar interbase Caros Colegas, como faço para acessar pelo framework usando o bd interbase, ou será somente na versão 2 sds, helder...
HL
acessar interbase  
Fechado
Caros Colegas, como faço para acessar pelo framework usando o bd interbase, ou será somente na versão 2

sds,
helder

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


AN

A classe
TConnection.class.php
esta preparada para interbase/firebird.
Estou usando neste exato momento em um projeto de integração entre duas aplicações distintas. De um lado eu tenho MySQL do outro tenho FIREBIRD.
Testei apenas usando firebird, creio que vai funcionar com o interbase também.
Obs.: Tive que mudar um pouco a TConnection para conseguir conexão com o banco, mas foi algo leve. Segue abaixo o que mudei:

Original:
.... case 'ibase': $name = isset($host) ? "{$host}:{$name}" : $name; $conn = new PDO("firebird:dbname={$name}", $user, $pass); break; .....


Modificação
... case 'ibase': $conn = new PDO("firebird:dbname={$host}:{$name}", $user, $pass); break; TConnection.class.php
  1. <?php
  2. /**
  3.  * Singleton manager for database connections
  4.  *
  5.  * @version    1.0
  6.  * @package    database
  7.  * @author     Pablo Dall'Oglio
  8.  * @copyright  Copyright (c) 2006-2012 Adianti Solutions Ltd. (http://www.adianti.com.br)
  9.  * @license    http://www.adianti.com.br/framework-license
  10.  */
  11. final class TConnection
  12. {
  13.     /**
  14.      * Class Constructor
  15.      * There'll be no instances of this class
  16.      */
  17.     private function __construct() {}
  18.     
  19.     /**
  20.      * Opens a database connection
  21.      * 
  22.      * @param $database Name of the database (an INI file).
  23.      * @return          A PDO object if the $database exist,
  24.      *                  otherwise, throws an exception
  25.      * @exception       Exception
  26.      *                  if the $database is not found
  27.      * @author          Pablo Dall'Oglio
  28.      */
  29.     public static function open($database)
  30.     {
  31.         // check if the database configuration file exists
  32.         if (file_exists("app/config/{$database}.ini"))
  33.         {
  34.             // read the INI and retuns an array
  35.             $db parse_ini_file("app/config/{$database}.ini");
  36.         }
  37.         else
  38.         {
  39.             // if the database doesn't exists, throws an exception
  40.             throw new Exception(TAdiantiCoreTranslator::translate('File not found') . ': ' ."'{$database}.ini'");
  41.         }
  42.         
  43.         // read the database properties
  44.         $user  = isset($db['user']) ? $db['user'] : NULL;
  45.         $pass  = isset($db['pass']) ? $db['pass'] : NULL;
  46.         $name  = isset($db['name']) ? $db['name'] : NULL;
  47.         $host  = isset($db['host']) ? $db['host'] : NULL;
  48.         $type  = isset($db['type']) ? $db['type'] : NULL;
  49.         $port  = isset($db['port']) ? $db['port'] : NULL;
  50.         
  51.         // each database driver has a different instantiation process
  52.         switch ($type)
  53.         {
  54.             case 'pgsql':
  55.                 $port $port $port '5432';
  56.                 $conn = new PDO("pgsql:dbname={$name};user={$user}; password={$pass};host=$host;port={$port}");
  57.                 break;
  58.             case 'mysql':
  59.                 $port $port $port '3306';
  60.                 $conn = new PDO("mysql:host={$host};port={$port};dbname={$name}"$user$pass);
  61.                 break;
  62.             case 'sqlite':
  63.                 $conn = new PDO("sqlite:{$name}");
  64.                 break;
  65.             case 'ibase':
  66.                 $name = isset($host) ? "{$host}:{$name}$name;
  67.                 $conn = new PDO("firebird:dbname={$name}"$user$pass);
  68.                 break;
  69.             case 'oci8':
  70.                 $conn = new PDO("oci:dbname={$name}"$user$pass);
  71.                 break;
  72.             case 'mssql':
  73.                 $conn = new PDO("mssql:host={$host},1433;dbname={$name}"$user$pass);
  74.                 break;
  75.             case 'dblib':
  76.                 $conn = new PDO("dblib:host={$host},1433;dbname={$name}"$user$pass);
  77.                 break;
  78.         }
  79.         
  80.         // define wich way will be used to report errors (EXCEPTION)
  81.         $conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
  82.         
  83.         // return the PDO object
  84.         return $conn;
  85.     }
  86. }
  87. ?>


Tenta ai Helder, posta os resultados pra gente :D

Abraços
AN

Correção.
Fiz essa mudança quando estava trabalhando com as classes do livro PHP POO do pablo, ainda não testei no framework. Mas deve funcionar sem precisar mudar nada em TConnection.class.php
Abraços.
ES

Olá pessoal!
Eu acabei de fazer uma aplicação para impressão de etiquetas de código de barras em impressora zebra tlp 2844 usando base de dados firebird.

Funcionou sem qualquer alteração na classe de conexão, o mais difícil foi fazer a dll pdo_firebird funcionar.

Eu aconselho que primeiro verifique se a extensão pdo_firebird está funcionando depois faça os testes de conexão, lembrando que a string name do arquivo .ini deve ficar assim: "name = hostname:<Unidade>:<Endereço>Banco.fdb"


Att.
Eliezer</Unidade>
AN

Rode este script para verificar quais pdo estão compiladas em seu PHP.
  1. <?php
  2.  foreach(PDO::getAvailableDrivers() as $driver
  3. {
  4.   echo $driver.'\n<br />';
  5. }
  6. ?>


J

Iai galera, estou precisando de ajuda para conectar com o firebird também, como configurar o arquivo config.ini

Alguém que tenha conseguidor fazer funcionar, poderia mandar um exemplo de todos os campos preenchidos do config.ini, não tenho experiencia alguma com firebird, estou começando agora.