Ir para conteúdo

POWERED BY:

Arquivado

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

Lúcio Gomes

[Resolvido] Script ASP que registra em access, passar para MySQL

Recommended Posts

Olá pessoal. Eu tenho um sisteminha aqui em ASP que apesar de simples ele é bem funcional, e muito útil para maioria dos projetos que preciso desenvolver (peguei bem o jeito do ASP e gostei muito), pois antes eu só usava em PHP, mas descobri que o pessoal valoriza mais sistemas em asp... enfim, polêmicas à parte...

 

O "problema" é que o sistema que eu fiz ele grava os dados em um DB Access (sabem como é né, iniciante sempre vai no mais fácil), mas agora esse mesmo sistema, eu precisaria que ele gravasse os dados em MySQL (isso mesmo, ASP com MySQL), pois vai precisar gravar vários registros (muitos mesmos) e isso em access ia ficar meio lento e podendo dar problemas. Bom já li que isso é possível, andei pesquisando umas coisas como "MyODBC", enfim, mas ainda to muito perdido, afinal, continuo sendo iniciante, mas agora já sabendo o básico pelo menos.

 

Enfim, cheguei a ler neste site: http://www.aspbrasil.com.br/conteudo/detal...p;Secao=ARTIGOS

e até em outros, que é possível você utilizar o mesmo código dos sistemas e mudar apenas a conexão para passar a registrar, editar, deletar dados em MySQL ao invés de Access, sem precisar mudar mais nada no código. Isso é mesmo verdade, ou é algo bem mais difícil, ou que é mais coisas mas não muito difícil de fazer...?

 

Bom como a data do conteúdo desse site que mostrei é de 20/11/2003, fiquei com receio de segui-lo e os outros também não senti confiança.

 

Então, alguém poderia me esclarecer isso, indicando alguns bons conteúdos (confiáveis) para leitura e tutoriais para seguir para fazer um sistema em asp que registra em Access passar a registrar em MySQL?

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Obs.: Não é necessário migrar, os antigos continuarão em Access e agora um novo sistema/projeto quero que grave em MySQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... sempre usei Access e SQL, nunca mexi com MySql.. maaaaaaaaaaaasssssssssssssssssss....

 

Como os comandos e strings Sql são praticamente iguais em todos os BDs, creio que basta mudar a Connection String para a do MySql e correr pro abraço.. sem maiores problemas...

 

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu li que o comando de data muda do Access ( now() ) pro SQL Server (getDate), se não mudar isso dá erro, mas só isso também, agora de Access pra MySQL que eu to pesquisando não encontrei nada que falasse essa diferença. Enfim, vou tentar então.

 

Aliás, posso confiar nessa conexão desse site:

http://www.aspbrasil.com.br/conteudo/detal...amp;Secao=DICAS

 

Ou daqui:

http://www.aspbrasil.com.br/conteudo/detal...p;Secao=ARTIGOS

 

No caso usando conexão sem DNS seria o meu caso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente o que normalmente dá prablema são nos campos tipo datetime, numeric, decimal do mysql e quanto queremos os ultimos X registros e o random

 

Você precisa alterar a string de conexão e revisar todas as suas querys.

 

Vou listar algumas querys do mysql que difere do ACCESS:

 

SELECT campo FROM tabela ORDER BY id DESC LIMIT 1 ' seleciona apenas o último registro

 

SELECT campo FROM tabela ORDER BY RAND() DESC LIMIT 5 ' seleciona apenas 5 registros e randomiza

 

INSERT INTO tabela (nome,data,preco) VALUES ('jonathandj','2008-02-25', 100.50) 'insere um registro com data e valor

 

DELETE FROM tabela WHERE id=1 'exclui o registro com id 1

 

Lembrando que algumas funções internas são especificas para cada banco, é bom ler o manual quando precisar de algo mais cabeludo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

as dicas que o Jonathan colocou são fundamentais, o que muda é basicamente o SQL, alguns scripts como Paginação sofrem algumas mudaças mais é no máximo 2 linhas, tem até lá no laboratório de script exemplo de scripts que rodam em MySQL!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, entendi. Então, seria mais fácil migrar de SQLServer pra MySQL, já que ambos são SQL? Pois eu tenho tanto a versão access de meu sistema como SQL Serv, só falta agora o MySQL que na minha opinião vai ser o melhor visto a qualidade (robusto por agüentar milhares de registros) e bem mais acessível que o SQL Serv que é muito caro.

 

