Cakephp2.1.1 com SQL Server 2008

561 views
Skip to first unread message

Felipe Roman

unread,
Apr 12, 2012, 12:23:41 PM4/12/12
to cakep...@googlegroups.com
Pessoal,

Alguem já conectou o CakePHP 2.1.1 com o SQL Server 2008 ? Se sim
teria alguma referencia de como fazer ?

Estou com o ambiente configurado corretamente, consigo conectar via
PHP (sem usar o framework) com o SQL Server 2008 e efetuar consultas
mas ainda não consegui fazer o CakePHP funcionar com o SQL Server
2008.

Estou com as duas extensões do sqlsrv carregadas:

pdo_sqlsrv e sqlsrv

ps. Instalei o PHP 32 bits pois não consegui carregar os módulos acima
corretamente na versão 64.

Servidor web Apache 2.2.21 no Windows 7 (ambiente de desenvolvimento)

Obrigado

--
Best Regards,
Felipe Roman
Phone 55 51 8454 8110
LinkedIn http://au.linkedin.com/in/feliperoman

Felipe Roman

unread,
Apr 12, 2012, 2:09:21 PM4/12/12
to cakep...@googlegroups.com
Resolvido :) Postei na lista do cake internacional e recebi esta resposta

"1. file dbo_sqlsrv.php is for CakePHP 1.x, for 2.x you need this one
https://github.com/cakephp/datasources/blob/2.0/Model/Datasource/Database/Sqlsrv.php

2. You shouldn't need to use custom DboSource.php imho."

Substituí o dbo_sqlsrv.php por Sqlsrv.php no diretório
app/models/datasources e também mudei o arquivo de configuração
database.php

de

public $default = array(
'datasource' => 'dbo_sqlserver',

para

public $default = array(
'datasource' => 'Database/Sqlserver',

E agora consigo conectar normalmente

Att,

2012/4/12 Felipe Roman <roman....@gmail.com>:

Hermiro Carvalho - Gmail

unread,
Apr 12, 2012, 12:55:48 PM4/12/12
to cakep...@googlegroups.com
Ol�, Felipe...

Uma vez eu consegui conectar o Cake com o SQL Server... l� no arquivo de
configura��o de dados eu indiquei o banco e tive que colocar um
instru��o "port" => null... mais ou menos assim

$default = array(
'driver' => 'mssql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database'$=> '',
'prefix' => '',
'port' => null
);

Em 12/04/2012 13:23, Felipe Roman escreveu:
> Pessoal,
>
> Alguem j� conectou o CakePHP 2.1.1 com o SQL Server 2008 ? Se sim


> teria alguma referencia de como fazer ?
>
> Estou com o ambiente configurado corretamente, consigo conectar via
> PHP (sem usar o framework) com o SQL Server 2008 e efetuar consultas

> mas ainda n�o consegui fazer o CakePHP funcionar com o SQL Server
> 2008.
>
> Estou com as duas extens�es do sqlsrv carregadas:
>
> pdo_sqlsrv e sqlsrv
>
> ps. Instalei o PHP 32 bits pois n�o consegui carregar os m�dulos acima
> corretamente na vers�o 64.

Leo Bueno

unread,
May 23, 2012, 4:33:24 PM5/23/12
to cakep...@googlegroups.com
Fala galera...

Estou com o mesmo problema.

Meu database.php esta assim.
class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Sqlserver',
'persistent' => false,
'host' => 'svrsql02',
'port' => null,
'login' => 'vetorh',
'password' => 'vetorh',
'database' => 'senior',
'prefix' => '',
//'encoding' => 'utf8',
);
}

Apresenta este erro:
Error: Sqlserver requires a database connection 

Testando somente a conexão com o server MSSQL apresenta o erro:
Cake is NOT able to connect to the database.

Database connection "Sqlserver" is missing, or could not be created. 

Se alguem puder ajudar fico grato.

Leonardo Bueno

Marcelo F Andrade

