Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   select con dbexpress (https://www.clubdelphi.com/foros/showthread.php?t=68318)

study 07-06-2010 21:50:20

select con dbexpress
 
Hola de nuevo:

Esta vez los molesto con la siguiente duda. LLevo muy poco tiempo trabajando con delphi y hasta ahora habia utilizado la libreria zeosdbo para lo que es acceso a base de datos. Pero al parecer esta no funciona muy bien con las ultimas versiones de delphi por lo cual estoy comenzando a utilizar dbexpress.

Hasta ahora estoy utilizando (como en zeos) un sqlconnection y un sqlquery. Si lo que quiero es hacer un insert o un update no tengo problemas ya que utilizo los metodos miquery.sql.add() para cargar mi sql y miquery.exectsql() para ejecutarlos.

El problema viene cuando quiero hacer una consulta. Cargo mi sql una vez mas con miquery.sql.add() pero no se ejecuta con el metodo miquery.open() ni con miquery.exectsql();

Si alguien me pudiera dar un pequeño ejemplo de query con dbexpress (usando la menor cantidad de componenetes visuales posibles) le estaria muy agradecido.

Desde ya muchas gracias.

JosepGA 08-06-2010 09:21:22

Hola,

puedes usar el tSimpleDataSet, especificas la Conexión en
Código Delphi [-]
SimpleDataSet.Connection
y luego la sentencia SQL en
Código Delphi [-]
SimpleDataSet.DataSet.CommandText
Para activar la consulta haces
Código Delphi [-]
SimpleDataSet.Active := TRUE
y ya puedes leer la consulta pudiendo navegar entre los registros, buscar, añadir, borrar, etc.... Para guardar los cambios debes usar la instrucción
Código Delphi [-]
SimpleDataSet.ApplyUpdates()
.

Un saludo

study 08-06-2010 15:43:24

Primero, muchisimas gracias. Segundo, esto de delphi me esta costando (yo vengo de php) y tercero no me funciona, me sale el mismo error que con el sqlquery:

First chance exception at $7C812AFB. Exception class EAccessViolation with message 'Access violation at address 00DA8564 in module 'dbxmys.dll'. Read of address 00000000'. Process dbex.exe (2004).

Y despues un simpatico cartelito que dice "error catastrofico" (me alegro la mañana)

JosepGA 10-06-2010 12:47:38

Veo que trabajas con MySQL, no te puedo ayudar mucho en la configuración, pero me da a que puede ser la configuración de la conexión, si activas la conexión, sin abrir una tabla, ¿ Te da tambien el error ?

mcs 10-06-2010 12:52:24

Cita:

Empezado por study (Mensaje 366566)
Primero, muchisimas gracias. Segundo, esto de delphi me esta costando (yo vengo de php) y tercero no me funciona, me sale el mismo error que con el sqlquery:

First chance exception at $7C812AFB. Exception class EAccessViolation with message 'Access violation at address 00DA8564 in module 'dbxmys.dll'. Read of address 00000000'. Process dbex.exe (2004).

Y despues un simpatico cartelito que dice "error catastrofico" (me alegro la mañana)

Por el tipo de error (EAccessViolation), diría que estás intentando llamar a una función de un objecto no inicializado o así. Tendrías que buscar en que línea del programa te falla, poner un breakpoint allí, y cuando el programa se pare, mirar todas las variables. Seguro que tienes una con valor "nil".

study 10-06-2010 15:47:42

Ley por ahí que el problema podria tener algo que ver con el driver que estoy usando (estoy usando el mismo que usaba para zeos). Les cuento que por ahora lo solucione con unos componentes especiales para mysql que adquirí en un sitio que se llama algo así como devart o algo por el estilo (total el que paga es el jefe). La verdad que esto me esta funcionando muy bien.

Respecto a lo de usar objetos no inicializados, lo dudo, ya que para llamar a otros metodos funcionan perfecto (al igual que para realizar escrituras en la db), el problema se presentaba a la hora de la lectura.

Muchisimas gracias por su consejo, la verdad esta muy bueno el foro. Salu2.

felipe88 10-06-2010 16:58:31

Yo te aconsejaría revisar los componentes de conexión, usalo con el ClientDataSet para pasar los query mediante la propiedad CommadText.


Saludos!

study 10-06-2010 17:10:24

Eso ya lo habia probado (de hecho me pase dos días haciendo pruebas) y nada, pasaba lo mismo. Igual con estos componentes (MyDac) la verdad estoy bastante bien.

JosepGA 11-06-2010 10:51:55

hola,

me alegro de que lo hayas solucionado, yo tambien uso los Corelab para Firebird y estoy muy contento con ellos.

Un saludo


La franja horaria es GMT +2. Ahora son las 20:48:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi