Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo Djeri de Toledo

Asp+Mysql problema com o campo DATA

Recommended Posts

Ola amigos,

 

Estou com um grande problema:

 

Estou fazendo um formulário em ASP utilizando o banco de dados MYSQL, estou com problema na hora de inserir data de nascimento no banco de dados. Qualquer data que eu colocar ele está inserindo a data 0000-00-00.

 

Por exemplo, se eu colocar, 08/12/2006 ele vai inserir 0000-00-00. Não aparece a data, somente o 0000-00-00.

 

Já inseri o session.LCID = 1046 mas não funcionou....

 

A estrutura do banco de dados é: Imagem Postada

 

Alguém sabe o que pode ser?

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,Ja tento passar a data invertida?Assim: '2006/12/06'ou '2006/12/06 00:00'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve...

 

Conforme mencionei no outro tópico, o problema está no formato que a data está sendo cadastrada...

 

O MySQL utiliza a formatação ANO/MÊS/DIA, e o Session.LCID = 1046, faz o contrário, ou seja, DIA/MES/ANO

 

A solução, no caso, é você criar uma função que inverta essas valores...

 

Um exmplo bem simples, tente cadastrar a data como:

 

data = Day(Now) & "-" & Month(Now) & "-" & Year(Now)

E no seu Insert Into urilize a variável data acima criada, irá funcionar!

 

Qualquer dúvida poste aqui!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu pau na página...

 

A alteração que fiz foi:

 

<%

 

response.buffer = true

response.expires = 0

response.cachecontrol = "private"

session.timeout = 40

session.LCID = 1046

data = Day(Now) & "-" & Month(Now) & "-" & Year(Now)

 

NOME = request.form("NOME")

RAZAO = request.form("RAZAO")

FANTASIA = request.form("FANTASIA")

CPF = request.form("CPF")

RG = request.form("RG")

ENDERECO = request.form("ENDERECO")

BAIRRO = request.form("BAIRRO")

CIDADE = request.form("CIDADE")

UF = request.form("UF")

FONE = request.form("FONE")

FAX = request.form("FAX")

EMAIL = request.form("EMAIL")

CEP = request.form("CEP")

SEXO = request.form("SEXO")

data = request.form("NASCIMENTO")

PASSWORD = request.form("PASSWORD")

 

 

strConnection = "DSN=mysql; DB=xxxx; UID=xxxx; PWD=xxxxxxx"

Set adoDataConn = Server.CreateObject("ADODB.Connection")

adoDataConn.Open strConnection

 

' Faz uma consulta...

 

set rsResult = adoDataConn.execute ("select * from cliente where EMAIL like '" & EMAIL &"' and PASSWORD = '" & PASSWORD &"' order by EMAIL")

 

if not rsResult.eof then

response.redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")

else

 

SQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,data,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "

SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & data & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"

adoDataConn.execute(SQL1)

 

response.redirect("Ok.asp?nome="& Request.Form("NOME"))

 

end if

%>

 

Acho que fiz besteira, perdoem a ignorancia, eu sou iniciante n ASP ehehe

 

