[Lazarus-es] Uso de TSQLQuery y TDBGrid

Ismael L. Donis García ismael en citricos.co.cu
Lun Mar 1 20:00:01 CET 2010


Muchas gracias, me has dado un pequeño empujón, ya que ahora si entra en 
modo edición, pero no inserta nada aun en la tabla, se de hecho que tengo 
que agregar código.

Ahora tengo 2 dudas más:

1.- Como le introduzco valores a una columna dada por código?
Por ejemplo algo como esto:
dbgum.Columns[1].Text:=dtm.strentidad;

Estoy tratando de hacer:
procedure Tfrmum.rsumBeforeInsert(DataSet: TDataSet);
begin
  dbgum.Columns[1].Text:=dtm.strentidad;
  rsum.Params.ParamByName('sEntidad').AsString:=dtm.strentidad;
  rsum.Params.ParamByName('sUm').AsString:=dbgum.Columns[0].Text;
end;

2.- No se me está disparando en evento OnKeyPress del TDBGrid, será esto un 
problema de Lazarus?. Como resolver tal problema?

procedure Tfrmum.dbgumKeyPress(Sender: TObject; var Key: char);
begin
  if Key = #13 then
    cmdcerrar.SetFocus;
end;

Eso es solo una prueba porque aun me falta una línea donde pregunte si la 
primera columna está vacía, que más bien esa sería la tercer duda.

Saludos reiterados
=========
¦¦ ISMAEL ¦¦
=========

----- Original Message ----- 
From: "JoshyFun" <joshyfun en gmail.com>
To: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Monday, March 01, 2010 12:26 PM
Subject: Re: [Lazarus-es] Uso de TSQLQuery y TDBGrid


Hello Ismael,

Monday, March 1, 2010, 3:52:25 PM, you wrote:

ILDG> Se puede utilizar un TSQLQuery enlazado con un TDBGrid
ILDG> para la inserción y actualización de datos de forma directa
ILDG> sobre un TDBGrid?
ILDG> Llevo días atascado en esto y no he logrado salir alante,
ILDG> por lo que he podido detectar al poner un select sobre una tabla
ILDG> en la propiedad SQL del TSQLQuery me lo toma como solo lectura.
ILDG> Alguien me podrá dar una pequeña ayudita sobre el tema:

Los TSQLQuery rara vez son editables, ya que a menos que sean muy
simples tipo:

Select * from TTable

El resto directamente no hay modo de saber como actualizarlos,
ejemplo:

Select TTABLE1.ID,CAMPO from TTABLE1
Inner Join TTABLE2 on TTABLE1.ID=TTABLE2.ID

Para insertar un registro con ese query tendrías que editar ID y
CAMPO, pero eso no garantiza que TTABLE2.ID obtenga un valor válido ya
que no lo editamos. Probablemente este sea "autoinc" pero puede no
serlo o haber más campos que no salen en el select y que pueden
necesitar otro tipo de actuación.

Resumiendo, que para poder editar un select necesitamos rellenar los
SQL necesarios para UPDATE, INSERT y DELETE (los SQLUpdate, ...) para
que el SQLQuery sepa que hacer en cada caso.

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list