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 Dim bResult as Boolean Const sTestString = "Automatical Test" On Local Error GoTo DBERROR gCurrentTestCase = cLogfileFailed LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest)) gCurrentTestCase = cDBService sCurrentMessage = cMessageDatabaseService + " " + cUnoDatabaseContext oDBContext = CreateUnoService(cUnoDatabaseContext) sDBName=oDBContext.ElementNames(0) 'Names of Databases gCurrentTestCase = cDBOpen sCurrentMessage = cMessageDatabaseOpen oDataSource = oDBContext.GetByName(sDBName) sTable=oDataSource.Tables.ElementNames(0) oDBConnection = oDBContext.GetByName(sDBName).GetConnection("","") LogTestResult( "Database "+ cMessageDatabaseOpen, not IsNull (oDBConnection) ) if (IsNull(oDBConnection)) then Close #LocalTestLog% LocalTestLog = 0 Exit Sub End If ' Database is open now gCurrentTestCase = cDBService sCurrentMessage = cMessageDatabaseService + " " + cUnoRowSet oRowSet = createUnoService(cUnoRowSet) if (IsNull(oRowSet)) then LogTestResult( "Database "+ cMessageDatabaseService + " " + cUnoRowSet, not IsNull (oRowSet) ) Exit Sub else LogTestResult( "Database "+ cMessageDatabaseService, TRUE ) End If gCurrentTestCase = 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( "Database "+ cMessageDatabaseInsert, bResult ) 'delete only if insert passed if (bResult) Then gCurrentTestCase = cDBDelete sCurrentMessage = cMessageDatabaseDelete oRowSet.deleteRow() bResult = (nRowCount - oRowSet.RowCount = 0) if ( bResult ) Then oRowSet.next() bResult = (nRowCount - oRowSet.RowCount = 1) End If LogTestResult( "Database "+ cMessageDatabaseDelete, bResult ) End If ' read other record gCurrentTestCase = cDBSeek sCurrentMessage = cMessageDatabaseSeek oRowSet.first() bResult = not (oRowSet.getString(5) = sTestString) LogTestResult( "Database "+ cMessageDatabaseSeek, bResult ) gCurrentTestCase = cDBClose sCurrentMessage = cMessageDatabaseClose oDBConnection.Dispose() LogTestResult( "Database "+ cMessageDatabaseClose, True ) Print #LocalTestLog, "---" Close #LocalTestLog% LocalTestLog = 0 Exit Sub ' Without error DBERROR: If ( gCurrentTestCase = cLogfileFailed ) then LogTestResult( " ", False ) Exit Sub else LogTestResult( "Database "+ sCurrentMessage, FALSE ) Close #LocalTestLog% LocalTestLog = 0 End If Exit Sub ' With error End Sub