Ir para conteúdo

POWERED BY:

Arquivado

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

hardbrasil

Erro ao inserir string no banco via formulario (iniciante)

Recommended Posts

Erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression 'dte = #27-abril-2007#'.

 

/add_date.asp, line 23

 

Conteúdo da linha 23 do referido arquivo:

 

set rs = my_conn.execute (StrSql)

 

Veja aqui o codigo completo

<!--#INCLUDE FILE="dbcon.asp" --><%Session.LCID = 1046if Request.Form("pword") <> "agenda" then	Response.AddHeader "Não Autorizado ", "401.1"	Response.Write "<p><STRONG>Não Autorizado: Login falhou</STRONG></P><P>Por favor verifique a senha utilizada.</p>"	Response.Write "<center><a href='diary.asp'>Voltar para agenda</a></center>"	Response.End End ifFunction ChkString(string)	 if string = "" then string = " "	 ChkString = Replace(string, "'", "''")End Functionset my_conn= Server.CreateObject("ADODB.Connection")my_Conn.Open dsn'  Check to see if it's a new record to be added or an old one to updateStrSql= "Select * from diary where dte = #" & Request("view_Date") & "#" set rs = my_conn.execute (StrSql)if rs.BOF or rs.EOF then ' No records found.  i.e. New record	StrSql ="INSERT INTO diary (dte, text_field) values (#" & request("view_date") & "#, '" & chkString(request("txt")) & "')"else ' Record found.  i.e. update record.	StrSql = "UPDATE diary SET diary.dte = #" & request("view_date") & "#, text_field = '" & chkString(request("txt")) & "' WHERE id = " & rs("id")End Ifmy_conn.Execute (strSql)my_Conn.Closeset my_conn = nothingResponse.Redirect ("diary.asp?view_date=" & request("view_date"))%>

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual tipo de dado é esse campo? Se for data o formao está incorreto pois o separador deve ser "/" e não "-".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade insere texto.

No link abaixo voce pode ver o funcionamento dela. è uma agenda asp bem simples e facil com um banco access.

Ao clicar no "dia" voce acessa a pagina de inserção dos eventos.

 

basta digitar um conteúdo qualquer e colocar a senha "agenda" que ele deveria escrever dentro do dia que foi escolhido.

 

Salgado, só um detalhe cara, quando estava em ingles "Session.LCID = 2057" ele funcionava.

 

Será que talves é por causa da inversão do "Mês" e "dia" na apresentação da data? Porque eles costumam trabalhar com o mês antes do dia, né.

 

Visite a agenda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em outro forum disseram que pode ser por causa da sequencia da data em ingles ser diferente da portugues. exemplo.ingles aaaa/mes/diaportugues dia/mes/aaaaalguem pode me ajudar a mudar isso no cod? pois ele estava configurado para a data em ingles.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Repare que na string que aparece no erro está "abr", utilize-se também do formato mm/dd/aaaa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado voce pode um pouco mais claro?eu não entendi o que voce quis dizer com "abr". Abreviação ?como modifico o traço "-" para "/" como voce havia proposto anteriormente?obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade era para ser "abril", foi um erro meu de digitação.

 

Esse form "view_Date" é um campo digitado ou automático no script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, se você quiser baixar a agenda os arquivos estão AQUI

 

è bem interessante pois é facil de gerenciar e muito simples.

 

Alias fiquem a vontade para baixar aos membros do forum.

 

Se alguem souber arrumar posta aqui que eu coloco a versão arrumada para download.

 

Só tem um errinho que eu não estou sabendo resolver o resto esta funcionando!

 

 

abs galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arrumei @#$#@@#$#!!!

 

Abaixo ---->Add_Date.asp

<!--#include file="dbcon.asp" --><%Session.LCID = 1046if Request.Form("pword") <> "agenda" then	Response.AddHeader "401.1 Não Autorizado: ", "401.1"	Response.Write "<p><STRONG>Não Autorizado: Login falhou</STRONG></P><P>Por favor verifique a senha utilizada.</p>"	Response.Write "<center><a href='diary.asp'>Voltar para agenda</a></center>"	Response.End End ifFunction FormataData(Data)If Data <> "" ThenFormataData=Right("0"&DatePart("d",Data),2)&"/"&Right("0"&DatePart("m",Data),2)&"/"&DatePart("yyyy",Data)&Right("20"&DatePart("yyyy",Data),4)End IfEnd FunctionFunction ChkString(string)	 if string = "" then string = " "	 ChkString = Replace(string, "'", "''")End FunctionStrSql= "Select * from diary where 'dte' = '"&Request("view_Date")&"'" set rs = conn.execute (StrSql)if rs.BOF or rs.EOF then ' No records found.  i.e. New record'	StrSql ="insert into diary (dte, text_field) values ('" & request("view_date") & "', '" & chkString(request("txt")) & "')"else ' Record found.  i.e. update record.'	StrSql = "update diary SET diary.dte = '"& request("view_date") &"' , text_field = '" & chkString(request("txt")) & "' WHERE id = " & rs("id")End Ifconn.Execute (strSql)conn.Closeset conn = nothingResponse.Redirect ("diary.asp?view_date=" & request("view_date"))%>
ve se era isso!

senão post ae!!!

Abx

 

Ps: belo trampo em asp!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala Rodrigo, muito bom cara resolveu o problema da sequencia da data, agora o erro esta mais em baixo, rsrs...

 

Ta dando erro na linha 39

 

Se eu tiro o Execute ele funciona o script porem não ecreve na agenda.

 

O seu script funcionou???

 

abs

 

 

