REM ***** Database Test ***** const cMessageDatabaseService = "Database Service" const cMessageDatabaseOpen = "Open Database" const cMessageDatabaseInsert = "Insert record into Database" const cMessageDatabaseDelete = "Delete record from Database" const cMessageDatabaseSeek = "Read other record from Database" const cMessageDatabaseClose = "Close Database" Sub TestDB Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object Dim sDBName as String, sTable as String, sCurrentMessage as String Dim nRowCount as Integer, nCurrentAction as Integer Dim bResult as Boolean Const sTestString = "Automatical Test" On Local Error GoTo DBERROR nCurrentAction = cLogfileFailed FileChannel% = OpenLogDat (GetLogFileName(g_CurrentDocTest)) nCurrentAction = cDBService sCurrentMessage = cMessageDatabaseService + " " + cUnoDatabaseContext oDBContext = CreateUnoService(cUnoDatabaseContext) sDBName=oDBContext.ElementNames(0) 'Names of Databases nCurrentAction = cDBOpen sCurrentMessage = cMessageDatabaseOpen oDataSource = oDBContext.GetByName(sDBName) sTable=oDataSource.Tables.ElementNames(0) oDBConnection = oDBContext.GetByName(sDBName).GetConnection("","") LogTestResult( cDBOpen, "Database "+ cMessageDatabaseOpen, not IsNull (oDBConnection) ) if (IsNull(oDBConnection)) then Close #FileChannel% Exit Sub End If ' Database is open now nCurrentAction = cDBService sCurrentMessage = cMessageDatabaseService + " " + cUnoRowSet oRowSet = createUnoService(cUnoRowSet) if (IsNull(oRowSet)) then LogTestResult( cDBService, "Database "+ cMessageDatabaseService + " " + cUnoRowSet, not IsNull (oRowSet) ) Exit Sub else LogTestResult( cDBService, "Database "+ cMessageDatabaseService, TRUE ) End If nCurrentAction = cDBInsert sCurrentMessage = cMessageDatabaseInsert oRowSet.ActiveConnection = oDBConnection oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND oRowSet.Command = "SELECT * FROM " + sTable oRowSet.execute() oRowSet.moveToInsertRow oRowSet.updateString(5, sTestString) oRowSet.insertRow() nRowCount=oRowSet.RowCount oRowSet.moveToCurrentRow() bResult = (oRowSet.getString(5) = sTestString) LogTestResult( cDBInsert, "Database "+ cMessageDatabaseInsert, bResult ) 'delete only if insert passed if (bResult) Then nCurrentAction = cDBDelete sCurrentMessage = cMessageDatabaseDelete oRowSet.deleteRow() bResult = (nRowCount - oRowSet.RowCount = 0) if ( bResult ) Then oRowSet.next() bResult = (nRowCount - oRowSet.RowCount = 1) End If LogTestResult( cDBDelete, "Database "+ cMessageDatabaseDelete, bResult ) End If ' read other record nCurrentAction = cDBSeek sCurrentMessage = cMessageDatabaseSeek oRowSet.first() bResult = not (oRowSet.getString(5) = sTestString) LogTestResult( cDBSeek, "Database "+ cMessageDatabaseSeek, bResult ) nCurrentAction = cDBClose sCurrentMessage = cMessageDatabaseClose oDBConnection.Dispose() LogTestResult( cDBClose, "Database "+ cMessageDatabaseClose, True ) Print #FileChannel, "---" Close #FileChannel% Exit Sub ' Without error DBERROR: If (nCurrentAction = cLogfileFailed) then LogTestResult( cLogfileFailed, "", False ) Exit Sub else LogTestResult( nCurrentAction, "Database "+ sCurrentMessage, FALSE ) Close #FileChannel% End If Exit Sub ' With error End Sub