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)
-   -   Selección de campo DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=94120)

wilcg 11-08-2019 21:55:32

Selección de campo DBGrid
 
Hola amigos tengo una consulta,
Tengo una tabla en postgresql que muestro en un dbgrid, y dentro de cada fila hay 5 campos

Código SQL [-]
CREATE TABLE precios
(
  id_precio serial,
  codigo character varying(12) NOT NULL,
  fecha date,
  precio1 numeric(9,2) DEFAULT 0,
  precio2 numeric(9,2) DEFAULT 0,
);

lo que quiero es mostrar en un TEdit el campo que seleccione en el dbgrid, OJO: solo mostrar los campos (precio1 y precio2)

he estado probando
Código Delphi [-]
Edit1.Text :=  DBGrid1.SelectedField.AsString;
pero no he podido encontrar una excepción, para solo mostrar los campos deseados.

Casimiro Notevi 11-08-2019 22:43:00

Si cambias el edit por un dbedit, ya lo tienes solucionado, sin hacer nada.
La otra forma es recordar que el dbgrid es solamente un presentación, una ventana, una muestra de lo que hay en un dataset.
Así que olvida el dbgrid, debes extraer los datos del dataset, no del dbgrid.

movorack 12-08-2019 15:05:58

Así como te ha dicho Casimiro, lo mejor es usar los componentes de base de datos.

Ejemplo:


Y un tutorial muy básico: Add Database Components (IBX No Code Tutorial)

wilcg 12-08-2019 18:27:34

Gracias por responder, efectivamente me olvide de mencionar sobre el uso de DBEdit, no es la solución que quiero darle, por que el resultado del campo seleccionado quiero almacenarlo en una variable, para posterior a esto darle uso en varios form.
Solo que la pregunta lo pantee de esta manera, quisas estuvo mal.

Casimiro Notevi 12-08-2019 19:06:45

No entiendo, ¿cuál es el problema? ¿acaso no puedes tomar el valor del dbedit para pasarlo a cualquier variable?

movorack 12-08-2019 19:21:26

Respuesta rápida:
Cita:

Empezado por Casimiro Notevi (Mensaje 533136)
.. olvida el dbgrid, debes extraer los datos del dataset, no del dbgrid.

Si ya tienes el valor en un campo del dataset, puedes acceder a el desde otros formularios, o en el evento AfterScroll del dataset puedes alimentar la variable que necesites.

Código Delphi [-]
unit Unit2;

interface 

uses
  Unit1;

// ..
var
  Form2: TForm2;
  global_ProductoCant; Extended;

implementation
// ..

procedure TForm2.MostrarValor;
begin
  ShowMessage(Form1.cdsVentaProductoCant.AsString);
end;

Código Delphi [-]
unit Unit1;

// ..

uses
  Unit2;

// ..

procedure TForm1.cdsVentaAfterScroll(DataSet: TDataSet);
begin
  global_ProductoCant := cdsVentaProductoCant.AsFloat;
end;

TiammatMX 12-08-2019 20:17:43

Cita:

Empezado por wilcg (Mensaje 533140)
Gracias por responder, efectivamente me olvide de mencionar ...

Ése es el problema. Si el problema no se plantea adecuadamente, la solución no llega al resultado deseado. No trabajamos para la NSA o el FBI o el Banco Mundial de Desarrollo como para ocultar datos que pueden hacer más sencillo llegar a donde quieres...

movorack 12-08-2019 21:04:15

Cita:

Empezado por TiammatMX (Mensaje 533143)
Ése es el problema. Si el problema no se plantea adecuadamente, la solución no llega al resultado deseado. No trabajamos para la NSA o el FBI o el Banco Mundial de Desarrollo como para ocultar datos que pueden hacer más sencillo llegar a donde quieres...

^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 21:49:16.

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