Ir para conteúdo

POWERED BY:

Arquivado

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

Alessandro Francisco

asp + firebird + storedprocedures

Recommended Posts

Eu estou com um problem grave, eu fiz um site todo base ado em ASP 3, + Firebird + StoredProcedures, esse site funciona certinho no meu micro, mas no server as SP não retornan nenhum dado, alguem tem alguma ideia do que está acontecendo?Espero que alguem possa me ajudar...Segue meu codigo ASP e o Codigo da SP em questao:Arquivo sConn.asp:<%Dim sConnection sConnection="DRIVER=Firebird/InterBase® driver; UID=pccartuchos; PWD=upqca8; DBNAME=firebird.hospedagemdesite.com:/opt/firebird/data/pccartuchos.gdb;"%>Arquivo Login.asp:<%@LANGUAGE="VBSCRIPT" CODEPAGE="1250"%><%option explicit%><%Session.LCID = 1046%><%Response.buffer=true%><!--#include file="sConn.asp"--><% 'Variáveis de uso comum Dim rsLogin, sLogin, sSenha, isPost, Erro, lixo, objConn, i 'Inicializa Variáveis Erro=0 isPost=Request.ServerVariables("REQUEST_METHOD") 'Conexão como servdior Set objConn = Server.CreateObject("ADODB.Connection") 'RecordSet de Dados Set rsLogin = Server.CreateObject("ADODB.Recordset") 'Abre a conexão objConn.Open(sConnection) 'Procedure que abre o RecordSet + SQL sub OpenRS (sQuery) rsLogin.Open sQuery,objConn,3,3 end sub 'OpenRS 'Faz a validação contra caracteres maliciosos Function ValidaDados(input) Lixo = array ( "select" , "insert" , "update" , "delete" , "drop" , "--" , "'") ValidaDados = true for i = lBound (lixo) to ubound(lixo) if ( instr(1 , input , lixo(i) , vbtextcompare ) <> 0 ) then ValidaDados = False exit function end if next End Function 'ValidaDados 'CheckIt, Verifica se o campo Marcado está ok Sub CheckIt(Campo) If (isPost = "POST") Then If CSTR(Trim(Request.Form(Campo))) = "" Then Erro=Erro+1 Response.Write("Class='InputErro'") End If If (ValidaDados(Request.Form(Campo))=False) Then Erro=Erro+1 Response.Write("Class='InputErro'") End IF End If End Sub 'CheckIt 'Função que grava os dados Sub PostInfo() 'Limpa os espaços extras sLogin=CSTR(Trim(Request.Form("Email"))) sSenha=CSTR(Trim(Request.Form("Senha"))) 'Chama a SP_LOGIN OpenRS("{call SP_LOGIN('"&sLogin&"','"&sSenha&"')}") If (rsLogin.RecordCount = 1) then Session("Logado")=True Session("Id")=rsLogin("Id") Session("Nome")=rsLogin("Nome") Session("Email")=rsLogin("Email") If (Request.QueryString("IR") <> "") Then Response.Redirect(Request.QueryString("IR")) Else Response.Redirect("Default.asp") End IF Else Response.Write("Nome de acesso e senha não conferem!") End If End Sub 'PostInfo%>StoredProcedure no Banco:CREATE PROCEDURE SP_LOGIN ( PI_EMAIL VARCHAR(100), PI_SENHA VARCHAR(10))RETURNS ( ID INTEGER, NOME VARCHAR(100), EMAIL VARCHAR(100), TABELA INTEGER)ASBEGIN /*Seleciona o cliente segundo a senha e o nickname*/ FOR SELECT CLI_ID, CLI_NOME, CLI_EMAIL FROM TB_CLIENTES WHERE CLI_EMAIL = :pi_email AND CLI_SENHA = :pi_senha INTO :ID, :NOME, :EMAIL DO SUSPEND;END

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses dias eu tive um problema usando esse trio (ASP + FIREBIRD + STOREDPROCEDURES) onde as SP funcionavam certinho na minha máquina e no servidor não funcionavam de jeito nenhum.O problema estava ligado ao usuário do banco de dados.Como no meu servidor de web eu não acesso meu DB como SYSDBA e sim com outro usuário as SP's não eram executadas porque elas haviam sido feitas pelo SYSDBA e não pelo outro usuário assim eu não tinha direito de acesso.O que eu tive que fazer?- Gerar um script do Metadata do banco.- Criar um novo usuário exatamente igual ao que eu uso na web (nome e senha idênticos)- Criar um banco de dados vázio com o mesmo nome do banco anterior, utilizando o nome de usuário que eu criei- Executar o script de Metada no banco novo- Adicionar os dados denovoEnfim, um #@?$%~ trampo por causa de direitos de acesso ^^Como ninguém soube me ajudar ou não tinha nem idéia do que estava ocorrendo, espero que isso possa ser de ajuda à alguem algum dia.Alessandro Francisco

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.