Ir para conteúdo

POWERED BY:

Arquivado

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

edsonjose.pr

[Resolvido] Migrando do Access para Mysql

Recommended Posts

Olá Pessoal

 

Mudei de access para mysql e estou encontrando algumas dificuldades, já vi varios tópicos no forum mas não consegui resolver, por isto estou postando minha dúvida, Quando vou fazer uma alteração de registro acontece este erro:

 

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

 

[MySQL][ODBC 3.51 Driver][mysqld-4.1.18-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCTROW Eventos SET Evento='nomedoevento', Release='descrição do release' at line 1

 

 

Esta é a string que estou usando para atualizar

 

'Atualiza os dados

 

ASP
strSQL = "UPDATE DISTINCTROW Eventos SET Evento='" & formEvento & "', Release='" & formRelease & "', DataInicio='" & formDataInicio & "', DataFim='" & formDataFim & "', Realizacao='" & formRealizacao & "', Sede='" & formSede & "', Cidade='" & formCidade & "', Estado='" & formEstado & "', Informacoes='" & formInfo & "', Cobertura='" & formCobertura & "', Quem='" & Session("Nome") & "' WHERE idEvento=" & idEvento & ""

 

Executa 'Executa Subrotina

 

 

Também verifique que no momento que faço uma inclusão, não está gravando nenhum campo data no bd, estou usando tipo datetime

 

 

'Insere os dados

 

ASP
strSQL = "INSERT INTO Eventos (Evento,Release,DataInicio,DataFim,Realizacao,Sede,Cidade,Estado,Informacoes,Cob

rtura,Quem,Quando) " &_

            "Values ('" & formEvento & "','" & formRelease & "','" & formDataInicio & "','" & formDataFim & "','" & formRealizacao & "','" & formSede & "','" & formCidade & "','" & formEstado & "','" & formInfo & "','" & formCobertura & "','" & Session("Nome") & "','" &  Now & "')"

 

Executa 'Subrotina

 

 

Alguem pode me dar uma ajuda por favor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bote o campo de data no formato Date se possível e segue o tratamento de datas

 

 

ASP
DataInicio = Year(formDataInicio) &"-"& Right("0"&Month(formDataInicio),2) &"-"& Right("0"&Day(formDataInicio),2)

DataFim = Year(formDataFim) &"-"& Right("0"&Month(formDataFim),2) &"-"& Right("0"&Day(formDataFim),2)

 

strSQL = "UPDATE Eventos SET Evento = '"&formEvento&"', Release = '"&formRelease&"', DataInicio = '" & DataInicio & "', DataFim='" & DataFim & "', Realizacao='" & formRealizacao & "', Sede='" & formSede & "', Cidade='" & formCidade & "', Estado='" & formEstado & "', Informacoes='" & formInfo & "', Cobertura='" & formCobertura & "', Quem='" & Session("Nome") & "' WHERE idEvento=" & idEvento & ""

 

o mesmo tratamento de datas no insert

 

ASP
DataInicio = Year(formDataInicio) &"-"& Right("0"&Month(formDataInicio),2) &"-"& Right("0"&Day(formDataInicio),2)

DataFim = Year(formDataFim) &"-"& Right("0"&Month(formDataFim),2) &"-"& Right("0"&Day(formDataFim),2)

 

strSQL = "INSERT INTO Eventos (Evento, Release, DataInicio, DataFim, Realizacao, Sede, Cidade, Estado, Informacoes, Cob

rtura, Quem, Quando) Values ('" & formEvento & "','" & formRelease & "','" & DataInicio & "','" & DataFim & "','" & formRealizacao & "','" & formSede & "','" & formCidade & "','" & formEstado & "','" & formInfo & "','" & formCobertura & "','" & Session("Nome") & "','" & Now & "')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função é essa aqui!

 

ASP
DataInicio = Year(formDataInicio) &"-"& Right("0"&Month(formDataInicio),2) &"-"& Right("0"&Day(formDataInicio),2)

 

pois é o formato válido pelo MySQL e ñ esqueça o LCID no topo da página!!!

 