<!--#include file="dbcon.asp" --><%Session.LCID = 1046if Request.Form("pword") <> "agenda" then	Response.AddHeader "401.1 Não Autorizado: ", "401.1"	Response.Write "<p><STRONG>Não Autorizado: Login falhou</STRONG></P><P>Por favor verifique a senha utilizada.</p>"	Response.Write "<center><a href='diary.asp'>Voltar para agenda</a></center>"	Response.EndEnd ifFunction FormataData(Data)If Data <> "" ThenFormataData=Right("0"&DatePart("d",Data),2)&"/"&Right("0"&DatePart("m",Data),2)&"/"&DatePart("yyyy",Data)&Right("20"&DatePart("yyyy",Data),4)End IfEnd FunctionFunction ChkString(string)	 if string = "" then string = " "	 ChkString = Replace(string, "'", "''")End FunctionStrSql= "Select * from diary where 'dte' = '"&Request("view_Date")&"'"set rs = conn.execute (StrSql)if rs.BOF or rs.EOF then' No records found.  i.e. New record'	StrSql ="insert into diary (dte, text_field) values ('" & request("view_date") & "', '" & chkString(request("txt")) & "')"else' Record found.  i.e. update record.'	StrSql = "update diary SET diary.dte = '"& request("view_date") &"' , text_field = '" & chkString(request("txt")) & "' WHERE id = " & rs("id")End If conn.Execute (strSql)	 >>>>>>>> Linha 39conn.Closeset conn = nothing Response.Redirect ("diary.asp?view_date=" & request("view_date"))%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hardbrasilFaz uma funçãozinha que vai te ajudar bastante...Uso essa função pra ver os valores que estão dentro das variáveis...function debug(valor) response.write(valor) response.end()end functionAí antes do if rs.BOF or rs.EOF then você colocadebug(request("view_date"))Só uma pergunta, você está tirando a linha do execute?Se tiver a consulta num está sendo executada e por isso você num consegue fazer o insert...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então chuck inseri a Função que voce mandou.O que esta acontecendo é que ele esta escrevendo no navegador e não no dia indicado que presume o script.alem do mais esta pausando o script pois não esta executando o Response.Redirect do final.Sobre o Execute, eu tirei apenas para testar mas ele esta no script sim. è ele a solução do problema pois é ele quem insere a informação no banco.Sussa, estamos perto da solução, assim que ficar tudo ok eu posto a versão final pra galera!abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou do jeito q eu te passei, Gravou no BD e tudo...Vê se assim vai...

<!--#include file="dbcon.asp" --><%Session.LCID = 1046if Request.Form("pword") <> "agenda" then	Response.AddHeader "401.1 Não Autorizado: ", "401.1"	Response.Write "<p><STRONG>Não Autorizado: Login falhou</STRONG></P><P>Por favor verifique a senha utilizada.</p>"	Response.Write "<center><a href='diary.asp'>Voltar para agenda</a></center>"	Response.End End ifFunction FormataData(Data)If Data <> "" ThenFormataData=Right("0"&DatePart("d",Data),2)&"/"&Right("0"&DatePart("m",Data),2)&"/"&DatePart("yyyy",Data)&Right("20"&DatePart("yyyy",Data),4)End IfEnd FunctionFunction ChkString(string)	 if string = "" then string = " "	 ChkString = Replace(string, "'", "''")End FunctionStrSql= "Select * from diary where 'dte' = '"&Request("view_Date")&"'" set rs = conn.execute (StrSql)if rs.BOF or rs.EOF then ' No records found.  i.e. New record'	StrSql ="insert into diary (id, dte, text_field) values ( NULL ,' " & request("view_date") & " ', ' " &chkString(request("txt")) &"')"else ' Record found.  i.e. update record.'	StrSql = "update diary SET dte = '"& request("view_date") &"' , text_field = '" & chkString(request("txt")) & "' WHERE id = " & rs("id")End Ifconn.Execute (strSql)conn.Closeset conn = nothingResponse.Redirect ("diary.asp?view_date=" & request("view_date"))

Ps: a função do chuck norris é para debugar o problema, exibindo o valor que está atribuído a variavel, ou seja, verificar se está chegando no destino (BD) de acordo...A função mostra o valor da variavel na tela do navegador do jeito que chegaria ao BD, e finaliza o Script com Response.End() para que o servidor pare de executar o Script fazendo com que você possa vizualizar a instrução na tela...Depois de verificar a String na tela, você volta ao script e remova a Function!

QQ coisa Post ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Rodrigo.

 

mesmo problema

 

You tried to assign the Null value to a variable that is not a Variant data type na linha 39

 

conn.Execute (strSql)

mas eu andei pesquisando e pode ser problema de escrita na pasta do bd eu ja solicitei ao Host para ver se esta tudo ok.

dai posto novamente pra ver se ficou 10.

 

abs galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo mesmo problema cara.

 

erro nessa linha conn.Execute (strSql)

 

ou tried to assign the Null value (esta dizendo que eu tentei inserir um valor nulo)

 

Eu atualizei os arquivos do download.

 

Me diga, o seu script escreve na agenda no dia em que você inseriu a senha?

 

Outra coisa, você esta usando seu server local ou web ?

 

abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o campo ID estiver como autnumeração coloque assim' No records found. i.e. New record' StrSql ="insert into diary (dte, text_field) values (' " & request("view_date") & " ', ' " &chkString(request("txt")) &"')"se mesmo assim der erro faça antes do conn.execute issoresponse.write(strsql)response.endai vai aparecer o sql que está sendo montado, compare para ver se os dados estão corretos e verifique se algum campo da tabela está como requerido no banco de dados

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.