Mateustg Postado Março 23, 2004 Denunciar Share Postado Março 23, 2004 Tenho um sistema de envio de cartão postal, só que na hora do envio ele me apresenta o seguinte erro:Microsoft OLE DB Provider for ODBC Drivers error '80004005'[Microsoft] ODBC [Microsoft Access Driver] no current recorder/infosis/pd/pd/enviar.asp line 91a linha 91 do arq. enviar.asp é essa:90 ' escrevemos a informação na BD definitivamente 91 rs.Open SQLStmt, Conn, 1, 292 SQLStmt = "Select max(id_postal) AS maximo from postal"93 rs.Open SQLStmt, Conn, 1, 294 ident = rs("maximo")O q está ocorrendo? alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 EDSONET Postado Março 23, 2004 Denunciar Share Postado Março 23, 2004 Cara, da uma olhada no teu código SQL, deve ter alguma coisinha errada, um nome declarado errado. Da uma olhada aprofundada.Qualquer coisa coloca todo o código ai!Falowww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mateustg Postado Março 23, 2004 Autor Denunciar Share Postado Março 23, 2004 Nada! não consegui achar erro! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tork Postado Março 23, 2004 Denunciar Share Postado Março 23, 2004 porque escreve rs.Open duas vezes?91 rs.Open SQLStmt, Conn, 1, 292 SQLStmt = "Select max(id_postal) AS maximo from postal"93 rs.Open SQLStmt, Conn, 1, 2Eu acho que é isso... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Reginaldo ASP Postado Março 23, 2004 Denunciar Share Postado Março 23, 2004 Posta a variável SQLStmt que está antes da linha 90, aí sim poderemos ajudar...O erro está dizendo que não encontrou o registro... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mateustg Postado Março 24, 2004 Autor Denunciar Share Postado Março 24, 2004 Bem, esse aqui é todo o cód. da pág. enviar.asp <% 'Aqui conectamos com a Base de Dados Set Conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.MapPath("./postaisdigitais.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;MaxBufferSize=8192;Threads=20;", "username", "password" ' Esta é a variável usada como identificador ' do postal digital Dim identifier ' goby é uma variável boolean para ' ajuda na validação Dim goby goby = 1 'lets start it with True %> <html><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <body bgcolor=white> <font face=3D"Arial"> <small><strong> <% ' Validamos então o nome; tem de ter um tamanho ' mínimo de 2 caracteres if len(session("nomepara")) < 2 then ' se existir problemas marcamos logo a nossa variável goby = 0 end if if len(session("nomede")) < 2 then goby = 0 end if ' validamos o email, If Len(session("emailde")) <= 5 Then goby = 0 Else If InStr(1, session("emailde"), "@", 1) < 2 Then goby = 0 Else If InStr(1,session("emailde"), ".", 1) < 4 Then goby = 0 End If End If End If If Len(session("emailpara")) <= 5 Then goby = 0 Else If InStr(1, session("emailpara"), "@", 1) < 2 Then goby = 0 Else If InStr(1,session("emailpara"), ".", 1) < 4 Then goby = 0 End If End If End If ' Aqui verificamos se o texto não tem mais de 500 caracteres. If len(session("message")) >= 500 Then goby = 0 End If ' Vamos agora verificar a nossa variável ' se estiver a zeros avisamos que hà erros if goby = 0 then %> <br><br><br><br><br> <center>ERRO....</center><br> <% end if ' Se não hà erros introduzimos a informação para a Base de Dados ' e enviamos a informação por email para o destinatário If goby = 1 then 'fazemos o update à Base de Dados SQLStmt = "INSERT INTO postal (" & _ "passw_postal, postal_postal, nomepara_postal, nomede_postal, " & _ "emailde_postal, emailpara_postal, mensagem_postal, data_postal) " & _ "VALUES (" ' vamos criar um número aleatório para que o postal fique protegido, ' usamos o randomize/rnd para criar um número aleatório randomize() passw = Int((9999-1)*Rnd + 1) SQLStmt = SQLStmt & passw & ",'" & session("postal") & _ "','" & session("nomepara") & "','" & _ session("nomede") & "','" & _ session("emailde") & "','" & _ session("emailpara") & "','" & _ session("message") & "',Now)" ' escrevemos a informação na BD definitivamente rs.Open SQLStmt, Conn, 1, 2 SQLStmt = "Select max(id_postal) AS maximo from postal" rs.Open SQLStmt, Conn, 1, 2 ident = rs("maximo") ' Vamos aqui usar o componente ASPMail ' pode usar um outro qualquer, este é o que é usado ' no servidor ond estamos Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.RemoteHost = "mail.vipseven.com.br" Mailer.FromName = "O Site" Mailer.FromAddress = "vipseven@vipseven.com.br" Mailer.AddRecipient " ", session("emailpara") Mailer.Subject = "Envio de Postal Digital para si de " & session("nomede") & " ..." ' vamos buscar a data que está no servidor d = now() ' vamos acrescentar-lhe 30 dias, para por no aviso de limite ' de expiração do postal digital d = DateAdd("d",30,d) enviar = "Deixe-me informá-lo de que " & session("nomede") & _ Chr(13) & Chr(10) & _ " enviou-lhe um postal digital. Para o ver " & _ "siga o link :" & _ Chr(13) & Chr(10) & Chr(13) & Chr(10) & _ "http://www.vipseven.com.br/pd/pd/visualizar.asp?uq=defora&" & _ "ident=" & ident & _ "&psw=" & passw & " " & Chr(13) & Chr(10) & _ " o postal vai estar disponível no nosso site até ao dia " & _ formatDateTime(d,2) & _ Chr(13) & Chr(10) & Chr(13) & Chr(10) & _ Chr(13) & Chr(10) & _ " Obrigado," Mailer.BodyText = enviar Mailer.SendMail If Err <> 0 Then Response.write "ERRO..." Response.Write "<br><br>" & "Houve um Erro : " & Err.description & "<br><br>" Response.Write "<center><p>ERRO DO LADO DO SERVIDOR, " & "contacte o nosso webmaster.</p></center>" goby = 0 Else Response.Write "<br><br><br><center><p>POSTAL DIGITAL ENVIADO" & " SEM PROBLEMAS ...<br>" End if Set Mailer = nothing End If ' penso que reparou que uso o JavaScript history.back ' com este não perdemos a informação jà criada anteriormente %> <center> <p> <a href="javascript:history.go('-2')"> <Refazer> </a> </p> </center> </strong></small></font> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nevesrodrigo Postado Março 24, 2004 Denunciar Share Postado Março 24, 2004 simples ta dando erro porque você ta primeiro mandando executar o sql e depois dizendo qual o sql, nunca vai funcionar, tira a linha 91 uma vez que a execução do sql já ta na linha 93 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mateustg
Tenho um sistema de envio de cartão postal, só que na hora do envio ele me apresenta o seguinte erro:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft] ODBC [Microsoft Access Driver] no current recorder
/infosis/pd/pd/enviar.asp line 91
a linha 91 do arq. enviar.asp é essa:
90 ' escrevemos a informação na BD definitivamente
91 rs.Open SQLStmt, Conn, 1, 2
92 SQLStmt = "Select max(id_postal) AS maximo from postal"
93 rs.Open SQLStmt, Conn, 1, 2
94 ident = rs("maximo")
O q está ocorrendo? alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.