unread,
May 24, 2012, 1:29:26 AM5/24/12
to cakep...@googlegroups.com
On Wed, May 23, 2012 at 5:33 PM, Leo Bueno <leob...@buenoinfo.net> wrote:
>
> Estou com o mesmo problema.
>
> Meu database.php esta assim.
> class DATABASE_CONFIG {
>
> public $default = array(
> 'datasource' => 'Database/Sqlserver',
> [corta /]
> Apresenta este erro:
> Error: Sqlserver requires a database connection
>
> Testando somente a conexão com o server MSSQL apresenta o erro:
> Cake is NOT able to connect to the database.
>
> Database connection "Sqlserver" is missing, or could not be created.

Sua instalação do PHP tem o driver para conectar ao Sql Server?

Atts.

--
MARCELO F ANDRADE
Belem, Amazonia, Brazil

"I took the red pill"

Leonardo Bueno

unread,
May 25, 2012, 7:06:12 AM5/25/12
to cakep...@googlegroups.com
Bom dia....

Estou usando o EASYPHP com o PHP na versão 5.3.9.
Realmente fui olhar na pasta das extensões e não tem nenhuma dll do mssql.
Em meu server tenho o PHP 5.2.10 lá tb não tem, mas não uso cake ainda e realizo a conexão ao banco utilizando ODBC, desta forma

$conn = odbc_connect('senior','xxxx','xxxx') or die('Conexão falhou');

Consigo fazer o mesmo com o CAKE,




2012/5/24 Marcelo F Andrade <mfan...@gmail.com>
--
CakePHP Tuga (cakephp-pt)

Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org

Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT

Leo Bueno

unread,
Jun 5, 2012, 8:00:57 AM6/5/12
to cakep...@googlegroups.com
Bom dia pessoal...

Ralei muito aqui mas consegui colocar para funcionar.
Descobri que as configurações do cake estavam corretas, então vi que o problema era com o php. Comecei a pesquisar e descobri que as dll's (Uso Windows e o EasyPHP) para conexão MSSQL não existiam na pasta das ext do php.

No site da Microsoft tem um pacote com essas dll's, no meu caso foi só baixar, descompactar elas na pasta e adicionar no php.ini.
Detalhe para funcionar alem das dll's do sqlserver e pdo_sqlserver para Ruindows, precisa instalar o native client para o MSSQL2008 R2, são os drivers ODBC, sem isso não funciona (apanhei até descobrir isso).

Vou ver se acho os links e passo por aqui...


Att

Pedro Dias

unread,
Jun 5, 2012, 9:00:06 AM6/5/12
to cakep...@googlegroups.com

Leo Bueno,

Também ralei um dia inteiro e não consegui fazer funcionar.

Cheguei até no ponto de ir no site da microsoft e baixar as dll's. Porém, o passo de instalar o "native client" não havia lido em lugar nenhum.

Se puder descrever todos os passos, os links e etc, ajudaria muito.

Valeu.


--

Leo Bueno

unread,
Jun 5, 2012, 11:01:12 AM6/5/12
to cakep...@googlegroups.com
Cara, assim..

no meu php.ini adicionei as linhas no final do arquivo.
[PHP_PDO_SQLSRV_53_NTS]
extension=php_pdo_sqlsrv_53_ts_vc9.dll
[PHP_SQLSRV_53_NTS]
extension=php_sqlsrv_53_ts_vc9.dll

em algum post pela net li que tinha que cuidar a build do php, estou usando a abaixo:
PHP Extension BuildAPI20090626, TS, VC9
 
baixei o pacote SQLSRV30.EXE, direto do link da Microsoft abaixo e extrai direto na pasta ext do php

baixei e instalei o Native Client referente ao MSSQL2008 R2 do link:

E corri para o abraço.
Detalhe com o WAMP e com XAMPP não funcionou de forma alguma (mesmo sendo a mesma build do PHP, sempre tava o erro que não encontrou as duas extensões.


Att
Leonardo Bueno


Pedro Dias

unread,
Jun 5, 2012, 11:06:30 AM6/5/12
to cakep...@googlegroups.com
Valeu!

Meu único "probleminha" é que uso o wamp... rs.

Mas mesmo assim, obrigado.

2012/6/5 Leo Bueno <leob...@buenoinfo.net>

Marcelo Almeida

unread,
Mar 27, 2013, 4:11:47 PM3/27/13
to cakep...@googlegroups.com
Pessoal,
   estou com um problema no acesso do cake 2.3.0 ao Sql Server. Quando realizo uma consulta ao SqlServer pela aplicação ela me retorna este erro:
Error: A Database connection using "Sqlserver" was missing or unable to connect.
The database server returned this error: Selected driver is not enabled

Eu testei e deu certo acessar php puro com Sql Server pelo Mssql. Achei estranho não obter o mesmo êxito com o CakePHP e SqlServer.
Entrei em algumas soluções na web e tentei baixar uma classe chamada Sqlsrv e , ja tentei baixar uma pasta que vem com varios arquivos com o nome sqlsrv e coloca-la na pasta plugins, enfim nenhuma dessas tratativas deram certo. Vocês, por obsequio, poderiam me fornecer uma luz? Talvez um passo a passo de como proceder? Pode ser que eu esteja errando em algum passo que deveria executar e não executei.
--
Marcelo Almeida
Msn: MarceloA...@hotmail.com
Cel: 88890546

Marcelo Almeida

unread,
Mar 27, 2013, 4:12:34 PM3/27/13
to cakep...@googlegroups.com
Ah desde ja, muito obrigado a todos que leram este meu relato triste.... :/

2013/3/27 Marcelo Almeida <marceloa...@gmail.com>

Marcelo Almeida

unread,
Mar 27, 2013, 5:03:02 PM3/27/13
to cakep...@googlegroups.com
Pessoal, esqueci de mencionar que estou trabalhando no ubuntu...

2013/3/27 Marcelo Almeida <marceloa...@gmail.com>

Júnior Oliveira

unread,
Oct 25, 2013, 4:02:25 PM10/25/13
to cakep...@googlegroups.com
Pessoal,

Depois de muito quebrar a cabeça, revirar tudo e não achar uma solução para acessar um SQL Server com o Datasource do Cake a partir de um Servidor Linux, desenvolvi uma 'gambiarra' que me quebrou o galho.
Não é a maneira mais correta de se trabalhar, mas foi a maneira que consegui resolver o meu problema.

Segue Model:

A configuração no database.php não precisa ser alterada.

No meu Controller executo a query assim:
    function index()
    {
        $dados = $this->Mumbai->executa("nnlRankingProdutosGeral '2013-01-01', '2013-12-31'");
        
       $this->set('dados', $dados);          

    }

E na View recebo:
foreach ($dados as $dado):
    echo $dado["prd_nome_compra"]. '<br />';
endforeach;

Caso alguém ainda precise disso... Espero que ajude.
POG Lifestyle.

Jose Schmidt

unread,
May 16, 2014, 10:24:13 AM5/16/14
to cakep...@googlegroups.com
Júnior Oliveira, tentei fazer com o código que tu postou, mas não obtive exito, está ocorrendo o seguinte erro:

A Database connection using "Sqlserver" was missing or unable to connect.
The database server returned this error: Selected driver is not enabled  

Sem usar o cake usando php "puro" consigo conectar.

Sabe o que posso fazer para conseguir a conexão?

Desde já agradeço!

brunosinister

unread,
May 16, 2014, 10:30:51 AM5/16/14
to cakep...@googlegroups.com
A biblioteca pdo_sqlsrv está instalada ????  posta no https://gist.github.com/ código que utilizou para conectar com PHP puro.

Bruno Rodrigues de Araujo.


--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.
Para publicar uma mensagem neste grupo, envie um email para cakep...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/cakephp-pt.
Para mais opções, visite https://groups.google.com/d/optout.

Fabricio Henrique Batista do Nascimento

unread,
May 16, 2014, 10:38:29 AM5/16/14
to cakep...@googlegroups.com
O problema que é que o driver pdo_sqlsrv é só para ambiente windows para ambientes linux tem que usar o driver pdo-dblib http://www.php.net/manual/en/ref.pdo-dblib.php, que tem ainda muitas deficiências, tentamos criar um database para o  driver mas desistimos, ele não aceita transação e as vezes ao acabar de inserir um registro se voce buscasse o ultimo inserido retornava null, enfim varios problemas enfrentamos e acabamos desistindo.

Jose Schmidt

unread,
May 16, 2014, 12:54:03 PM5/16/14
to cakep...@googlegroups.com
Preciso fazer a conexão com linux, com php puro meu codigo é esse:
 No cake não consegui... :(


Em quinta-feira, 12 de abril de 2012 13h23min41s UTC-3, Felipe Roman escreveu:

Júnior Oliveira

unread,
May 16, 2014, 1:14:25 PM5/16/14
to cakep...@googlegroups.com
Vou colocar meus codigos no git e já mando o link aqui

Júnior Oliveira
(48) 8404-7603


--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu um tópico no grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste tópico, visite https://groups.google.com/d/topic/cakephp-pt/qyY3tg_8IO4/unsubscribe.
Para anular a subscrição deste grupo e de todos os seus tópicos, envie um email para cakephp-pt+...@googlegroups.com.

brunosinister

unread,
May 16, 2014, 1:15:33 PM5/16/14
to cakep...@googlegroups.com
Então José tem a questão que o Fabricio falou. No caso você consegui com o PHP puro por que está utilizando as funções mssql. O  Cake utiliza PDO para efetuar as conexão a Banco.



Bruno Rodrigues de Araujo.


Em 16 de maio de 2014 13:54, Jose Schmidt <ze.sc...@gmail.com> escreveu:

--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.

Júnior Oliveira

unread,
May 16, 2014, 1:55:34 PM5/16/14
to cakep...@googlegroups.com
Segue a parte do meu projeto referente a esse caso:

Jose Schmidt

unread,
May 16, 2014, 4:50:19 PM5/16/14
to cakep...@googlegroups.com

Obrigado pelas respostas, vou tentar conectar com o exemplo que o júnior me passou. 

Em quinta-feira, 12 de abril de 2012 13h23min41s UTC-3, Felipe Roman escreveu:
Reply all
Reply to author
Forward
0 new messages