Fórum Problemas do MySQL com DBExpress #325585

18/07/2006

0

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


Alexrigon

Alexrigon

Responder

Posts

18/07/2006

Adriano Santos

Compatibilidade, o BDS2006 só é compatível até a versão 4.1.


Responder

Gostei + 0

18/07/2006

Adriano Santos

Compatibilidade, o BDS2006 só é compatível até a versão 4.1.
Aki consegui conectar com a versão 3.23.53


Responder

Gostei + 0

18/07/2006

Alexrigon

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...


Responder

Gostei + 0

18/07/2006

Adriano Santos

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.


Responder

Gostei + 0

19/07/2006

Alexrigon

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...


Responder

Gostei + 0

19/07/2006

Adriano Santos

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:


Responder

Gostei + 0

19/07/2006

Alexrigon

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....


Responder

Gostei + 0

19/07/2006

Adriano Santos

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.


Responder

Gostei + 0

19/07/2006

Alexrigon

Vou tentar o que me sugeriu...depois volto..


Responder

Gostei + 0

19/07/2006

Alexrigon

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...


Responder

Gostei + 0

19/07/2006

Adriano Santos

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]


Responder

Gostei + 0

19/07/2006

Alexrigon

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...


Responder

Gostei + 0

19/07/2006

Adriano Santos

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?


Responder

Gostei + 0

19/07/2006

Alexrigon

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?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar