Problemas do MySQL com DBExpress
Estou tentando fazer uma conexao MySQL 5.0 com os componentes do DBExpress.
Coloco um SQLConnection, faço as configuraçãoes e ativo o mesmo.OK.
Olhem agora o que acontece.
Coloco um coponente sqlQuery conectado ao SQLConnection e coloco no mesmo a seguinte query:Insert into Produto (pr_cod, pr_des) Values (:cod, :des). Executando a mesma com os devidos parametros o registro novo é inserido na tabela produto sem problemas algum.
No mesmo sqlquery, resolvo fazer uma consulta: Select * from Produto. Acontece o seguinte erro: Access violation At Address 149bb930 in Module ´dbxMys30.dll´ Read address.
Alguém sabe me expicar como resolver o problema?
Uso o delphi 2006 e como disse anteriormente o MySQL 5.0
Coloco um SQLConnection, faço as configuraçãoes e ativo o mesmo.OK.
Olhem agora o que acontece.
Coloco um coponente sqlQuery conectado ao SQLConnection e coloco no mesmo a seguinte query:Insert into Produto (pr_cod, pr_des) Values (:cod, :des). Executando a mesma com os devidos parametros o registro novo é inserido na tabela produto sem problemas algum.
No mesmo sqlquery, resolvo fazer uma consulta: Select * from Produto. Acontece o seguinte erro: Access violation At Address 149bb930 in Module ´dbxMys30.dll´ Read address.
Alguém sabe me expicar como resolver o problema?
Uso o delphi 2006 e como disse anteriormente o MySQL 5.0
Alexrigon
Curtidas 0
Respostas
Adriano Santos
18/07/2006
Compatibilidade, o BDS2006 só é compatível até a versão 4.1.
GOSTEI 0
Adriano Santos
18/07/2006
Compatibilidade, o BDS2006 só é compatível até a versão 4.1.
Aki consegui conectar com a versão 3.23.53
Aki consegui conectar com a versão 3.23.53
GOSTEI 0
Alexrigon
18/07/2006
Caro Adriano,,,
Instalei a versão 4.1 do MySQL e continua o mesmo erro...
Posso dar update, insert que funciona, select continua o erro....
Instalei a versão 3.2... mais não consigo conectar ao banco de dados.
talvez tenha que conectar usando o prompt e aí não sei como fazer...
Instalei a versão 4.1 do MySQL e continua o mesmo erro...
Posso dar update, insert que funciona, select continua o erro....
Instalei a versão 3.2... mais não consigo conectar ao banco de dados.
talvez tenha que conectar usando o prompt e aí não sei como fazer...
GOSTEI 0
Adriano Santos
18/07/2006
Caro Adriano,,,
Instalei a versão 4.1 do MySQL e continua o mesmo erro...
Posso dar update, insert que funciona, select continua o erro....
Instalei a versão 3.2... mais não consigo conectar ao banco de dados.
talvez tenha que conectar usando o prompt e aí não sei como fazer...
Faça um teste: Baixa o exemplo [url=https://www.devmedia.com.br/articles/visualizacomponente2.asp?comp=2245]deste artigo[/url] que escrevi recentemente e veja se conecta. No botão conectar-se põe em comentário as partes que eu conecto no Oracle e Firebird. Testa só a conexão com o MySql.
GOSTEI 0
Alexrigon
18/07/2006
Adriano...
Já tinha visto seu exemplo no site mas ainda não tinha executado o mesmo. Fiz as devidas alterações e ainda assim continua o mesmo erro.
O que me deixa intrigado é que alterações, exclusões no banco de dados são executados sem o erro, acontece apenas quando se usa o comando select...
Um abraço...
Já tinha visto seu exemplo no site mas ainda não tinha executado o mesmo. Fiz as devidas alterações e ainda assim continua o mesmo erro.
O que me deixa intrigado é que alterações, exclusões no banco de dados são executados sem o erro, acontece apenas quando se usa o comando select...
Um abraço...
GOSTEI 0
Adriano Santos
18/07/2006
Passa pra gente o SELECT e como você está usando pra dar uma olhada?
Eu tive uma série de problemas também, mas ai do nada começou a funcionar... :lol:
Eu tive uma série de problemas também, mas ai do nada começou a funcionar... :lol:
GOSTEI 0
Alexrigon
18/07/2006
Usando o MySQL-front criei um banco de dados chamado ´teste´ e nele criei uma tabela chamada ´produto´ com os seguintes campos:
pr_cod - VarChar - 8
pr_des - VarChar - 50
Coloquei um componente SQLConnection (DBExpress) e um SQLQuery.
COnfigurei os parametros do SQLConnection para MySQL e coloquei no
DriverName : MySQL
Database : teste
User_Name:root
Senha : minhaSenha
Propriedade Connected = True ---> Tudo ok. Foi feita a conexão...
No componente SQLQuery na propriedade SQLConnection coloquei o nome do meu SQLConnection. Na propriedade SQL coloquei o seguinte:
Insert Into Produto (pr_cod, pr_des) Values (:cod, :des).
Coloquei um button no form e no evento onClick o seguinte:
SQLQuery.Close;
SQLQuery.Params[0].AsString:=´01010010´;
SQLQuery.Params[1].AsString:=´Teste de programa´;
SQLQuery.ExecSQL;
ok.... O registro é inserido no banco de dados.....
Agora o que acontece....
SQLQuery.Close;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add(´Select * from Produto´);
SQlQuery.Open;
Erro... dá o erro ao qual estou tentando achar a solução....
Obrigado....
pr_cod - VarChar - 8
pr_des - VarChar - 50
Coloquei um componente SQLConnection (DBExpress) e um SQLQuery.
COnfigurei os parametros do SQLConnection para MySQL e coloquei no
DriverName : MySQL
Database : teste
User_Name:root
Senha : minhaSenha
Propriedade Connected = True ---> Tudo ok. Foi feita a conexão...
No componente SQLQuery na propriedade SQLConnection coloquei o nome do meu SQLConnection. Na propriedade SQL coloquei o seguinte:
Insert Into Produto (pr_cod, pr_des) Values (:cod, :des).
Coloquei um button no form e no evento onClick o seguinte:
SQLQuery.Close;
SQLQuery.Params[0].AsString:=´01010010´;
SQLQuery.Params[1].AsString:=´Teste de programa´;
SQLQuery.ExecSQL;
ok.... O registro é inserido no banco de dados.....
Agora o que acontece....
SQLQuery.Close;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add(´Select * from Produto´);
SQlQuery.Open;
Erro... dá o erro ao qual estou tentando achar a solução....
Obrigado....
GOSTEI 0
Adriano Santos
18/07/2006
Não acredito que seja isso tah, mas corrija duas coisas no seu projeto.
[list:d044dfe5df]
[*:d044dfe5df] Coloque os comandos SQL todos em maiúsculas.
[*:d044dfe5df] Coloque um DataSetProvider conectado ao SqlQuery e um ClientDataSet conectado ao Provider.
[*:d044dfe5df] Abra o ClientDataSet e não o SqlQuery.
[/list:u:d044dfe5df]
Mas como te falei, não acredito que seja isso. Tah mais pra driver do que pra problemas de programação.
Verifique se o System32 vc possui a DLL dbxmys30.dll, se não copie-a para a pasta e veja se funciona.
[list:d044dfe5df]
[*:d044dfe5df] Coloque os comandos SQL todos em maiúsculas.
[*:d044dfe5df] Coloque um DataSetProvider conectado ao SqlQuery e um ClientDataSet conectado ao Provider.
[*:d044dfe5df] Abra o ClientDataSet e não o SqlQuery.
[/list:u:d044dfe5df]
Mas como te falei, não acredito que seja isso. Tah mais pra driver do que pra problemas de programação.
Verifique se o System32 vc possui a DLL dbxmys30.dll, se não copie-a para a pasta e veja se funciona.
GOSTEI 0
Alexrigon
18/07/2006
Vou tentar o que me sugeriu...depois volto..
GOSTEI 0
Alexrigon
18/07/2006
Caro Adriano... Infelizmente não funcionou.
Estou tentando usar o MySQL para aprendizado...
Usando os componentes da paleta dbGO (AdoConnection) e usando o driver odbc 3.51 do MySQL consigo fazer a conexão e tudo funciona normalmente....
Qual seria mais rápido? Usando os Componentes DBExpress ou dbGO?
Usando os componentes DBExpress posso utilizar as transações o que na realidade preciso em minhas aplicações uma vez que atualizo cadastro de produtos e outros na minha aplicação. Posso usar também transações usando os componentes da paleta dbGo?.
Hoje utilizo o Firebird e funciona sem problemas...
Estou tentando usar o MySQL para aprendizado...
Usando os componentes da paleta dbGO (AdoConnection) e usando o driver odbc 3.51 do MySQL consigo fazer a conexão e tudo funciona normalmente....
Qual seria mais rápido? Usando os Componentes DBExpress ou dbGO?
Usando os componentes DBExpress posso utilizar as transações o que na realidade preciso em minhas aplicações uma vez que atualizo cadastro de produtos e outros na minha aplicação. Posso usar também transações usando os componentes da paleta dbGo?.
Hoje utilizo o Firebird e funciona sem problemas...
GOSTEI 0
Adriano Santos
18/07/2006
Caro Adriano... Infelizmente não funcionou.
Estou tentando usar o MySQL para aprendizado...
Usando os componentes da paleta dbGO (AdoConnection) e usando o driver odbc 3.51 do MySQL consigo fazer a conexão e tudo funciona normalmente....
Qual seria mais rápido? Usando os Componentes DBExpress ou dbGO?
Usando os componentes DBExpress posso utilizar as transações o que na realidade preciso em minhas aplicações uma vez que atualizo cadastro de produtos e outros na minha aplicação. Posso usar também transações usando os componentes da paleta dbGo?.
Hoje utilizo o Firebird e funciona sem problemas...
Alex, não conheço estes componentes. Eu, particularmente, uso o mínimo possível de componentes de terceiros. O DBExpress funciona muito bem e não tenho tido problemas com eles.
Quanto a rapidez no desenvolvimento ou mesmo de acesso, também acho o DBX melhor. Tenta usar o exemplo que te passei exatamente do jeito que está, acredito que vc tenha modificado para usar o dbGo, certo?
Dá um visu nestes tópicos sobre dbExpress caso tenha dúvidas:
[url=http://forum.clubedelphi.net/viewtopic.php?t=75051]Mestre/Detalhe dbExpress[/url]
[url=http://forum.clubedelphi.net/viewtopic.php?t=75031&start=0&postdays=0&postorder=asc&highlight=&sid=6c3d12b7f2e7a711939b7662cd0834db]DbExpress Interbase6.5 Delphi7.0[/url]
[url=http://forum.clubedelphi.net/viewtopic.php?t=58547&highlight=sqldataset+++clientdataset]Transações com DbExpress de forma Bidirecional[/url]
GOSTEI 0
Alexrigon
18/07/2006
Ainda não modifiquei para os componentes da paleta dbGo.. Só fiz um teste e o mesmo funciona sem erros com o banco de dados MySQl, inclusive com a versão 5.0.
O que quero mesmo é utilizar os componentes da DBExpress com o MySQL uma vez que os uso no banco de dados Firebird 1.5 e funciona perfeitamente. Como estou acostumado a usá-los, gostaria de continuar usando, só que agora com a conexão MySQL...
Abraços...
O que quero mesmo é utilizar os componentes da DBExpress com o MySQL uma vez que os uso no banco de dados Firebird 1.5 e funciona perfeitamente. Como estou acostumado a usá-los, gostaria de continuar usando, só que agora com a conexão MySQL...
Abraços...
GOSTEI 0
Adriano Santos
18/07/2006
Ainda não modifiquei para os componentes da paleta dbGo.. Só fiz um teste e o mesmo funciona sem erros com o banco de dados MySQl, inclusive com a versão 5.0.
O que quero mesmo é utilizar os componentes da DBExpress com o MySQL uma vez que os uso no banco de dados Firebird 1.5 e funciona perfeitamente. Como estou acostumado a usá-los, gostaria de continuar usando, só que agora com a conexão MySQL...
Abraços...
Nossa, agora me perdi.
Vc usou meu exemplo com FB ou MySQL? Com qual funcionou?
Vc disse que funcionou sem erros inclusive com MySQL 5.0, então qual o problema, pq no meu exemplo uso DBExpress num é isso que precisa?
GOSTEI 0
Alexrigon
18/07/2006
Uso os componentes do DBExpress com o firebird em minhas aplicações e funciona. O seu programa funciona também com o firebird o que não funciona é o DBExpress com o MySQL.
Quando digo que funciona com o MySQL 5.0 é quando utilizo os componentes do delphi da paleta dbGO com o driver odbc do MySQL.
Tanto no seu programa como no meus testes não funciona o DBExpress com o MySQL, e aí não importa a versão do mesmo, não consegui executar o comando Select com nenhuma das versões que tenho (4.1 / 5.0). OK?
Quando digo que funciona com o MySQL 5.0 é quando utilizo os componentes do delphi da paleta dbGO com o driver odbc do MySQL.
Tanto no seu programa como no meus testes não funciona o DBExpress com o MySQL, e aí não importa a versão do mesmo, não consegui executar o comando Select com nenhuma das versões que tenho (4.1 / 5.0). OK?
GOSTEI 0