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)
-   -   Seleccionar datos de un dbgrid, no de un dataset (https://www.clubdelphi.com/foros/showthread.php?t=70152)

martinartaza 02-10-2010 18:07:34

Seleccionar datos de un dbgrid, no de un dataset
 
Hola que tal foro.
Lo que ando necesitando es lo siguiente:

Seleccionar datos de la fila seleccionada de un datagrid. Sé hacer esto cuando la grilla esta relacionada con la propiedad a un dataset, pero en este caso pasa lo siguiente.
Motivo por el cualno puedo usar el Dataset
Estoy parchando el código de un gran proyecto (más de 100 tablas) que dejo otra persona y la manera de llenar la grilla lo hace atreves de funciones, que crea en tiempo de ejecución un componente Tdataset, en conclusión no entiendo bien lo que hace y me llevaría mucho tiempo entenderlo, el problema no es ese, todo los formularios están funcionando igual y lo que yo tengo que hacer es ampliar el programa en base de lo que está echo, y me ayudaría mucho si simplemente pueda recuperar los datos de la grilla y no de un dataset que nunca se bien donde está, porque estos data set, lo mete dentro de proceso de botones, algo como
Código Delphi [-]
procedure TFormdAjeno.ButtonBuscarClick(Sender: TObject);
procedure AnalizarConsulta(t_Consulta: TPSQLQuery);
     begin
     //arma la consulta y asigna el datasource a la consulta
     end;
begin
// el funcionamiento del boton buscar aca dentro llama a analizarconsulta y
....
end;

Y como si esto fuera poco, cada boton tiene un analizarconsulta (pero con distintos nombre y forma de funcionar y cada formulario lo hace de manera tan complicada y distintas formas rebuscada pero ni siquiera hay una convicción de nombres.


Lo que intente.
Código Delphi [-]
eProveedor.text := otroform.sugrilla.datasource.Fieldbyname('Proveedor').asstring;

bueno, eh probado ese tipo de cosas, como recuperar el dataset, atraves de la griila y eh buscado por internet y no encuentro, tal vez no busque bien.

Desde ya foro muchas gracias por haberse tomado la molestia de leer esto.

AzidRain 02-10-2010 18:51:05

Código Delphi [-]
var MiDataSet:TDataset;
Begin
  MiDataSet := otroform.sugrilla.datasource.dataset;
  
  //ahora accedes a lo que quieras del dataset usando MiDataSet como puente.

Como lo hizo la otra persona es lo correcto pues separa completamente la grilla de la manipulación de los datos. El enfoque que quieres hacer es incorrecto pues la grilla no contiene los datos, solo los muestra.

Hisumi 02-10-2010 23:28:53

Explicate
 
Hermano no soy de los mejores pero me defiendo en ADO(Delphi) hace poco terminie un proyecto de ostia. Explicate bien lo que nesecitas, que no entiendo lo que escribiste.
If lo que nesecitas es buscar algo en el registro completo del DBGrid Then dime para mandarte un poco de codigo, else especifica mejor lo que quieres

OK

Chao.

martinartaza 03-10-2010 01:55:52

El lunes en el trabajo pruebo tu solucion AzidRain
 
Hola AzidRain, viendo tu código y que es muy probable que funcione me da vergüenza llamarme programador, una solución tan simple como usar una variable intermedia cuando se quiere cambiar los valores de 2 variables. Sabia que me estaba aguando en un vaso de agua pero sinceramente no podía salir de ese vasito de agua.

Muchísima gracias por tu respuesta, el Lunes lo veo.

martinartaza 04-10-2010 17:05:17

Funciona perfectamente
 
Hola, la solución funciona de manera perfecta, para sacar los datos uso, Fields[0].asstring o lo que corresponda, ya que tampoco se el nombre de las columnas, creo que el nuevo código va a ser mucho más limpio.
Muchas gracias.


La franja horaria es GMT +2. Ahora son las 02:55:19.

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