2ee307d230
Change-Id: I681500bb01e13155b355c8a45b41f73e8b9faf26
138 lines
4.8 KiB
XML
138 lines
4.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
-->
|
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">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="Bibliography" '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
|
|
</script:module>
|