Ir para conteúdo

POWERED BY:

Arquivado

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

andrerm

[Resolvido] Problema no acesso aos dados do BD

Recommended Posts

Olá,

 

Estou tendo que migrar uma pequena aplicação que estava em Access para SQL Server, em Access funcionava tudo mais a performance deixava a desejar.

 

O problema é que agora nenhuma consulta traz informações do banco e não estou conseguindo identificar o problema, a string de conexão está correta está buscando no SQL mais não traz nenhum retorno.

E o estranho se não faço a verificação de EOF e acesso o RecordSet ele simplesmente não retorna nenhum valor, agora se utiliza a verificação por EOF retorna true.

 

 

Vou postar uma consulta simples e a string de conexão

cString = "Provider=SQLOLEDB;Data Source=meu_servidor;Initial Catalog=meu_banco;UserId=meu_usuario;Password=minha_senha;"

 

Abrindo o recordSet

set rs1 = server.createobject("ADODB.RecordSet")

rs1.open "SELECT * FROM tblSettings where Login = '" & Replace(session("login1"), "'", "''") & "'",cString,3

 

Se coloco o SELECT no QueryAnaliser funciona perfeitamente.

 

Alguém já teve esse problema ou imagina o que pode se ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma response.write na SQL para ver o k esta sendo passado

SQL="SELECT * FROM tblSettings where Login = '" & Replace(session("login1"), "'", "''") & "'"

response.write(SQL)

response.end()

 

olha este exemplo, segue esta logica

'crio o rs1
  set rs1=Server.CreateObject("ADODB.Recordset")
varlogin=Replace(session("login1"), "'", "''") 
  'crio o SQL
  SQL="SELECT login FROM login WHERE login='"&varlogin&"'"
  rs1.open SQL,conexao,1,3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já fiz isso e executei o retorno no Query Analiser e funciono, retorno um registro correto.

 

da uma response.write na SQL para ver o k esta sendo passado

SQL="SELECT * FROM tblSettings where Login = '" & Replace(session("login1"), "'", "''") & "'"

response.write(SQL)

response.end()

 

olha este exemplo, segue esta logica

'crio o rs1
  set rs1=Server.CreateObject("ADODB.Recordset")
varlogin=Replace(session("login1"), "'", "''") 
  'crio o SQL
  SQL="SELECT login FROM login WHERE login='"&varlogin&"'"
  rs1.open SQL,conexao,1,3

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se as permissoes estao todas corretas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe... quais permissões você está querendo que eu verifique ?

 

O que acabe de fazer foi acessar o banco de dados com os dados de string de conexão e funciono.

 

verifique se as permissoes estao todas corretas...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

funciono

beleza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz esse teste para verificar a conexão e me retornou o erro 3709

 

Set conn = Server.CreateObject("ADODB.Connection")

conn.Open cString

Set cmdTemp = Server.CreateObject("ADODB.Command")

cmdTemp.CommandType = adCmdText

Set cmdTemp.ActiveConnection = conn

response.Write "---"&Err.Number&"---"

 

Agora vou tentar descobrir o que é esse erro.

 

Rs... O que funciono foi acessar a banco com os dados da string de conexão, mais o problema na aplicação continua.

 

Pelo teste que realizei e postei parece que é problema no conexão, no teste deu o erro 3709, vou dar uma pesquisada para tentar descobrir o que é esse erro.

 

funciono

beleza

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro 3709 é porque a conexão está fechado provavelmente.

 

Ai fiz mais um teste...

 

Set conexaoLogin = Server.CreateObject("ADODB.Connection")

conexaoLogin.Open cString

 

Response.Write "---"&conexaoLogin.State&"---"

 

Me retorno "0".

 

Agora o porque me retorno que está fechado se acabei de abri ?

Fiquei totalmente se sabe o que faze agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta executando no localhost

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou executando no servidor.

 

Agora executei a página sem ser por include e ai sim aparece o erro.

 

Microsoft OLE DB Provider for SQL Server error '80040e4d'

Invalid connection string attribute

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum MUITO OBRIGADO PELA PACIÊNCIA !!!!

 

Descobri o erro tosco !!!!

"User ID" da string de conexão estava "User ID".

 

 

Muito Obrigado mesmo !!!!!

 

Valeu !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum MUITO OBRIGADO PELA PACIÊNCIA !!!!

 

Descobri o erro tosco !!!!

"User ID" da string de conexão estava "UserID".

 

 

Muito Obrigado mesmo !!!!!

 

Valeu !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

 

<%
'##Declara as variaveis a serem utilizadas no script
Dim conexao, stringConexao, host, usuario, senha, banco

'##Informe os dados de conexão junto ao banco Microsoft SQL Server
host   ="ENDERECO_SQL_SERVER"
usuario="USUARIO" 
senha  ="SENHA"
banco  ="BANCO"

'##Monta a string de conexão utilizando os dados informados anteriormente
stringConexao = "Provider=SQLOLEDB.1;SERVER="&host&";DATABASE="&banco&";UID="&usuario&";PWD="&senha&";"

'##Instancia o objeto de conexão com o banco
SET conexao = Server.CreateObject("ADODB.Connection")

On Error Resume Next

'##Abre a conexão junto ao banco
conexao.Open stringConexao

'##Tratamento de erro. Caso ocorra problemas na conexão, exibe esta informação e apresenta detalhes.
If Err.Number <> 0 Then
    response.write "<b><font color='red'> Conexão com o banco '" & banco & "' Microsoft SQL Server falhou !</font></b>"
    response.write "<BR><BR>"
    response.write "<b>Erro.Description:</b> " & Err.Description & "<br>"
    response.write "<b>Erro.Number:</b> " & Err.Number & "<br>"
    response.write "<b>Erro.Source:</b> " & Err.Source & "<br>"
Else
   '##Caso a conexão seja bem sucedida, mostra mensagem de confirmação.
   response.write "<b><font color='blue'> Conexão com o banco '" & banco & "' Microsoft SQL Server estabelecida com sucesso !</font>"
End If

'##Fecha a conexão com o banco
conexao.close

'##Remove as referência do objeto da memória
SET conexao = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum MUITO OBRIGADO PELA PACIÊNCIA !!!!

 

Descobri o erro tosco !!!!

"User ID" da string de conexão estava "UserID".

 

 

Muito Obrigado mesmo !!!!!

 

Valeu !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza

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.