na hora de chamar a data, pode chamar normalmente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu ted K, consegui fazer parte das alterações, em alguns campos alterei para date, e outros deixei como datetime, utilizei esta função aqui do forum, se não estou enganado foi você que postou.

 

 

 

<%
Function DataMySQL(sData)
dim sDia, sMes, sHoras, sMinutos, sSegundos

	sDia = Day(sData)
	sMes = Month(sData)
	sHoras  = Hour( sData )
	sMinutos	= Minute( sData )
	sSegundos	= Second( sData )
	
	If sDia <= 9 Then sDia = "0" & sDia 
	If sMes <= 9 Then sMes = "0" & sMes 
	If sHoras <= 9 Then sHoras = "0" & sHoras
	If sMinutos <= 9 Then sMinutos = "0" & sMinutos
	If sSegundos <= 9 Then sSegundos = "0" & sSegundos
	
	DataMySQL = Year(sData) & "-" & sMes & "-" & sDia & " " & sHoras & ":" & sMinutos & ":" & sSegundos

End Function
%>

 

Ficou assim:

 

 

'Insere os dados
   strSQL = "INSERT INTO Eventos (Evento,Release,DataInicio,DataFim,Realizacao,Sede,Cidade,Estado,Informacoes,
Cob
rtura,Quem,Quando) " &_ 
			"Values ('" & formEvento & "','" & formRelease & "','" & [b]DataMySQL[/b](formDataInicio) & "','" & [b]DataMySQL[/b](formDataFim) & "','" & formRealizacao & "','" & formSede & "','" & formCidade & "','" & formEstado & "','" & formInfo & "','" & formCobertura & "','" & Session("Nome") & "','" &  [b]DataMySQL[/b](Now) & "')"

 

 

No caso de registros inseridos depois da migração, consigo fazer alterações e salva certo no bd, em registros antigos vindo do access não estão alterando no bd, oque pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo: Alterei uma descrição de um evento, só que no bd não foi alterado, não deu erro no momento da alteração.

 

Segue os campos:

 

`idEvento` int(11) NOT NULL auto_increment,

`Evento` varchar(100) default NULL,

`Release` varchar(255) default NULL,

`DataInicio` date default NULL,

`DataFim` date default NULL,

`Realizacao` varchar(100) default NULL,

`Sede` varchar(50) default NULL,

`Cidade` varchar(50) default NULL,

`Estado` varchar(2) default NULL,

`Informacoes` varchar(100) default NULL,

`Cobertura` int(11) default '0',

`Quem` varchar(50) default NULL,

`Quando` datetime default NULL,

PRIMARY KEY (`idEvento`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo: Alterei uma descrição de um evento, só que no bd não foi alterado, não deu erro no momento da alteração.

 

Segue os campos:

 

`idEvento` int(11) NOT NULL auto_increment,

`Evento` varchar(100) default NULL,

`Release` varchar(255) default NULL,

`DataInicio` date default NULL,

`DataFim` date default NULL,

`Realizacao` varchar(100) default NULL,

`Sede` varchar(50) default NULL,

`Cidade` varchar(50) default NULL,

`Estado` varchar(2) default NULL,

`Informacoes` varchar(100) default NULL,

`Cobertura` int(11) default '0',

`Quem` varchar(50) default NULL,

`Quando` datetime default NULL,

PRIMARY KEY (`idEvento`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

 

O Campo alterado foi este Release varchar(255) default NULL,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queria aproveitar o tópico pois uma dúvida parecida.

Eu migrei também do access para o mysql e tive um problema com a exibição da data, que aparece na ordem "mes, dia e ano".

Como faço para aparecer na ordem "dia, mês e ano"?

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou o LCID no topo da página após o Language?

 

ASP
<% Session.LCID = 1046 %>

Nunca tinha usado esse tipo de configuração.

Estou no estágio intermediário do ASP. Você poderia me indicar um lugar com mais informações como essa? Não conhecia.

Valeu!

 

Edit: Hoje a data apareceu no padrão brasileiro, e eu não fiz nada, que estranho.

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.