Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MisterPe

[Resolvido] Registros retornados pela query...

Recommended Posts

Moçada, negócio é o seguinte...

 

Tenho seguinte código :

 

:	include "../base/conecta_mssql.php";	$comando_ms="select * from ms_cliente where EMail='$email' and CNPJ='$cnpj'";	$res_ms = mssql_query($comando_ms,$con_ms);	$linhas_ms= mssql_num_rows($res_ms);		echo $email;	echo $cnpj;	echo $comando_ms;	echo $linhas_ms;		if ($linhas_ms>0)		{				 :

Em um server rodando sob windows e sql server 2000, "$linhas_ms" retorna um valor numérico que consigo testar no IF.

 

Em um server rodando sob linux e sql server 2005, "$linhas_ms" retorna vazio... aí o IF já era !

 

Alguma idéia do que pode estar acontecendo ?

 

Pois não se trata somente de ajustar o IF para tratar o vazio... existem dezenas de outras validações parecidas no site e eu não tenho como alterar todas...

 

Valeu a ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Liberando a apresentação de erros no servidor de produção (Linux + Sql Server 2005), obtive os seguintes warnings :

Warning: mssql_query() [function.mssql-query]: message: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query. (severity 16) in /home/xxx/public_html/clientes/cadastra.php on line 15Warning: mssql_query() [function.mssql-query]: Query failed in /home/xxx/public_html/clientes/cadastra.php on line 15

Ou seja : na conexão ao Sql Server 2005, preciso setar o "ANSI_NULLS" e o "ANSI_WARNINGS" para ON !Galera... alguém tem alguma idéia se é possível fazer isto já no script de conexão ao sql server ?Ou tem de ser query-a-query ?Alguma idéia da sintaxe ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson,Muito obrigado pela resposta... infelizmente hoje tive um dia "daqueles" e só agora consegui ver teu post !Tentei inserir, conforme consta do artigo, os comandos indicados (Set ANSI_NULLS ON e Set ANSI_WARNINGS ON), e não resolveu... Na verdade meu problema é mais sério do que isso : qualquer query que executo no sql server no ambiente de produção, através da função "mssql_query()" do PHP, retorna NULL... mesmo quando existem registros na tabela que obedecem as condições definidas na query !!!Como isto não acontece aqui no meu ambiente de testes, acredito tratar-se de um problema de configuração do ambiente de produção : Linux / Apache / PHP / Sql Server 2005.Agora, qual configuração... bicho, não tenho a menor idéia !Acho que meu feriado já era ! :blink: Valeu pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Zé,Muito obrigado pela dica... vou estudar com calma a substituição das bibliotecas nativas do PHP para conexão ao Sql Server, pelo adodb.Quanto ao link postado pelo Anderson, entendi que o foco do artigo era o uso de Linked Server. Já usamos, neste mesmo cliente, linked server para conexão de Sql Server ao DB2 (embora não seja em ambiente web).Então, temos alguma experiência nisto e o problema que estamos tendo agora é exclusivamente na conexão PHP x Sql Server, ou seja, não consegui achar um modo de utlizar linked server neste contexto do artigo do Anderson. Numa primeira análise, entendi que o Anderson tinha indicado o artigo pela mensagem de erro, que é exatamente a mesma que estou tendo aqui... tentei alterar nestes aspectos (Set ANSI_NULLS ON e Set ANSI_WARNINGS ON), não resolveu !Olhando novamente o artigo indicado pelo Anderson, existe mais uma possibilidade : o tratamento de locks no sql server. Vou fazer alguns testes com o ROWLOCK e NOLOCK, para verificar (embora acho que seja pouco provável que seja isto, afinal a query roda no banco... "somente" o resultado não é passado ao PHP).Em termos práticos, estarei seguindo dois caminhos baseados nas dicas que vcs passaram :1) NOLOCK x ROWLOCK2) adodb Valeu moçada... novidades, informo aqui !E qualquer dica adicional é sempre bem-vinda !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Zé,Somente nosso site roda neste server !Todo o ambiente baseado em MySql funciona perfeitamente... o problema está na conexão com o Sql Server !Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido !!!O problema era com o maldito "SET ANSI_WARNINGS" que estava setado como "ON" no server de testes e "OFF" no server de produção !Acabei incluindo isso no script de conexão, assim :

<?$con_ms = mssql_connect('10.15.19.22','usuario','senha') or die('No Connection - Sql Server');mssql_select_db('database',$con_ms);mssql_query("SET ANSI_NULLS ON",$con_ms);mssql_query("SET ANSI_WARNINGS ON",$con_ms);?>

Agradeço a atenção de todos, especialmente do Anderson Mello (cujo os links fornecidos, serviram de base para identificação e correção do problema) e do zé violeiro (pelo interesse).Valeu moçada !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.