Extensão PHP MSSQL no Mac OS X (Mountain Lion)

Estamos trabalhando num projeto que utiliza Microsoft SQL Server como base de banco de dados. Quando configurei o PHP para conectar no determinado banco, o resultado era uma tela branca. Eu não estava conseguindo depurar o problema.

Fiquei um tempinho quebrando a cabeça, depois quando analisei o phpinfo() verifiquei que a extensão mssql.so não estava carregada. A solução que encontrei para utilizar essa extensão foi a seguinte:

  • Ter o XCode/GCC previamente instalado
  • Baixar, configurar, compilar e instalar o software FreeTDS (link)
  • Baixar o código fonte do PHP
  • Utilizar o comando phpize dentro da extensão do mssql (ext/mssql/)
  • Configurar, compilar e instalar o módulo
  • Carregar o mssql.so no /etc/php.ini
  • No meu caso eu instalei o freetds no diretório: /usr/local/freetds/
    • A configuração fica no seguinte diretório: /usr/local/freetds/conf/freetds/freetds.conf
    • Editei o arquivo de configuração e coloquei os seguintes dados: host, porta e versão tds.
  • Depois voltei a testar novamente a extensão e funcionou perfeitamente.

FreeTDS é um conjunto de bibliotecas para Unix e Linux que permite que seus programas conversem nativamente com Microsoft SQL Server e Sybase.

Tecnicamente falando, FreeTDS é uma implementação open source do TDS (Tabular Data Stream) protocolo usado por esses bancos de dados para seus próprios clientes. Ele suporta diversas linguagens incluindo Perl e PHP.

É uma ótima alternativa para usuários de Mac OS X. 😉

 

Como restaurar arquivos ABF do Analysis Services via Prompt de Comando

Se você não gosta muito de ficar clicando em vários dialogs (como eu), acho que será útil essas informações.

Abra o command ou Windows PowerShell e digite os seguintes comandos:

  1. [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.AnalysisServices”) >$NULL
  2. [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.AnalysisServices.Security”) >$NULL
  3. $server = New-Object Microsoft.AnalysisServices.Server
  4. $location= New-Object Microsoft.AnalysisServices.RestoreLocation
  5. $security= New-Object Microsoft.AnalysisServices.RestoreSecurity
  6. $server.connect(“<HOSTNAME>”)
  7. $server.restore
  8. $security= New-Object Microsoft.AnalysisServices.RestoreSecurity
  9. $security.value__ = 1
  10. $server.restore(“c:\<ABF LOCATION>”,”<TARGET NAME>”, $true,$NULL,$Security,”<PASSWORD>”)

Espero que tenha ajudado!

🙂