Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2026
river_1 river_1 is offline
Miembro
 
Registrado: may 2010
Posts: 59
Poder: 17
river_1 Va por buen camino
Como asignar un Dataset a un Datasource por Codigo

Buenas noches , estoy tratando de cambiar el Dataset por medio de codigo a un Datasource para que los datos que se muestren sean de una consulta.
Ese Datasource esta conectado a una tabla pero deseo que se ejecute una consulta y que se muestre esa consulta en el Grid y poder regresar despues a la tabla.
recuerdo haberlo hecho pero entre tantos programas y codigo me sera imposible encontrarlo.
Asi es como lo estoy haciendo por codigo:
Código:
DataSource2.DataSet:=QryFiltro
Donde Qryfiltro es un componente ADOquery.
Estuve investigando como y literal dice que solo le asigne a la propiedad Dataset el nuevo componente por asi decirlo
Asi dice Google
Código:
DataSource1.Enabled := False; // Recomendado: desactivar antes de cambiar
DataSource1.DataSet := MiTablaQuery;
DataSource1.Enabled := True;
Al ejecutar me marca error que no coinciden los tipo de datos.
BD Acces.
Delphi 7.
Responder Con Cita
  #2  
Antiguo 09-03-2026
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
En tu caso lo que creo que debes hacer es cambiar el DataSource del Grid.
El DataSource creo que está unido a muchas eventos del DataSet para ir modificando todas las dependencias.

Código:
DBGrid <---> DataSource1 <---> DataSet1
             DataSource2 <---> DataSet2
			 
DBGrid <-X-> DataSource1 <---> DataSet1
        |
	+--> DataSource2 <---> DaSet2
Responder Con Cita
  #3  
Antiguo 09-03-2026
river_1 river_1 is offline
Miembro
 
Registrado: may 2010
Posts: 59
Poder: 17
river_1 Va por buen camino
Gracias por tu pronta respuesta.
De hecho asi lo tenia en el codigo que no encuentro y se me hizo mas facil hacerlo en el Datasource pero veo que no es tan facil.
Te comento uso un Grid de unos componentes llamados Developert Express.
Este grid tiene una propiedad que se llama Datacontroller alli se asigna el Datasource pero en modo grafico.
Por codigo lo tengo asi:
Código:
cxGridDBTableView1.DataController.DataSource:=QryFiltro;
Pero me marca error incompatibles types Tdatasource and TADOquery desde el compilado.

Tambien lo pongo asi igual:
Código:
cxGridDBTableView1.DataController.DataSource:=QryFiltro.DataSource;
aqui me manda error en tiempo de ejecucion que no coninciden los tipos de datos.
Responder Con Cita
  #4  
Antiguo 10-03-2026
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.435
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por river_1 Ver Mensaje
Por codigo lo tengo asi:
Código:
cxGridDBTableView1.DataController.DataSource:=QryFiltro;
Prueba con esto:

Código:
cxGridDBTableView1.DataController.DataSource.Dataset := QryFiltro;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 10-03-2026
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
En el primero estás asignando un DataSet a un DataSource. Son cosas distintas y no funciona.
En el segundo estás asignando el DataSource de Query al DataSource del Grid... eso son dos DataSources distintos.

Debes pensar que el DataSource de un componente es por donde entra el dato.
  • En el caso de un DBEdit es por donde entra el valor de un campo
  • En el caso de un DBGrid es por donde entra una lista de registros a mostrar.
  • En el caso de un DataSet es por donde entran valores de campos para rellenar parámetros en el SELECT.

Por lo tanto la estructura debería ser

Código Delphi [-]
DSFiltro : TDataSource;

// El DataSource mostrará los datos que contenga el DataSet QryFiltro
DSFiltro.DataSet := QryFiltro;

// El dataset no necesita DataSource a menos que sea un maestro/detalle
QryFiltro.DataSource := null

// El DBEdit recibe los datos de DSFiltro. En concreo el campo "CAMPO1"
DBEdit.DataSource := DSFiltro;
DBEdit.FieldName := 'CAMPO1';

// El DBGrid recibe los datos de DSFiltro.
DBGrid.DataSource := DSFiltro;

Código:
DataSet_Cabecera --> DataSource --+---> DBGrid
                                  |
                                  +---> DBEdit
                                  |
	                          +---> DataSet_Detalle

Última edición por duilioisola fecha: 10-03-2026 a las 08:28:01.
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
problemas con dataset en datasource josro0ck Conexión con bases de datos 1 24-05-2011 01:01:01
cambiar datasource.dataset en tiempo de ejecución jzginez Conexión con bases de datos 2 30-11-2007 19:42:48
Asignar DataSource a Control ActiveX Importado jlcasih Varios 0 03-10-2006 03:01:18
asignar valor a un datasource mediante código Giniromero Conexión con bases de datos 2 15-10-2003 17:27:03
Se puede acceder a un dbedit a través de su datasource o dataset? CORBATIN Conexión con bases de datos 11 11-09-2003 18:29:03


La franja horaria es GMT +2. Ahora son las 03:06:36.


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