Visual Basic 6 usando Base de datos Firebird – 3 – Listar Registros en un MshFlexGrid

En este articulo le explicare como se hace el procedimiento en Firebird que liste unos registros y Luego como se Llena un MSHFlexGrid en Visual Basic 6

Lo primero es Crear el Procedimiento en Mi caso lo voy a llamar PROC_LISTAS_CLIENTES.

Colabora y Suscribete a mi canal de   

Este procedimiento no tienes variables de Entrada, solo de salida  porque lo que quiero simplemente es listar los registros de la tabla.

Parámetros de Salida:

ID => Interger

Nombres => VarChar(50)

El código del procedimiento:

BEGIN
  /* Procedure body */
  FOR SELECT USUARIO_ID, NOMBRE
  FROM USUARIO
  into :ID, :NOMBRE do
  BEGIN
    SUSPEND;
  END

END

Para listar se utiliza la palabra FOR luego la consulta que queremos hacer, después del FROM Usuario especificamos los parámetros de salida después de la palabra Into separados por , y antes de cada parámetro se colocan dos punto (:) lo que le dice a Firebird que es una variable.

Aclarando se nota que el select llama a 2 campos de la misma manera el Into lleva 2 parámetros que contendrán los datos de esos campos en el mismo orden.

Código completo del procedimiento:

CREATE PROCEDURE PROC_LISTAS_CLIENTES
RETURNS(
  ID INTEGER,
  NOMBRE VARCHAR(50))
AS
BEGIN
  /* Procedure body */
  FOR SELECT USUARIO_ID, NOMBRE
  FROM USUARIO
  into :ID, :NOMBRE do
  BEGIN
    SUSPEND;
  END

END^

En la aplicación de Visual Basic para llamar al procedimiento se hace usando una consulta sql:

sql = "SELECT * FROM PROC_LISTAS_CLIENTES"

Se utiliza SELECT para que pueda devolver la lista de registros, si utilizas execute procedure no va a devolver nada.

El procedimiento para listar completo seria el siguiente:

Sub LlenarGridClientes()
    Dim RecordClientes As New ADODB.Recordset
    Dim Columnas As Integer
    Dim sql As String
    
    sql = "SELECT * FROM PROC_LISTAS_CLIENTES"
    
    Columnas = 2
    
    Call LlenarGrid(msGrid, sql, Columnas)
    
    
    msGrid.ColWidth(0) = 0
    msGrid.ColWidth(1) = 1100
    msGrid.ColWidth(2) = 3500
    
    msGrid.TextMatrix(0, 1) = "ID"
    msGrid.TextMatrix(0, 2) = "Nombres"
    
End Sub

Este código te resultara familiar si has visto el Introducción al Curso de Creación de Software de Ventas si no tiene el código de llenarGrid te lo comparto:

Sub LlenarGrid(Grid As MSHFlexGrid, sql As String, TotalColum As Integer)
    Dim RecorsetTemp As New ADODB.Recordset
    
    RecorsetTemp.Open sql, ConexionADO, adOpenStatic, adLockReadOnly
    
    Grid.Redraw = False 'desactivamos el repintado en pantalla
    Grid.FixedRows = 0
    Grid.Rows = 0
        
        
    Grid.DataMember = RecorsetTemp.DataMember
    Set Grid.DataSource = RecorsetTemp.DataSource 'vinculamos con el recorset
    
        
    Grid.AddItem "", 0 'se agrega una fila al grid
    If Grid.Row > 1 Then Grid.FixedRows = 1 'si hay mas de un registro se habilita el titulo
    
    'recorre las celdas del titulo del grid y le da color
    For I = 1 To TotalColum
        Grid.Row = 0
        Grid.Col = I 'va recorriendo las celdas de la primera fila
        Grid.CellBackColor = &H8C5828 'color azul para el fondo
        Grid.CellAlignment = flexAlignCenterCenter 'texto centrado
        Grid.CellForeColor = vbWhite 'color blanco para el texto
        Grid.CellFontBold = True 'Negrita
    Next I
    
    
    'este recorrido es para colorear filas pares en el grid para darle una mejor vista al usuario
    For fila = 1 To Grid.Rows - 1
        Grid.Row = fila
        If fila Mod 2 = 0 Then 'si la fila tiene como modulo 2 entonces es un numero par
            For I = 1 To TotalColum
                Grid.Col = I
                Grid.CellBackColor = &HFEEEDD 'color de fondo para la celda
            Next I
        End If
    Next fila
    
    Grid.Redraw = True 'se habilita el repintado
    
End Sub

En el formulario que construimos en el articulo anterior Visual Basic 6 usando Base de datos Firebird – 1 – Conexión en el botón conectar llamamos a este procedimiento:

Private Sub cmdPrueba_Click()
    Call ConectarDB
    Call LlenarGridClientes
End Sub

VIDEO

Lección Anterior Visual Basic 6 usando Base de datos Firebird – 2 – Procedimiento Almacenado

 

Total Page Visits: 3369 - Today Page Visits: 1

Deja una respuesta