Obrigado pela ajuda!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No IE, vá em ferramentas >> Opções da Internet >> Avançado, e em "Mostrar mensagens de erro http amigáveis", deixe desmarcado.. assim retornará a mensagem de erro, e fica mais fácil de saber onde está o problema...Sempre trabalhei com MySQL e datas, tanto local quanto remoto nunca tive problemas, então creio que seja simples de resolver!Abraços!Opa, tava olhando seu código e já achei o problema aqui.. rsrs!Você está utilizando duas variáveis data, ou seja, a última (request.form("data") acaba sobrescrevendo a primeira...Faz o seguinte.. onde você tem:

data = request.form("NASCIMENTO")
Troque por:
data = FormataData(Request.Form("nascimento")
E, na última linha, abaixo do End If, crie a função:
Function FormataData(data)dia = DatePart("d", data)mes = DatePart("m", data)ano = DatePart("yyyy", data)FormataData = ano & "-" & mes & "-" & diaEnd Function
Daí você testa novamente e vê se dá erro.. Abraços!Seu código vai ficar assim:
<%Response.Buffer = TrueResponse.Expires = 0Response.CacheControl = "Private"Session.Timeout = 40Session.LCID = 1046nome = Request.Form("NOME")razao = Request.Form("RAZAO")fantasia = Request.Form("FANTASIA")cpf = Request.Form("CPF")rg = Request.Form("RG")endereco = Request.Form("ENDERECO")bairro = Request.Form("BAIRRO")cidade = Request.Form("CIDADE")uf = Request.Form("UF")fone = Request.Form("FONE")fax = Request.Form("FAX")email = Request.Form("EMAIL")cep = Request.Form("CEP")sexo = Request.Form("SEXO")data = Request.Form("NASCIMENTO")password = Request.Form("PASSWORD")strConnection = "DSN=mysql; DB=XXXXX; UID=XXXXXX; PWD=XXXXXX"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection'Faz uma consulta...Set rsResult = adoDataConn.Execute("SELECT * FROM cliente WHERE EMAIL LIKE '" & EMAIL &"' AND PASSWORD = '" & PASSWORD &"' ORDER BY EMAIL")If Not rsResult.Eof Then	Response.Redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")Else	SQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,DATA,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "	SQL1 = SQL1 & "('" & nome & "','" & razao & "','" & fantasia & "','" & data & "','" & cpf &"','" & rg &"','" & endereco &"','" & bairro & "','" & cidade &"','" & uf &"','" & fone &"','" & fax &"','" & email &"','" & cep & "','" & sexo &"','" & password &"')"	adoDataConn.Execute(SQL1)		Response.Redirect("Ok.asp?nome="& Request.Form("NOME"))End If %>
PS: Cuidado com maiusculas e minusculas.. defina um padrão de trabalho tanto para as tabelas do DB quanto para as variaveis ASP..PS2: cuidado ao postar seus logins e senhas de banco de dados ;)Abraços!

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046data = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")data = request.form("NASCIMENTO")PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=XXXXXX; UID=XXXXXX; PWD=XXXXXX"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...set rsResult = adoDataConn.execute ("select * from cliente where EMAIL like '" & EMAIL &"' and PASSWORD = '" & PASSWORD &"' order by EMAIL")if not rsResult.eof thenresponse.redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")elseSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,data,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & data & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe deu erro novamente....

desmarquei a oção que você falou, e continuou sem informar o erro...

vou postar o codigo com a alteração para você ver se está certo:

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO")PASSWORD = request.form("PASSWORD")strConnection = "DSN=xxxxxx; DB=xxxx; UID=xxxx; PWD=xxxxSet adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...set rsResult = adoDataConn.execute ("select * from cliente where EMAIL like '" & EMAIL &"' and PASSWORD = '" & PASSWORD &"' order by EMAIL")if not rsResult.eof thenresponse.redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")elseSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz conforme você passou e deu erro novamente hehehe

 

eh esqueci de tirar a senha, vacilei mesmo oh... Mas jah editei as menagens na qual tinha as senhas, por favor, você editar as mnsagens que você inseriu o codigo e tirar a senha para mim???

 

Olha como ficou o codigo novo de acordo com as suas alterações:

 

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO")PASSWORD = request.form("PASSWORD")strConnection = "DSN=XXXXXX; DB=XXXXXX; UID=XXXXXX; PWD=XXXXXX"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...set rsResult = adoDataConn.execute ("select * from cliente where EMAIL like '" & EMAIL &"' and PASSWORD = '" & PASSWORD &"' order by EMAIL")if not rsResult.eof thenresponse.redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")elseSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

salve..Cara, poste o erro que tá dando, sem ele fica difícil saber o que esta acontecendo... com o erro, podemos analisar diretamente o q estiver errado!PS: Editei os posts!Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o erro que tá dando:

 

Microsoft VBScript compilation  error '800a03ee'Expected ')'/fidelidade/cadastra2.asp, line 24DATA = FormataData(Request.Form("NASCIMENTO")

 

Ou seja, na linha 24 está faltando um ")" no final.. ficaria assim:

 

#Linha 24:

DATA = FormataData(Request.Form("NASCIMENTO"))

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve...

 

No MySQL ele vai salvar sempre assim: YYYY/MM/DD (Ano/Mês/Dia)..

 

Para formatar no padrão brasileiro, você deve criar uma função para converter...

 

Se você resgata o valor assim:

 

Response.Write(RS("data"))

Você deve fazer assim:

 

Response.Write(ConverteData(RS("data"))

E na página criar a função que converta a data.. exemplo:

 

Function ConverteData(data)dia = DatePart("d", data)mes = DatePart("m", data)ano = DatePart("yyyy",data)ConverteData = dia & "/" & mes & "/" & anoEnd Function

Qualquer dúvida poste ai!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza cara....Deu certo....Você quebrou mó galho para mim, eu tava ficando louco com esse MYSQL... Eu tinha feito com banco de dados Access e tava funcionando tudo normal, ae tive que adaptar para o MYSQL e fiquei perdido hehe nunca tinha usado ele antes...Obrigado pela ajuda cara, você é gente boa!!Abraçosss

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.