Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ElMug.

No conozco el componente dataset de Lazarus, pero si es similar al TSQLQuery podrías lanzar una sentencia SQL como te menciona roman.

Con un TSQLQuery sería:
Código Delphi [-]
...
  SQLQuery1.Close;
  SQLQuery1.SQL.Text:= 'DELETE FROM NOMBRE_DE_TU_TABLA';
  SQLQuery1.ExecSQL(True);
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 09-08-2012
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 ecfisa Ver Mensaje
No conozco el componente dataset de Lazarus
Supongo que, al igual que en delphi, dataset es la clase base de todos los components de acceso a datos. SQLQuery sería un de sus derivados.

// Saludos
Responder Con Cita
  #3  
Antiguo 13-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Hola amigos,

Una manera de vaciar el dataset es mandar un query de select que retorne NADA.

El problema es si se va a hacer por codigo, tal vez hay que hallar un query que lo haga. Si se hace manual, ya corriendo el programa, se llena una frase con algo que garantice que no califca el query. Por ejemplo, para Empleado "Salario = 0.001".

O tal vez un query a una tabla que no existe, con un nombre muy remoto, como "Select * from sdfasdu2cc42 where ..." Esto, si trabaja, si se puede codificar, creo.
Responder Con Cita
  #4  
Antiguo 13-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ElMug Ver Mensaje
Una manera de vaciar el dataset es mandar un query de select que retorne NADA.
Hola.

A ver... por vaciar el dataset yo interpreto borrar sus datos, pero si lo que deseabas era realizar una consulta vacía ("que retorne NADA"), basta con hacer:
Código SQL [-]
SELECT * FROM NOMBRE_DE_TU_TABLA WHERE 1 = 2

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-08-2012 a las 19:05:47. Razón: ortografía
Responder Con Cita
  #5  
Antiguo 13-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

A ver... por vaciar el dataset yo interpreto borrar sus datos, pero si lo que deseabas era realizar una consulta vacía ("que retorne NADA"), basta con hacer:
Código SQL [-]SELECT * FROM NOMBRE_DE_TU_TABLA WHERE 1 = 2


Saludos.
Si, hay muchas maneras, pero si se quiere codificar, el problema es que no siempre sabras que tabla o que base de datos se va a abrir.

Esto se me ha ofrecido para rodearle a un bug que creo que se relaciona con algun(os) componentes base (creo que el DBGrid) de Lazarus, y no lo pude solucionar.

Tampoco vaciar el dataset me resolvio el problema. Algo dificil de explicar, y ya lo ando resolviendo usando otros componentes.

Gracias!
Responder Con Cita
  #6  
Antiguo 13-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por ElMug Ver Mensaje
Si, hay muchas maneras, pero si se quiere codificar, el problema es que no siempre sabras que tabla o que base de datos se va a abrir.
¡¡¡Cómo que no vas a saber qué tabla o base de datos vas a abrir!!!

Cita:
Empezado por ElMug Ver Mensaje
Esto se me ha ofrecido para rodearle a un bug que creo que se relaciona con algun(os) componentes base (creo que el DBGrid) de Lazarus, y no lo pude solucionar.
¿Y a qué bug haces referencia?

Cita:
Empezado por ElMug Ver Mensaje
Tampoco vaciar el dataset me resolvio el problema. Algo dificil de explicar, y ya lo ando resolviendo usando otros componentes.
¿Difícil de explicar?, ¿otros componentes?
Responder Con Cita
  #7  
Antiguo 13-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Cómo que no vas a saber qué tabla o base de datos vas a abrir!!!


¿Y a qué bug haces referencia?


¿Difícil de explicar?, ¿otros componentes?
Bueno, una base de datos tendra que estar conectada, pero no se necesita saber el nombre, cuando ya esta uno conectado.

Igualmente, SQL queries son independientes de estar atados a una tabla. La tabla se especifica en el SQL query. Mi aplicacion arranca sin nombre de base de datos, y sin tablas, y el usuario especifica ya al usarla.

El problema que me encontre es con SQLite3, al correr codigo que abre Blobs o Memos durante OnColEnter. Y es que para jalar los datos usa el nombre de la columna (manda un Query).

Eso trabaja bien, pero al mandar un query a OTRA tabla, se regresa un error diciendo que la columna "X" no existe. La columna X pertenece a la tabla anterior.

Monitoreo el SQL que manda la aplicacion, y NO TIENE NADA que ver con la columna X.

La verdad es que esto ya lo doy por "bug" (despues de muchismos analisis y pruebas) de DBGrid de Lazarus, pues la aplicacion trabaja perfectamente mientras no mande un query a otra tabla. Y por lo pronto no le veo el merito a discutir esto mas alla. Tal vez despues.

Gracias por el interes.

P.S., tambien, con el codigo identico, mientras no se accesen Blobs(imagenes) ni Memos (dentro de OnColEnter), SI SE PUEDE mandar queries a OTRA tabla, perfectamente.

Última edición por ElMug fecha: 13-08-2012 a las 21:42:10.
Responder Con Cita
  #8  
Antiguo 13-08-2012
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 ElMug Ver Mensaje
Si, hay muchas maneras, pero si se quiere codificar, el problema es que no siempre sabras que tabla o que base de datos se va a abrir.
En algunos motores (SQLite, MySQL, por ejemplo) puede hacerse esto:

Código SQL [-]
select 1 limit 0;

que regresa un resultado vacío sin tener que referirse a una base o tabla específica.

// Saludos
Responder Con Cita
  #9  
Antiguo 13-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Código SQL [-]select 1 limit 0;
Qué curioso, sin especificar ninguna tabla.
En firebird se puede hacer que devuelva cero registros indicando alguna tabla del sistema:

Código SQL [-]
select first 0 * from RDB$DATABASE

No es lo mismo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Dbgrid1, como saber asignarle la ubicacion del cursor? asdbernardo Conexión con bases de datos 4 09-10-2011 21:29:24
dbgrid1 shoulder Varios 12 18-11-2009 17:36:02
Como actualizar Free Pascal felipe88 Lazarus, FreePascal, Kylix, etc. 8 10-11-2008 16:58:14
DBGrid1 en Memo1 gsilvei Varios 1 09-12-2006 15:06:12
¿¿¿DBGrid1.FixedCols := n;??? Sergio J. Varios 2 02-12-2005 10:28:31


La franja horaria es GMT +2. Ahora son las 23:06:22.


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
Copyright 1996-2007 Club Delphi