La aplicación Visual Basic de ejemplo le muestra cómo acceder a los datos de DB2 Everyplace utilizando Visual Basic. Puede desarrollar aplicaciones que tengan iguales la lógica de aplicación y la interfaz de usuario en sistemas operativos Pocket PC (WinCE) y Win32. Junto con DB2 Everyplace se proporcionan dos aplicaciones Visual Basic de ejemplo. Uno de ellos es para el sistema operativo Pocket PC (WinCE) y el otro es para los sistemas operativos Win32. Ambas aplicaciones de ejemplo tienen el mismo código e interfaz de usuario. El archivo db2evb.bas, que contiene la lógica de la aplicación, es común a ambos sistemas operativos. Consulte *** para obtener más información.
Archivos incluidos en la aplicación de ejemplo
El directorio de proyectos Visual Basic, donde reside la aplicación de ejemplo, está situado en el directorio donde se instaló DB2 Everyplace. Para Pocket PC (WinCE), puede encontrar los archivos en \db2everyplace\clients\wince\database\visualbasic. Para sistemas operativos Win32, los puede encontrar en \db2everyplace\clients\win32\database\visualbasic.
La aplicación Visual Basic de ejemplo incluye los archivos siguientes:
Ejemplo para Visual Basic: db2evb.bas
Los pasos principales utilizados en la aplicación de ejemplo (db2evb.bas ) son:
Conectar con la base de datos DB2 Everyplace.
Acceder a datos de DB2 Everyplace.
Termine la aplicación de aplicación.
En el presente ejemplo se han añadido comentarios para describir los pasos de la aplicación de ejemplo.
Option Explicit Public henv As Long ' Descriptor de entorno Public hdbc As Long ' Descriptor de base de datos Public hstmt As Long ' Descriptor de sentencia Public rc As Integer ' Código de retorno Public dbpath As String ' vía del sistema de archivos donde DB2e creará tablas. Public userid As String ' ID de usuario: no utilizado por DB2 Everyplace. Public pass As String ' Contraseña: no utilizada por DB2 Everyplace '-------------------------------------------------------------------------------- ' Función: DB2eTest ' ' Descripción: Función que muestra cómo pueden hacerse llamadas a DB2 Everyplace. ' '-------------------------------------------------------------------------------- Public Function DB2eTest() As Integer Dim errmsg As String Dim numCols As Integer Dim i As Integer Dim retLen As Long Dim data As String Dim crtStmt As String Dim insStmt1 As String Dim insStmt2 As String Dim selStmt As String On Error Resume Next 'Importante: no me pregunten porqué, pero esta línea 'es necesaria en cada función que llama a funciones 'de db2e.dll; de no incluirla, visual basic hace 'cosas misteriosas. ' dbpath = "" userid = "" pass = "" ' crtStmt = "CREATE TABLE x(a INT, b TIMESTAMP)" insStmt1 = "INSERT INTO x VALUES(1, CURRENT TIMESTAMP)" insStmt2 = "INSERT INTO x VALUES(2, CURRENT TIMESTAMP)" selStmt = "SELECT * FROM x" ' data = String(80, " ") ' Paso 1: asignar un descriptor de entorno. ' DB2eForm.DB2eText.Text = vbCrLf & vbCrLf & "Asignar descriptor de entorno" rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HENV, henv) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If ' ' Paso 2: asignar un descriptor de base de datos ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " Asignación de un descriptor de base de datos" rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If ' ' Paso 3: conectar con la base de datos ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " Conexión con la base de datos" rc = SQLConnect(hdbc, dbpath, SQL_NTS, userid, SQL_NTS, pass, SQL_NTS) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If ' ' Paso 4: asignar un descriptor de sentencia. ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " Asignación de un descriptor de sentencia" rc = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf ' ' Ahora puede utilizar llamadas de función CLI para ejecutar sentencias SQL. ' ' Paso 5: crear una tabla ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " " & crtStmt rc = SQLExecDirect(hstmt, crtStmt, SQL_NTS) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If ' ' Cree de nuevo la misma tabla para forzar un mensaje de error y ' ver si DB2eError funciona. ' 'rc = SQLExecDirect(hstmt, "create table p(a int)", SQL_NTS) 'If (rc <> 0) Then ' testmsg = MsgBox("BLA1", 1, "DB2 Everyplace Visual Basic") ' rc = DB2eError() ' testmsg = MsgBox("BLA2", 1, "DB2 Everyplace Visual Basic") ' rc = DB2eTerminate() ' testmsg = MsgBox("BLA3", 1, "DB2 Everyplace Visual Basic") ' Exit Function 'End If ' ' ' Paso 6: insertar datos en la tabla. ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " " & insStmt1 rc = SQLExecDirect(hstmt, insStmt1, SQL_NTS) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " " & insStmt2 rc = SQLExecDirect(hstmt, insStmt2, SQL_NTS) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf ' ' Paso 7: recuperar datos de la tabla. ' DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf & " " & selStmt & vbCrLf rc = SQLExecDirect(hstmt, selStmt, SQL_NTS) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If rc = SQLNumResultCols(hstmt, numCols) If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If Do While (SQLFetch(hstmt) = SQL_SUCCESS) For i = 1 To numCols rc = SQLGetData(hstmt, i, SQL_C_CHAR, data, 80, retLen) DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & " " & data & vbCrLf If (rc <> 0) Then rc = DB2eError() rc = DB2eTerminate() Exit Function End If Next data = String(80, " ") DB2eForm.DB2eText.Text = DB2eForm.DB2eText.Text & vbCrLf Loop ' ' Paso 8: cerrar conexión con la base de datos DB2e antes de que ' la aplicación termine. ' rc = DB2eTerminate() DB2eTest = 0 End Function
Tareas relacionadas