AlbertoRT Posted August 10, 2011 Report Share Posted August 10, 2011 (edited) Tenho esse formulário, que não consigo fazer o codigo de conexeção.O caminho está correto do bando está correto:<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Dim conexaoDataBase Dim strIns, rsProva Set rsProva = Server.CreateObject("ADODB.Connection") conexaoDataBase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\Meu novo site\dados\info16br.mdb" Dim varNum_senha_p1TL, varResp_alternativa_a_perg_1_p1TL, varResp_alternativa_b_perg_1_p1TL, varResp_alternativa_c_perg_1_p1TL, varResp_alternativa_d_perg_1_p1TL, varResp_alternativa_e_perg_1_p1TL varNum_senha_p1TL = Request.Form("txtNum_senha_plTL") varResp_alternativa_a_perg_1_p1TL = Request.Form("txtResp_alternativa_a_perg_1_p1TL") varResp_alternativa_b_perg_1_p1TL = Request.Form("txtResp_alternativa_b_perg_1_p1TL") varResp_alternativa_c_perg_1_p1TL = Request.Form("txtResp_alternativa_c_perg_1_p1TL") varResp_alternativa_d_perg_1_p1TL = Request.Form("txtResp_alternativa_d_perg_1_p1TL") varResp_alternativa_e_perg_1_p1TL = Request.Form("txtResp_alternativa_e_perg_1_p1TL") strINS = "INSERT into tb_prova_legislacao_telec_1_classe_C" strINS = strINS & "(Num_senha_p1TL, Resp_alternativa_a_perg_1_p1TL, Resp_alternativa_b_perg_1_p1TL, Resp_alternativa_c_perg_1_p1TL, Resp_alternativa_d_perg_1_p1TL, Resp_alternativa_e_perg_1_p1TL )" strINS = strINS + "VALUES ('" + varNum_senha_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_a_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_b_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_c_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_d_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_e_perg_1_p1TL + "')" Call abreConexao Response.Write(strINS) 'Set rsProva = conexaoDataBase.Execute(strINS) %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Inserindo dados em uma tabela</title> </head> <body> Sua prova com a senha: "<strong><% = varNum_senha_p1TL %></strong>" foi gravada. Veja os pontos na página resultado </body> </html> <% Call fechaConexao Set rsProva = Nothing %>Isso é um tormento essa conexão. Edited August 10, 2011 by AlbertoRT Quote Link to comment Share on other sites More sharing options...
0 -#Alea#- Posted August 11, 2011 Report Share Posted August 11, 2011 Dei uma resposta no seu outro tópico sobre conexão.Espero ter ajudado. Quote Link to comment Share on other sites More sharing options...
0 bareta Posted August 11, 2011 Report Share Posted August 11, 2011 enquanto você não começar a prestar atenção nos detalhes isso vai ser um tormento...verifique as mensagens de erro sempre... e procure no google quando não entender...no seu código você faz uma chamada para uma função que não existe.Call abreConexaonão use caminhos fisico digitados diretamente... ou server.mappath() ou caminhos virtuais Quote Link to comment Share on other sites More sharing options...
0 AlbertoRT Posted August 12, 2011 Author Report Share Posted August 12, 2011 (edited) Bareta, tudo bem postei duplamente estou errado vou prestar mais atenção. Desculpe. Valeu a chamada. E com isso eu fiquei mais prejudicado nos esclarecimentos. Com os detalhes das orientações do Alea fiz as alterações nas linhas de conexão. Porém agora aparece a mensagem de sucessu na inclusão de registro, por exemplo:“Sua prova com a senha: "1111111111" foi gravada. Veja os pontos na página resultado”Mas no bando de dados não consta nada. Fica vazio. Nem se quer entram zeradas. Continua achando que tem haver com as variáveis que estavam abrindo e fechando a tabela. Bareta, Alea e todos que aqui chegarem convém informar que o código que uso nas duas páginas ASP é resultado de um estudo fiz que, inclusive, as páginas ASP tem o códigos “#include file” que no momento não gostaria de fazer, pois ainda não estou seguro e vai envolver outras páginas que já estão funcionando no servidor (empresa de hospedagem do meu blog). Com isso tentei adaptar esse código fazendo a conexão na própria página ASP:O formulário Prova_LT_01_01.asp:<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <script> function valida(formProva) { if (formProva.txtNum_senha_plTL.value=="") { alert("Preencha o campo senha da prova."); formProva.txtNum_senha_plTL.focus(); return false; } } </script> </head> <body> <form name="formProva" method="post" action="ResProva_LT_01_01.asp" onsubmit="return valida(formProva);"> <div align="center"><span class="style3"><strong>Prova de Legislaçao de Telecomunicações</strong></span><br /> <br /> Marque apenas um ( x ) na questão correta. Sua questão será anulada caso marque mais de um ( x ) em uma mesma questão. <br /> Boa Sorte!<br /> </div> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td colspan="2"> </td> </tr> <tr> <td width="82%">Digite o número da senha: <input name="txtNum_senha_plTL" type="text" size="10" maxlength="10" /></td> </tr> <tr> <td width="82%" height="20">1) Qual dos documentos abaixo relacionados autoriza o radioamador a instalar sua estação:</td> </tr> <tr> <td height="5"> </td> </tr> <tr> <td> <input name="txtResp_alternativa_a_perg_1_p1TL" style="text-align:center" type="text" size="1" maxlength="1" /> a) certificado de operador de estação radioamador; </td> </tr> <tr> <td> <input name="txtResp_alternativa_b_perg_1_p1TL" style="text-align:center" type="text" size="1" maxlength="1" /> b) comprovante de pagamento das taxas de fiscalização das telecomunicações; </td> </tr> <tr> <td> <input name="txtResp_alternativa_c_perg_1_p1TL" style="text-align:center" type="text" size="1" maxlength="1" /> c) certificado de operador de estação de radioamador e comprovante de pagamento das taxas de fiscalização das telecomunicações; </td> </tr> <tr> <td> <input name="txtResp_alternativa_d_perg_1_p1TL" style="text-align:center" type="text" size="1" maxlength="1" /> d) comprovante de filiação a uma associação de radioamadores reconhecida pela Anatel; </td> </tr> <tr> <td> <input name="txtResp_alternativa_e_perg_1_p1TL" style="text-align:center" type="text" size="1" maxlength="1" /> e) licença de estação de radioamador.</td> </tr> <td width="82%"><input type="submit" value="Inserir" name="btInsere" /> <input type="reset" value="Limpa campos" name="btLimpa" /></td> <td width="18%"> </td> </tr> </table> </form> </body> </html> O objetivo é incluir a Senha digitada em Prova_LT_01_01.asp no bando de dados. Para isso existe a página a página ResProva_LT_01_01.asp que ficou com esse código após fazer as alterações no código para conexão: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% 'Crindo a conexão Conexao="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\wwwroot\Meu novo site\dados\info16br.mdb" 'Abrindo a conexão com banco de dados Set conexaoDataBase = Server.CreateObject("ADODB.Connection") conexaoDataBase.open Conexao Dim conexaoDataBase Dim strIns, rsProva Dim varNum_senha_p1TL, varResp_alternativa_a_perg_1_p1TL, varResp_alternativa_b_perg_1_p1TL, varResp_alternativa_c_perg_1_p1TL, varResp_alternativa_d_perg_1_p1TL, varResp_alternativa_e_perg_1_p1TL varNum_senha_p1TL = Request.Form("txtNum_senha_plTL") varResp_alternativa_a_perg_1_p1TL = Request.Form("txtResp_alternativa_a_perg_1_p1TL") varResp_alternativa_b_perg_1_p1TL = Request.Form("txtResp_alternativa_b_perg_1_p1TL") varResp_alternativa_c_perg_1_p1TL = Request.Form("txtResp_alternativa_c_perg_1_p1TL") varResp_alternativa_d_perg_1_p1TL = Request.Form("txtResp_alternativa_d_perg_1_p1TL") varResp_alternativa_e_perg_1_p1TL = Request.Form("txtResp_alternativa_e_perg_1_p1TL") strINS = "INSERT into tb_prova_legislacao_telec_1_classe_C" strINS = strINS & "(Num_senha_p1TL, Resp_alternativa_a_perg_1_p1TL, Resp_alternativa_b_perg_1_p1TL, Resp_alternativa_c_perg_1_p1TL, Resp_alternativa_d_perg_1_p1TL, Resp_alternativa_e_perg_1_p1TL )" strINS = strINS + "VALUES ('" + varNum_senha_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_a_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_b_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_c_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_d_perg_1_p1TL + "'," strINS = strINS + "'" + varResp_alternativa_e_perg_1_p1TL + "')" 'Call abreConexao 'Response.Write(strINS) 'Set rsProva = conexaoDataBase.Execute(strINS) %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Inserindo dados em uma tabela</title> </head> <body> Sua prova com a senha: "<strong><% = varNum_senha_p1TL %></strong>" foi gravada. Veja os pontos na página resultado </body> </html> <% set conexao = nothing 'Call fechaConexao 'Set rsProva = Nothing %> As funções que apareciam como comentário elas existiam. A "exclusão" dessas funções podem ter acarretado essa falta de inclusão do registro?: 'Call abreConexao 'Response.Write(strINS) 'Set rsProva = conexaoDataBase.Execute(strINS) E 'Call fechaConexao 'Set rsProva = NothingMuito obrigado e mais um vez desculpe por tudo. Edited August 13, 2011 by AlbertoRT Quote Link to comment Share on other sites More sharing options...
0 bareta Posted August 12, 2011 Report Share Posted August 12, 2011 você esta abrindo a conexao, mais não executa sql nenhuma...... abre a conexao sql=algumacoisa cria o recordset conexao executa o recordsetleia:http://www.baboo.com.br/conteudo/modelos/I...P_a5200_z0.aspx Quote Link to comment Share on other sites More sharing options...
0 AlbertoRT Posted August 13, 2011 Author Report Share Posted August 13, 2011 Por favor, com todo respeito observe o que eu coloquei:"As funções que apareciam como comentário elas existiam. A "exclusão" dessas funções podem ter acarretado essa falta de inclusão do registro?:""...pareciam...existiam...". Com as sugestões do Alea eu retirei. Eu já informei que as duas páginas ASP são frutos de um estudo. Porem duas estão em um diretório diferente funcionando perfeitamente bem mas com uma conexão via "#include file" (arquivo dbConexao.inc).Bareta esse deve ser o meu problema.Considerando a minha falta de competência achei que seria mais prudente não aprender agora a fazer a conexão via “#include file”, pois teria que alterar outras páginas das páginas do Blog.Portanto existema) As páginas “Prova_LT_01_01.asp” e “ResProva_LT_01_01.asp”, que se encontram em um diretório . A “ResProva_LT_01_01.asp” tem em sua parte superior:<% Option Explicit %> <!--#Include file="../dbConexao.inc"--> <%Obs.: Bareta, o mesmo sql que existe no exemplo acima tem nas duas páginas que são iguais que só retirei a conexão “#include file”. Portanto a sql está sendo executada. B) A “Prova_LT_01_01.asp” que se encontra em outro diretório não teve alteração alguma mantive o mesmo código da citada na alínea “a”;c) A “ResProva_LT_01_01.asp” o código foi alterado seguindo as orientações do Alea, ou seja, somente retirei a conexão via <!--#Include file="../dbConexao.inc"-->e as funções de “Abrir” e “Fechar”. Volto a afirmar que não toquei mais em uma linha se quer do código, portanto a sql é a mesma. Caso contrário como iria funcionar a página “ResProva_LT_01_01.asp” com conexão via <!--#Include file="../dbConexao.inc"--> citada na alínea “a”?Bareta, resumindo, eu tenho duas páginas em “asp” que rodam perfeitamente cujo código de conexão é feito via <!--#Include file="../dbConexao.inc"--> e uma outra que mantive todo o código excluindo funções “Abrir” e “Fechar” e incluindo o código de conexão que ainda não funcionou. Quote Link to comment Share on other sites More sharing options...
0 bareta Posted August 15, 2011 Report Share Posted August 15, 2011 certo e qual a mensagem de erro que esta aparecendo lá.? Quote Link to comment Share on other sites More sharing options...
0 AlbertoRT Posted August 15, 2011 Author Report Share Posted August 15, 2011 (edited) Salve, Salve Bareta meu respeito.Ficou tudo muito confuso por minha causa mesmo.Diante disso não sei mais o que responder.Só sei que diante das suas sugestões eu continuei estudando. Com base as suas sugestões:“você esta abrindo a conexao, mais não executa sql nenhuma...” eu parti para uma experiência pois tenho certeza absoluta que não toquei em um linha do código que trata de QSL e dessa forma tenho que provar a mim mesmo que a SQL está ali e não se trata de erro de não executar.Vamos então zerar tudo e, por favor, acompanha esse passo a passo:a) Em um uma pasta com esse caminho "C:\inetpub\wwwroot\serieweb\Nasp\database\dbEditora.mdb" tenho um bando de dados chamado dbEditora.mdb;B) Esse caminho se encontra dentro do arquivo chamada: “dbConexao.inc” que tem o seguinte código completo:<% Sub AbreConexao Set conexaoDataBase = Server.CreateObject("ADODB.Connection") conexaoDataBase.CursorLocation=3 const cntCaminho = "C:\inetpub\wwwroot\serieweb\Nasp\database\dbEditora.mdb" conexaoDataBase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cntCaminho end sub sub FechaConexao conexaoDataBase.close set conexaoDataBase = nothing end sub %> c) Esse arquivo de conexão faz a conexão com a página: “ResProva_LT_01_01.asp”, ou seja, o registro (Senha) que é digitada na página “Prova_LT_01_01.asp” que por sua vez “fala” com a ““ResProva_LT_01_01.asp” e essa com o arquivo de conexão “dbConexao.inc”; d) Esse processo funciona perfeitamente bem com o mesmo SQL que você informou que eu não estava executando (se eu não estou executando SQL como que aqui ele grava o registro na tabela?) e) O que me levou a postar neste fórum é que eu gostaria que as páginas “Prova_LT_01_01.asp” e a “ResProva_LT_01_01.asp” não fossem mais trabalhadas via <!--#include file f) Para que isso ocorresse copiei as duas páginas “Prova_LT_01_01.asp” e a “ResProva_LT_01_01.asp” para outra pasta, ou seja, “C:\inetpub\wwwroot\Meu novo site” e somente deletei a linha “Prova_LT_01_01.asp” e a “ResProva_LT_01_01.asp” g) Convém ficar claro que todas as páginas em ASP que trabalham nessa pasta estão funcionando perfeitamente bem com a conexão direta no HTML conString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\inetpub\wwwroot\Meu novo site\dados\info16br.mdb" A única diferença no funcionamento destas páginas ASP nessa pasta é que em nenhuma página Inclui registro em tabela, mas sim apresentam na tela os registros.h) Se essas duas paginas funcionam perfeitamente bem em outra pasta com (letra “a”) um arquivo de conexão “dbConexao.inc”, copiei esse arquivo de conexão para essa pasta (letra f) e fui verificar se iria grava os registros (senha) na tabela tb_prova_legislacao_telec_1_classe_C, registrando em “Prova_LT_01_01.asp”; i) Pronto funcionou tudo e não toquei em uma linha de qsl. Somente copiei para essa pasta mudei o caminho do arquivo mdb e o caminho no arquivo "dbConexao.inc" Resumo:1) Tenho duas páginas (“Prova_LT_01_01.asp” e a “ResProva_LT_01_01.asp”) que funcionam fazendo a conexão via um arquivo <!--#Include file="../dbConexao.inc"-->2) Tentei retira essa conexão via "include" e ficar apenas com a conexão no HTML. Não consegui.3) Salvei essas duas páginas (“Prova_LT_01_01.asp” e a “ResProva_LT_01_01.asp”) em outra pasta de trabalho e mantive a conexão via "include" passou a funcionar perfeitamente bem.4) Agora o problema que eu não queria enfrentar é retirar a conexão que HTLM de outras páginas que estão funcionando e colocar tudo com conexão <!--#Include file="../dbConexao.inc"--> Por exemplo tenho logs.asp que apresenta os regitros na tela e sua conexão está no html.<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><!--#Include file="dbConexao.inc"--><%Set conexao=Server.CreateObject("ADODB.Connection")conexao.open constring'crio o rs set rs=Server.CreateObject("ADODB.Recordset")'crio o SQLSQL="SELECT qry_registros_cadastrados.* FROM qry_registros_cadastrados"rs.open SQL,conexao,1,3...</body></html>E o arquivo de conexão dbConexao.inc<%Sub AbreConexao Set conexaoDataBase = Server.CreateObject("ADODB.Connection") conexaoDataBase.CursorLocation=3 const cntCaminho = "C:\inetpub\wwwroot\Meu novo site\dados\info16br.mdb" conexaoDataBase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cntCaminho end subsub FechaConexao conexaoDataBase.close set conexaoDataBase = nothingend sub%> %> Como vou fazer para a página logs.asp venha a ser aberta usando<!--#Include file="../dbConexao.inc"--> como mesmo arquivo dbConexão.Se ele funciona na mesma pasta de uma página não pode não funcionar para uma outra. Tenho que mudar alguma coisa em logs.asp. Mas o que? Edited August 15, 2011 by AlbertoRT Quote Link to comment Share on other sites More sharing options...
0 bareta Posted August 16, 2011 Report Share Posted August 16, 2011 mesma coisa de antes... a conexão não é aberta e nem fechada...vamos por partes e definimos o que é uma sub e uma function.como no asp não precisamos identificar o tipo de retorno da função... as function ficam muito simples...function xxx(var1, var2) xxx=var1+var2 end function a função acima recebe 2 valores por parametros somo um com o outro e retorna esse valor... uma chamada a ela poderia ser. x=xxx(10,20) ou response.write xxx(10,20) já uma sub é um bloco de código que não tem retorno ( seria como em c++ uma função void ). sub xxx(var1, var2) response.write var1+var2 end sub onde chamariamos por call xxx 10,20 com isso em mente vamos lá... bastaria ter o arquivo com as funções incluida no arquivo e chamalas quando necessário certo ? <!--#Include file="dbConexao.inc"--> <% sql="insert into tabela (campo) values ('xxx')" call AbreConexao conexaoDataBase.execute(sql) call FechaConexao %> so que ai temos o seguinte detalhes... uma função quando executada armazena as variaveis criadas na memoria e as destroi ao termino da função. então se declararmos dentro da função Dim conexaoDataBase e definirmos a variavel conexaoDataBase como o objeto da conexão, ao fim da execução da sub ou da function ela é destruida e limpada da memoria. logo nada mais funciona. para resolver isso declare conexaoDataBase como variavel global. Dim conexaoDataBase Sub AbreConexao Set conexaoDataBase = Server.CreateObject("ADODB.Connection") conexaoDataBase.CursorLocation=3 const cntCaminho = "C:\inetpub\wwwroot\Meu novo site\dados\info16br.mdb" conexaoDataBase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cntCaminho end sub analisando dessa forma, podemos evitar as gambiarras e uso excessivo de memoria e outras falhas por não sabermos direito o que fazer... declaramos no inicio do arquivo. <% @ Language=VBScript %> <% Option Explicit %>onde que a primeira linha indica que estaremos usando VBScript [ o asp pode ser escrito usando várias linguagens e cada uma tem sua sintaxe [php, javascript, python e etc] )já a segunda força que todas variaveis criadas tem que ser declaradas antes do uso. o que falicita bem encontrar alguns erros...bom espero que ajude !!! Quote Link to comment Share on other sites More sharing options...
Question
AlbertoRT
Tenho esse formulário, que não consigo fazer o codigo de conexeção.
O caminho está correto do bando está correto:
Isso é um tormento essa conexão.
Edited by AlbertoRTLink to comment
Share on other sites
8 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.