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

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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. * Opens a database connection
  20. *
  21. * @param $database Name of the database (an INI file).
  22. * @return A PDO object if the $database exist,
  23. * otherwise, throws an exception
  24. * @exception Exception
  25. * if the $database is not found
  26. * @author Pablo Dall'Oglio
  27. */
  28. public static function open($database)
  29. {
  30. // check if the database configuration file exists
  31. if (file_exists("app/config/{$database}.ini"))
  32. {
  33. // read the INI and retuns an array
  34. $db = parse_ini_file("app/config/{$database}.ini");
  35. }
  36. else
  37. {
  38. // if the database doesn't exists, throws an exception
  39. throw new Exception(TAdiantiCoreTranslator::translate('File not found') . ': ' ."'{$database}.ini'");
  40. }
  41. // read the database properties
  42. $user = isset($db['user']) ? $db['user'] : NULL;
  43. $pass = isset($db['pass']) ? $db['pass'] : NULL;
  44. $name = isset($db['name']) ? $db['name'] : NULL;
  45. $host = isset($db['host']) ? $db['host'] : NULL;
  46. $type = isset($db['type']) ? $db['type'] : NULL;
  47. $port = isset($db['port']) ? $db['port'] : NULL;
  48. // each database driver has a different instantiation process
  49. switch ($type)
  50. {
  51. case 'pgsql':
  52. $port = $port ? $port : '5432';
  53. $conn = new PDO("pgsql:dbname={$name};user={$user}; password={$pass};host=$host;port={$port}");
  54. break;
  55. case 'mysql':
  56. $port = $port ? $port : '3306';
  57. $conn = new PDO("mysql:host={$host};port={$port};dbname={$name}", $user, $pass);
  58. break;
  59. case 'sqlite':
  60. $conn = new PDO("sqlite:{$name}");
  61. break;
  62. case 'ibase':
  63. $name = isset($host) ? "{$host}:{$name}" : $name;
  64. $conn = new PDO("firebird:dbname={$name}", $user, $pass);
  65. break;
  66. case 'oci8':
  67. $conn = new PDO("oci:dbname={$name}", $user, $pass);
  68. break;
  69. case 'mssql':
  70. $conn = new PDO("mssql:host={$host},1433;dbname={$name}", $user, $pass);
  71. break;
  72. case 'dblib':
  73. $conn = new PDO("dblib:host={$host},1433;dbname={$name}", $user, $pass);
  74. break;
  75. }
  76. // define wich way will be used to report errors (EXCEPTION)
  77. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  78. // return the PDO object
  79. return $conn;
  80. }
  81. }
  82. ?>


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.