Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
Doc. Ref. 9198 Título: Ejemplo de uso de un RecordSet en un script Hexa Autor: Hexa Última actualización: 15/07/2012#script #recordset #base #de #datos #tabla #campo |
Ejemplo de uso de un recordset
Los Hexa-Scripts permiten ejecutar codigo VBS teniendo acceso a la librería de objetos y métodos de Hexa. De este modo se puede hacer casi cualquier operación sin tener que utilizar los objetos de la base de datos. El único caso en que es necesario hacerlo, es en el momento de abrir un conjunto de registros mediante un RecordSet para, por ejemplo, recorrer una tabla de la base de datos
En este ejemplo se muestra, con comentarios, cómo declarar y utilizar un recordset mediante el objeto ADODB para abrir un conjunto de registros de las tablas de la base de datos de Hexa
Sub Main (PS0, PS1, PS2)
'Vamos a recorrer, con un RecordSet, todos los artículos de la familia "Recambios" y mostrar sus denominaciones
'Poner CursorLocation en AdUseClient y desconectarlo con ActiveConnection = Nothing permite que el RecordSet
'esté desconectado y por lo tanto completamente cargado en memoria sin ningún tipo de bloqueo sobre la base de datos
'El método "SQLT" del objeto FH añade las comillas necesarias (según el tipo de base de datos contra la que trabajemos)
'a una cadena para incluirla en una sentencia SQL
'Declaración
Dim Articulo : Set Articulo = CreateObject ("ADODB.Recordset") : Articulo.CursorLocation = 3 'AdUseClient
'Apertura
Articulo.Open "SELECT Codigo, Denominacion FROM Articulo WHERE Familia=" & FH.SQLT ("Recambios"), Cn
Set Articulo.ActiveConnection = Nothing
'La cadena donde vamos a guardar las denominaciones
'En VbScript no hace falta declarar variables pero al hacerlo esl código es más inteligible
Dim Cadena : Cadena = ""
'Vamos a recorrer todos los registros
Do While Not Articulo.EOF
'Añadimos cada denominación a la cadena de texto
Cadena = Cadena & Articulo.Fields ("Denominacion") & ", "
Articulo.MoveNext
Loop
'Eliminar la coma final si hemos introducido algún registro
If Len (Cadena) > 2 Then Cadena = Left (Cadena, Len (Cadena) -2)
''El método "MBx" de la clase "Formularios" muestra una ventana emergente con un texto
Formularios.MBx (Cadena)
'Aunque al finalizar el script Hexa siempre libera los recursos de todos los objetos declarados,
'siempre es mejor cerrarlos manualmente aunque sólo sea por elegancia
Articulo.Close : Set Articulo = Nothing
End Sub