Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-01-2008
Avatar de Garry
Garry Garry is offline
Miembro
 
Registrado: nov 2007
Posts: 60
Poder: 17
Garry Va por buen camino
Question Problema con consultas usando ADO

Hola, amigos.
Quiero realizar un formulario de altas, bajas y modificaciones. Como soy principiante en esto seguro que doy muchas vueltas...
Asocio a cada componente del formulario un DataSource dependiendo del origen de los datos:
DataSource1 a un ADOTable para el proceso Altas.
DataSource2 a un ADOQuery para todo aquello que requiera consultas.
El proceso de Altas funciona correctamente. Pero en las Consultas...
Tengo los componentes conectados de la siguiente forma con un DBEdit:
Código Delphi [-]
DataSource2.DataSet := ADOQuery;
DBEdit.DataSource   := DataSource2;
ADOQuery.SQL.Text   := 'SELECT Tabla.*, ...';

DBEdit.Text toma el valor correcto del formulario pero...:
Código Delphi [-]
ADOQuery.SQL.Text := 'SELECT Tabla.*, ...';
... pierde el valor anterior, pasando a valer NULL.

¿Puede alguien decirme el porqué, si aún no he ejecutado la consulta?

Pre-gracias por todo

Última edición por Garry fecha: 02-01-2008 a las 18:59:54. Razón: Corrección
Responder Con Cita
  #2  
Antiguo 02-01-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Código Delphi [-]
ADOQuery.close;
ADOQuery.SQL.Text   := 'SELECT Tabla.*, ...';
ADOQuery.Open;
DataSource2.DataSet := ADOQuery;
DBEdit.DataSource   := DataSource2;

intentalo en ese orden a ver.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 02-01-2008
Avatar de Garry
Garry Garry is offline
Miembro
 
Registrado: nov 2007
Posts: 60
Poder: 17
Garry Va por buen camino
Unhappy Creo que para lo que yo quiero no me vale ese orden

Al tener un DBedit en el FORM, tiene que estar asociado a un DataSource para poder escribir en él y darle el dato por el que consultar, ¿no? Recuerda que utilizo el mismo formulario para pedir los datos de la consulta y para mostrarlos.

Mientras no asocie un DataSource al DBedit, funciona como si su propiedad Enabled fuera False (esto me ocurre cuando pongo la solución que me has enviado).

Gracias por ser tan rápido.

Última edición por Garry fecha: 09-01-2008 a las 10:25:36. Razón: Matización
Responder Con Cita
  #4  
Antiguo 18-01-2008
Avatar de Garry
Garry Garry is offline
Miembro
 
Registrado: nov 2007
Posts: 60
Poder: 17
Garry Va por buen camino
Unhappy Nada, que no me apaño...

Vaya, tras 2 semanas sigo atascado con esto... A ver si alguien puede echarme un cable.

Quiero consultar y dar de altas con los mismos campos, pero, al usar los DBEdit para consultar, actualiza con los valores a buscar. Mi intención era permitir consultar por cualquier campo con un botón Buscar. Debería poder "desactivar" estas actualizaciones mientras no se pulse el botón de Grabar.

Los DBedit actualizan cuando les da la gana y me desespera. He visto que Caral tenía un formulario aparte para buscar en su ejemplo de facturación, pero yo prefiero usar el mismo. Imagino que será un tema ya manido. ¿Pistas? ¿Se puede evitar esa grabación cómodamente? ¿Algún enlace recomendado? Aquí me habían hablado de Cache Updates. Ignoro cómo se utiliza, además ¿es esa la solución?

He pensado en la posibilidad de pasar de los DBEdit, pero eso supondría demasiado chollo extra, y ya tengo bastante. Además, tampoco sé resolver muchas cosas que ya hace solas el controlador de ADO... snif!
Responder Con Cita
  #5  
Antiguo 18-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El inconveniente que veo a este método, es que una búsqueda suele mostrarse en un Grid para facilitar la visualización, si tienes DBEdits, la búsqueda puede ser algo engorrosa.

De todas formas, los pasos los haría así:
- Cerrar tabla
- Cerrar query
- Asignar el sql al query.
- Asignar Datasources a todo.
- Abrir query.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 23-01-2008
Avatar de Garry
Garry Garry is offline
Miembro
 
Registrado: nov 2007
Posts: 60
Poder: 17
Garry Va por buen camino
Perdón por tardar tanto en responder.

Hombre, yo pienso que las DBGrid no son la única solución, aparte de que exigen diseñar otro apartado para la consulta. Como apunto, mi intención es usar lo mismo para consultas y modificaciones, para que el usuario no tenga que navegar por múltiples formularios. Quiero una interfaz que le resulte cómoda e intuitiva. He preparado un sencillo diagrama de estados para realizar las acciones según los valores y en función de los botones pulsados.

En cualquier caso, tengo el problema que comentaba de que el DataSource debe estar asociado para que el campo esté activado y me permita preparar una consulta, así que debería tenerlo activado para teclear la consulta y eso permite que el usuario cambie datos sin mi permiso porque los DBEdit graban de inmediato.

Actualmente estoy optando (muy a mi pesar, pero es lo que se me ocurre) por usar MaskEdit, pero prefería una opción más automática que tener que controlar yo todo, como dije anteriormente.

Por favor, no dejéis de comentar algo que posibilite la otra opción, si se os ocurre, claro. Saludos.
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
Problema de Actualizacion de Consultas UREÑA Conexión con bases de datos 6 12-12-2007 21:54:22
Problema con consultas DateDiff enecumene MySQL 1 07-12-2007 18:35:03
Problema con Filter y EOF usando TTable El_Raso Conexión con bases de datos 0 20-03-2007 19:35:35
problema usando comillas y apostrofes a la vez hvelascos PHP 3 17-01-2007 01:29:42
Problema usando datetimepicker con MySql tebyr MySQL 5 19-11-2004 17:38:39


La franja horaria es GMT +2. Ahora son las 05:49:53.


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