Ver Mensaje Individual
  #1  
Antiguo 21-06-2019
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Reputación: 17
Camilo Va por buen camino
Grabar datos desde ListView a Tabla Firebird.

Hola amigos un saludo especial.
En el siguiente procedimiento tengo tres dudas que por mas vueltas y consultas que he hecho definitivamente no pude.
1) marcado con verde, la pregunta es: como declaro en esa variable un valor que esta en el listview.Columns[0]. es decir necesito que la variable "repetir" corresponda a cualquier numero que esta previamente reflejado en esa columna.
2) marcado con purpura, la situación es casi la misma de la pregunta No. 1; Necesito que "si el registro esta chequeado" entonces haga la acción de grabar.
3) marcado con turquesa, vuelve y juega; el parámetro para la grabación no me da con ninguna opción estudiada (y juro que lo he hecho).

En síntesis este procedimiento busca: Grabar en una tabla llamada "registros" tres campos llamados "PROCEDIMIENTO, CODIGO_PROCEDIMIENTO, VALOR" los registros que esten chequeados de una lista contenida en unas columnas de un ListView, el numero de veces que dice una columna adicional del mismo listview.

Mil gracias por los aportes y atención.

Código Delphi [-]
procedure TForm1.GrabarClick(Sender: TObject);
var
i, j, repetir: integer;
begin
 for i := 0 to ListView.Items.Count - 1 do
  begin
    Repetir := StrToInt(ListView.Items.Item[0].SubItems[0]);
     if (ListView.Selected = nil) then
          with IBQGrabar do
            begin
               SQL.Text := 'INSERT INTO TREGISTROS'
               + '(PROCEDIMIENTO, CODIGO_PROCEDIMIENTO, VALOR)'
               + 'VALUES(:PROCEDIMIENTO, :CODIGO_PROCEDIMIENTO, :VALOR)';
               IBQGrabar .ParamByName('PROCEDIMIENTO').AsString:= ListView.Items.Item[0].SubItems[1];
               IBQGrabar .ParamByName('CODIGO_PROCEDIMIENTO').AsInteger:= ListView.Items.Item[0].SubItems[2];
               IBQGrabar .ParamByName('VALOR').AsFloat:= StrToFloatDef(ListView.Items.Item[0].SubItems[3], 0);
               For j := 1 to Repetir do
               ExecSQL;
            end;
  end;
           IBT1.CommitRetaining;
           ShowMessage('MUESTRA(S) GRABADA(S) CON EXITO');
end;

BD: Firebird

Última edición por Camilo fecha: 21-06-2019 a las 05:38:10.
Responder Con Cita