Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2006
beatriz g beatriz g is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
beatriz g Va por buen camino
consulta unidireccional

Hola hola, tengo un problema con un select, estoy programando una aplicacion para acceder a una base de datos mysql y en añadido un componete TSQLQuery para realizar una consulta, tengo el siguinete codigo para ejecutar la consulta:

query_pe.SQL.Clear;
query_pe.SQL.Add('select * from personas p, prestaciones_economicas pe');
query_pe.SQL.Add('where (p.expediente=1 and p.id_p=pe.id_p)');
query_pe.ParamByName('p1').AsString:=e_e.Text;
query_pe.Active:=True;
query_pe.Open;


Hasta aqui bien, pero ahora quiero ir avanzando y retrocediendo en la consulta y que me muestre los distinitos datos devueltos. Para avanzar no hay problema ( con query_pe.Next) pero al retroceder utilizo la siguiente instruccion:
query_pe.Prior;
Aqui viene el problema, tengo el siguiente error al ejecutar esta instruccion:

query_pe: Operation not allowed on a unidirectional dataset

vamos que me dice que la consulta es unidirecciona y no puedo ir para atras.
Gracias
Responder Con Cita
  #2  
Antiguo 18-08-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Debe tener alguna propiedad unidirectional, la pones a true o false;
Responder Con Cita
  #3  
Antiguo 18-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho no es posible y quizá este fragmento de la ayuda de Delphi clarifique:

Cita:
TSQLQuery is a unidirectional dataset. Unlike other datasets, unidirectional datasets do not buffer multiple records in memory. Because of this, you can only navigate using the First and Next methods. There is no built-in editing support: you can only edit the data in an SQL query by explicitly creating an SQL UPDATE command or by connecting the dataset to a client dataset using a provider. Features that require buffering multiple records, such as filters or lookup fields, are not available.filters or lookup fields, are not available.
Y aunque no lo diga explícitamente, no se puede conectar una de estas componentes a un DBGrid ni cualquier control que invlucre múltiples registros al mismo tiempo.

Tendrás que usar un ClientDataSet para poder navegar en ambas direciones y editar.

// Saludos
Responder Con Cita
  #4  
Antiguo 18-08-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman
De hecho no es posible y quizá este fragmento de la ayuda de Delphi clarifique:
Y aunque no lo diga explícitamente, no se puede conectar una de estas componentes a un DBGrid ni cualquier control que invlucre múltiples registros al mismo tiempo.

Tendrás que usar un ClientDataSet para poder navegar en ambas direciones y editar.

// Saludos
Entonces, imagino que ese TSQLQuery para MySql debe ser el homólogo en IBX=TIBsql, en FIBplus=TpFIBquery o en MDO=TMDOsql

Responder Con Cita
  #5  
Antiguo 18-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi
Entonces, imagino que ese TSQLQuery para MySql debe ser el homólogo en IBX=TIBsql, en FIBplus=TpFIBquery o en MDO=TMDOsql

Posiblemente así sea. Pero TSQLQuery no es realmente de MySql sino de dbExpress, así que te permite conectar a diversos motores.

// Saludos
Responder Con Cita
  #6  
Antiguo 23-08-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 19
anghell77 Va por buen camino
Una cuestión encaminada con el componente TSQLQuery.....
No hay un componente denominado MySQL...o MyDac?....algo así que no lo recuerdo bien, pero que todos los componentes de ese elemento(paquete) se denominan "MyQuery", "MySQLConnection", "My....etc"???

Digo, es sólo para despejar la duda....yo creo haberlo conocido, o ando tan errado que es del mismo que hablan??

{Saludos}
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #7  
Antiguo 23-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Son dos cosas distintas. El TSQLQuery es parte de dbExpress y dbExpress te permite conectar a varios motores, un poco al estilo de ODBC. Las componentes MyDac son exclusivas para MySQl.

// Saludos
Responder Con Cita
  #8  
Antiguo 24-08-2006
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
Prueba a utilizar componentes para acceder a base de datos que contengan la posibilidad de poner a true or false la propiedad unidireccional.
Por ejemplo en www.crlab.com tienes unos componentes para mysql que si lo hacen. No son gratuitos pero son buenos y funcionan bien y son rápidos.
Por cierto, no me llevo comision. Yo utilizo los de Oracle y estoy muy contento con ellos.
Responder Con Cita
  #9  
Antiguo 13-09-2006
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
Question

hola que tal.

entonses quiere decir que con los componentes de FIBplus no se puede conectar a DBgrid? para mostrar una consulta?



saludos
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #10  
Antiguo 13-09-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por sakuragi
hola que tal.

entonses quiere decir que con los componentes de FIBplus no se puede conectar a DBgrid? para mostrar una consulta?

saludos
¿Dónde pone eso?, por supuesto que se puede.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 00:38:24.


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