Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Adianti Framework vs SQL Server (Definitivo) Após algum tempo pesquisando consegui superar algumas dificuldades que tive em relação a comunicação com SQL Server no Adianti Framework, gostaria de compartilhar com todos e poder auxiliar aqueles que se depararem com as mesmas dificuldades. Caso: Tenho um sistema de automação industrial baseado no Elipse E3 Studio, o qual utiliza uma base de dados SQL Server 2008 Express. O Sistema El...
RK
Adianti Framework vs SQL Server (Definitivo)  
Após algum tempo pesquisando consegui superar algumas dificuldades que tive em relação a comunicação com SQL Server no Adianti Framework, gostaria de compartilhar com todos e poder auxiliar aqueles que se depararem com as mesmas dificuldades.

Caso: Tenho um sistema de automação industrial baseado no Elipse E3 Studio, o qual utiliza uma base de dados SQL Server 2008 Express.
O Sistema Elipse E3 não facilita o desenvolvimento de aplicações com formulários para interação com o banco, portando resolvi criar uma aplicação baseada no Adianti Template 4.0 e integrar ao sistema de automação como um módulo adicional.

Para isso montei uma máquina virtual com Windows 7 Professional (x86) e instalei o WampServer 3.0.4 que trás o Apache 2.4.18 e PHP 7.0.4.

Dificuldade 01) Comunicação entre o framework e o SQL Server no WebServe em ambiente Windows:

No sistema operacional Windows o framework utiliza a biblioteca "sqlsrv" a qual não é instalada como default pelo PHP-7. Tive então que instalar o "Sql Server Native Client" no link: msdn.microsoft.com/en-us/sqlserver/ff658532.aspx
Após isso baixei as extensões do PHP para o SQL Server no link: www.microsoft.com/en-us/download/details.aspx?id=20098 (arquivo SQLSRV30.EXE).
Descompactei o pacote e copiei as extensões "php_pdo_sqlsrv_53_ts_vc9.dll" e "php_sqlsrv_53_ts_vc9.dll" para a pasta "ext" do php, após isso registrei elas no "php.ini".

Isso garantiu a comunicação entre o framework e o banco SQL.

Dificuldade 02) Comunicação entre o framework e o SQL Server no WebServe em ambiente Linux:

Posteriormente tive de migrar a aplicação desenvolvida com o Template 4.0 para um WebServer hospedado em servidor Linux Ubuntu 16.04 (configurado conforme gabarito: www.adianti.com.br/forum/pt/view_3030?preparando-um-cloud-server-gab ), nesse ambiente o framework utiliza a biblioteca "dblib" (biblioteca do Sybase Sql Server). Com isso tive de instalar as extensões "Freetds Sybase".
Após a instalação a aplicação comunicou normalmente com o banco SQL Server, porém com problemas de "Charset".

Dificuldade 03) Problemas de Charset ao conectar no banco SQL Server utilizando a biblioteca "dblib":

Para resolver o problema eu editei o arquivo "lib/adianti/database/TConnection.php", mais precisamente na linha "125", da seguinte forma:

* Script antes da alteração:

 
  1. <?php
  2. {
  3. $port = $port ? $port : '1433';
  4. $conn = new PDO("dblib:host={$host}:{$port};dbname={$name}", $user, $pass);
  5. }
  6. ?>


* Script depois da alteração:

 
  1. <?php
  2. {
  3. $port = $port ? $port : '1433';
  4. $conn = new PDO("dblib:version=7.0;charset=UTF-8;host={$host}:{$port};dbname={$name}", $user, $pass);
  5. }
  6. ?>


Conclusão: adicionando "version=7.0;charset=UTF-8;" na string de conexão resolveu o problema de Charset.

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 (4)


MC

Ótimas dicas. Estou para adquirir framework e minha intenção é justamente se conectar com uma base SQL Server 2008, onde atualmente roda o ERP da empresa.
Espero não ter problemas com o SQL Server, além dos que já foram relatados aqui.
PM

Boa tarde amigo, como vc faz o controle de acesso as pastas, pois caso alguem acesse localhost/app ira listar todo conteudo e isso eu queria restringir como no linux q fazemos pelo .htaccess! Abraço!
ML

Boa tarde Regis, tudo bem ?

Você pode me dar uma dica ou o tutorial de instalação das extensões "Freetds Sybase" que você mencionou ?

Desde já agradeço.

Att,

Marcelo Lopes
RK

Olá Marcelo Lopes<>,

Não lembro exatamente qual foi o procedimento que adotei para instalação dessa biblioteca na época do tutorial, lembro que pesquisei várias referências até que finalmente obtive êxito.

Pesquise sobre como instalar as bibliotecas
freetds-common
e
php-sybase
ou tente:

sudo apt-get install freetds-common freetds-bin unixodbc php-sybase