Baixei alguns scripts também no laboratório de scripts para analisar, mas de fato não estou vendo tantas diferenças não.

 

Eu tava lendo esse artigo do próprio imasters: http://imasters.com.br/artigo/1168/acc...os_tipos_de_da/

 

Pareceu-me bem completo, com explicação detalhada sobre o tipo de campos das tabelas logo na parte 1, e muitas outras coisas, são 4 partes, mas tudo de 2003, não estaria desatualizado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luico ...

 

C?omo nosso colega explicou ai em cima, revisa as querys ... e ta belezinha ...

 

quanto a conecção, eu desenvolvi uma aplicação em ASP para conectar SQL e MYSQL simultaneos .... mais se quizer conectar o ACCESS com o MySQL dá tb ... aconselho a rodar tudu no IIS pois a adaptação dos drivers do "MySQL ConnectorODBC 3.51 - INSTALLER" é facil e rapido ....

 

você poderá rodar com os 2 BD na maquina, ou mesmo conectar com o MYSQL remoto em um server NO Windows... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Se colocar os BDS todos local maravilha, senão você instala o MySQL ConnectorODBC na maquina local "IIS" ;;; não se esqueça de liberar o acesso lá no server MYSQL Remoto, pois normalmente no CPanel tem de configurar o IP remoto que estará acessando o BD ... senão não conseguirá ....

 

E ai vai a string de conecção ...

 

'Abre conexão MYSQL SITE

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

MyobjConn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=SERVIDOR.COM.BR; Port=3306; Option=0; Socket=; Stmt=; Database=BANCODEDADOS; Uid=USUARIO; Pwd=SENHA;"

 

 

Eu estou utilizando esta versão 3.51 ... e funcionou muito bem ...

 

Espero ter ajudado ...

 

Abraço;

Pinga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal.

 

Acabei de migrar todo meu sistema de Access para MySQL e obtive bons resultados, tanto na conexão com o BD como no script em geral. Entretanto, houveram 2 erros que não consegui resolver.

 

Um deles refere-se a data atual, pois ou eu utilizava now() para access ou getDate() para SQLServer, mas no MySQL nenhuma dessas maneiras funcionou para pegar a data atual.

Como eu poderia resolver isso para inserir a data e hora atuais (ex.: aaaa-mm-dd hh:mm:ss) em ASP p/ BD MySQL?

 

E o segundo problema foi em relação ao campo de login. Pois mesmo eu digitando o usuário e senha corretos ele retorna a msg de login inválido. Bom, pode ser que seja por um campo que eu criei como PERMISSAO (BIT - S/N), e no MySQL ele grava 0 ou 1, certo? E não true ou false? Enfim, para recuperar um valor desse campo BIT como eu faço?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no mysql você tem que usar uma função para converter a data, use essa aqui!!

 

<%
Function ConverterDataBanco(ConDataBanco)
	ConDataBanco = Year(ConDataBanco) &"-"& Right("0"&Month(ConDataBanco),2) &"-"& Right("0"&Day(ConDataBanco),2)
	
	ConverterDataBanco = ConDataBanco
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no mysql você tem que usar uma função para converter a data, use essa aqui!!

 

<%
Function ConverterDataBanco(ConDataBanco)
	ConDataBanco = Year(ConDataBanco) &"-"& Right("0"&Month(ConDataBanco),2) &"-"& Right("0"&Day(ConDataBanco),2)
	
	ConverterDataBanco = ConDataBanco
End Function
%>

Opa, muito obrigado Ted K, era isso mesmo que eu precisava, agora a Data esta registrando corretamente. Ah e o problema que eu tinha falado sobre o login, também já resolvi, é que antes estava True/False (no código), sendo que no BD gravava 0/1 e depois eu troquei o True por 1 e continuou dando erro pq estava sem aspas. Agora está tudo certo:

If rsLogin("ATIVO") = "1" Then

Response.Write("OK")

Else

Response.Write("Erro: User Inativo.")

End If

 

Então, posso afirmar que consegui migrar todo meu script que gravava em Access para MySQL sem grandes problemas nem dores de cabeça, mesmo sabendo apenas o básico de ASP. Bom, agradeço também por toda ajuda que vocês deram, afinal, para iniciar eu até estava meio sem coragem, mas é bem simples, poucas alterações mesmo que são necessárias. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

(Tópico Resolvido!)

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.