[firebase-br] ASP + FIREBIRD + STOREDPROCEDURES
Alessandro Francisco
alessandro_francisco em msn.com
Qua Dez 13 10:56:37 -03 2006
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(r) 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
_________________________________________________________________
Obtenha o novo Windows Live Messenger!
http://get.live.com/messenger/overview
Mais detalhes sobre a lista de discussão lista