1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?> 2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="sdbc_XResultSet" script:language="StarBasic"> 4*b1cdbd2cSJim Jagielski 5*b1cdbd2cSJim Jagielski 6*b1cdbd2cSJim Jagielski'************************************************************************* 7*b1cdbd2cSJim Jagielski' 8*b1cdbd2cSJim Jagielski' Licensed to the Apache Software Foundation (ASF) under one 9*b1cdbd2cSJim Jagielski' or more contributor license agreements. See the NOTICE file 10*b1cdbd2cSJim Jagielski' distributed with this work for additional information 11*b1cdbd2cSJim Jagielski' regarding copyright ownership. The ASF licenses this file 12*b1cdbd2cSJim Jagielski' to you under the Apache License, Version 2.0 (the 13*b1cdbd2cSJim Jagielski' "License"); you may not use this file except in compliance 14*b1cdbd2cSJim Jagielski' with the License. You may obtain a copy of the License at 15*b1cdbd2cSJim Jagielski' 16*b1cdbd2cSJim Jagielski' http://www.apache.org/licenses/LICENSE-2.0 17*b1cdbd2cSJim Jagielski' 18*b1cdbd2cSJim Jagielski' Unless required by applicable law or agreed to in writing, 19*b1cdbd2cSJim Jagielski' software distributed under the License is distributed on an 20*b1cdbd2cSJim Jagielski' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21*b1cdbd2cSJim Jagielski' KIND, either express or implied. See the License for the 22*b1cdbd2cSJim Jagielski' specific language governing permissions and limitations 23*b1cdbd2cSJim Jagielski' under the License. 24*b1cdbd2cSJim Jagielski' 25*b1cdbd2cSJim Jagielski'************************************************************************* 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski'************************************************************************* 32*b1cdbd2cSJim Jagielski' This Interface/Service test depends on the following GLOBAL variables, 33*b1cdbd2cSJim Jagielski' which must be specified in the object creation: 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski' - Global cXResultSetFirstRecord as String 36*b1cdbd2cSJim Jagielski' Global cXResultSetLastRecord as String 37*b1cdbd2cSJim Jagielski' Global cXResultSetRecord1 as String 38*b1cdbd2cSJim Jagielski' Global cXResultSetRecord2 as String 39*b1cdbd2cSJim Jagielski' Global cXResultSet2BeforeLastRecord as String 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski'************************************************************************* 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim JagielskiSub RunTest() 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski'************************************************************************* 50*b1cdbd2cSJim Jagielski' INTERFACE: 51*b1cdbd2cSJim Jagielski' com.sun.star.sdbc.XResultSet 52*b1cdbd2cSJim Jagielski'************************************************************************* 53*b1cdbd2cSJim JagielskiOn Error Goto ErrHndl 54*b1cdbd2cSJim Jagielski Dim bOK As Boolean 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski Out.Log("ReCreating Object, to be shure that it is in initial state.") 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski Test.StartMethod("beforeFirst()") 60*b1cdbd2cSJim Jagielski Test.StartMethod("isBeforeFirst()") 61*b1cdbd2cSJim Jagielski Test.StartMethod("isFirst()") 62*b1cdbd2cSJim Jagielski Test.StartMethod("first()") 63*b1cdbd2cSJim Jagielski Test.StartMethod("next()") 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski Test.StartMethod("afterLast()") 66*b1cdbd2cSJim Jagielski Test.StartMethod("isAfterLast()") 67*b1cdbd2cSJim Jagielski Test.StartMethod("isLast()") 68*b1cdbd2cSJim Jagielski Test.StartMethod("last()") 69*b1cdbd2cSJim Jagielski Test.StartMethod("previous()") 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski Test.StartMethod("getRow()") 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski Dim bBeforeFirst As Boolean 74*b1cdbd2cSJim Jagielski Dim bIsBeforeFirst As Boolean 75*b1cdbd2cSJim Jagielski Dim bIsBeforeFirstLoop As Boolean 76*b1cdbd2cSJim Jagielski Dim bIsFirst As Boolean 77*b1cdbd2cSJim Jagielski Dim bFirst As Boolean 78*b1cdbd2cSJim Jagielski Dim bNext As Boolean 79*b1cdbd2cSJim Jagielski Dim bAfterLast As Boolean 80*b1cdbd2cSJim Jagielski Dim bIsAfterLast As Boolean 81*b1cdbd2cSJim Jagielski Dim bIsAfterLastLoop As Boolean 82*b1cdbd2cSJim Jagielski Dim bIsLast As Boolean 83*b1cdbd2cSJim Jagielski Dim bLast As Boolean 84*b1cdbd2cSJim Jagielski Dim bPrevious As Boolean 85*b1cdbd2cSJim Jagielski Dim bGetRow As Boolean 86*b1cdbd2cSJim Jagielski Dim bLoopError as Boolean 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski bLoopError = false 89*b1cdbd2cSJim Jagielski bBeforeFirst = true 90*b1cdbd2cSJim Jagielski bIsBeforeFirst = true 91*b1cdbd2cSJim Jagielski bIsFirst = true 92*b1cdbd2cSJim Jagielski bFirst = true 93*b1cdbd2cSJim Jagielski bNext = true 94*b1cdbd2cSJim Jagielski bAfterLast = true 95*b1cdbd2cSJim Jagielski bIsAfterLast = true 96*b1cdbd2cSJim Jagielski bIsLast = true 97*b1cdbd2cSJim Jagielski bLast = true 98*b1cdbd2cSJim Jagielski bPrevious = true 99*b1cdbd2cSJim Jagielski bGetRow = true 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski oObj.beforeFirst() 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski Out.Log("Initially the cursor should be before first record.") 104*b1cdbd2cSJim Jagielski Out.Log("getRow(): expected : 0, actual: " + oObj.getRow()) 105*b1cdbd2cSJim Jagielski if (oObj.getRow() = 0) then 106*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 107*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 108*b1cdbd2cSJim Jagielski end if 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski Out.Log("Go to not first record...") 111*b1cdbd2cSJim Jagielski oObj.next 112*b1cdbd2cSJim Jagielski oObj.next 113*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'false', actual '" + oObj.isBeforeFirst() + "'") 114*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND NOT oObj.isBeforeFirst() 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski Out.Log("Go to before first record...") 117*b1cdbd2cSJim Jagielski oObj.beforeFirst() 118*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 119*b1cdbd2cSJim Jagielski bBeforeFirst = bBeforeFirst AND oObj.isBeforeFirst() 120*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski Out.Log("Go to previous position") 123*b1cdbd2cSJim Jagielski oObj.previous() 124*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 125*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 126*b1cdbd2cSJim Jagielski bPrevious = bPrevious AND oObj.isBeforeFirst() 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski Out.Log("Go to first record...") 129*b1cdbd2cSJim Jagielski oObj.first() 130*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'false', actual '" + oObj.isBeforeFirst() + "'") 131*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND NOT oObj.isBeforeFirst() 132*b1cdbd2cSJim Jagielski Out.Log("isFirst(): expected: 'true', actual '" + oObj.isFirst() + "'") 133*b1cdbd2cSJim Jagielski bIsFirst = bIsFirst AND oObj.isFirst() 134*b1cdbd2cSJim Jagielski Out.Log("getRow(): expected : 1, actual: " + oObj.getRow()) 135*b1cdbd2cSJim Jagielski bIsFirst = bIsFirst AND oObj.getRow() = 1 136*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSetFirstRecord) 137*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 138*b1cdbd2cSJim Jagielski bFirst = bFirst AND inStr(1, oObj.getString(1), cXResultSetFirstRecord) 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski Out.Log("Go to previous position") 141*b1cdbd2cSJim Jagielski oObj.previous() 142*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 143*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 144*b1cdbd2cSJim Jagielski bPrevious = bPrevious AND oObj.isBeforeFirst() 145*b1cdbd2cSJim Jagielski Out.Log("isFirst(): expected: 'false', actual '" + oObj.isFirst() + "'") 146*b1cdbd2cSJim Jagielski bIsFirst = bIsFirst AND NOT oObj.isFirst() 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski Out.Log("Go to beforeFirst()") 149*b1cdbd2cSJim Jagielski oObj.beforeFirst() 150*b1cdbd2cSJim Jagielski Out.Log("Iterate through all records form first to last") 151*b1cdbd2cSJim Jagielski Dim n As Integer 152*b1cdbd2cSJim Jagielski n = 0 153*b1cdbd2cSJim Jagielski bLoopError = false 154*b1cdbd2cSJim Jagielski bIsAfterLastLoop = oObj.isAfterLast() 155*b1cdbd2cSJim Jagielski while (n < 1000 AND NOT bIsAfterLastLoop) 156*b1cdbd2cSJim Jagielski oObj.next() 157*b1cdbd2cSJim Jagielski n = n + 1 158*b1cdbd2cSJim Jagielski bIsAfterLastLoop = oObj.isAfterLast() 159*b1cdbd2cSJim Jagielski if bLoopError then 160*b1cdbd2cSJim Jagielski bLoopError = false 161*b1cdbd2cSJim Jagielski n = 1000 162*b1cdbd2cSJim Jagielski end if 163*b1cdbd2cSJim Jagielski wend 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski Out.Log("IsAfterLast(): expected: 'true', actual '" + oObj.IsAfterLast() + "'") 166*b1cdbd2cSJim Jagielski bIsAfterLast = bIsAfterLast AND oObj.isAfterLast() 167*b1cdbd2cSJim Jagielski Out.Log("IsLast(): expected: 'false', actual '" + oObj.IsLast() + "'") 168*b1cdbd2cSJim Jagielski bIsLast = bIsLast AND NOT oObj.isLast() 169*b1cdbd2cSJim Jagielski Out.Log("Amount of records is " + n) 170*b1cdbd2cSJim Jagielski Out.Log("Trying to go to next record") 171*b1cdbd2cSJim Jagielski oObj.next() 172*b1cdbd2cSJim Jagielski Out.Log("IsAfterLast(): expected: 'true', actual '" + oObj.IsAfterLast() + "'") 173*b1cdbd2cSJim Jagielski bIsAfterLast = bIsAfterLast AND oObj.isAfterLast() 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski Out.Log("Go to previous position.") 176*b1cdbd2cSJim Jagielski oObj.previous() 177*b1cdbd2cSJim Jagielski Out.Log("IsLast(): expected: 'true', actual '" + oObj.IsLast() + "'") 178*b1cdbd2cSJim Jagielski bIsLast = bIsLast AND oObj.isLast() 179*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSetLastRecord) 180*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 181*b1cdbd2cSJim Jagielski bIsLast = bIsLast AND inStr(1, oObj.getString(1), cXResultSetLastRecord) 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski Out.Log("Iterate through all records form last to first") 184*b1cdbd2cSJim Jagielski bLoopError = false 185*b1cdbd2cSJim Jagielski bIsBeforeFirstLoop = oObj.isBeforeFirst() 186*b1cdbd2cSJim Jagielski while (n > 0 AND NOT bIsBeforeFirstLoop) 187*b1cdbd2cSJim Jagielski oObj.previous() 188*b1cdbd2cSJim Jagielski n = n - 1 189*b1cdbd2cSJim Jagielski bIsBeforeFirstLoop = oObj.isBeforeFirst() 190*b1cdbd2cSJim Jagielski if bLoopError then 191*b1cdbd2cSJim Jagielski bLoopError = false 192*b1cdbd2cSJim Jagielski n = 0 193*b1cdbd2cSJim Jagielski end if 194*b1cdbd2cSJim Jagielski wend 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 197*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski Out.Log("Trying to go to previous record") 200*b1cdbd2cSJim Jagielski oObj.previous() 201*b1cdbd2cSJim Jagielski Out.Log("isBeforeFirst(): expected: 'true', actual '" + oObj.isBeforeFirst() + "'") 202*b1cdbd2cSJim Jagielski bIsBeforeFirst = bIsBeforeFirst AND oObj.isBeforeFirst() 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski Test.MethodTested("beforeFirst()", bBeforeFirst) 206*b1cdbd2cSJim Jagielski Test.MethodTested("isBeforeFirst()", bIsBeforeFirst) 207*b1cdbd2cSJim Jagielski Test.MethodTested("isFirst()", bIsFirst) 208*b1cdbd2cSJim Jagielski Test.MethodTested("first()", bFirst) 209*b1cdbd2cSJim Jagielski Test.MethodTested("next()", bNext) 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski Test.MethodTested("afterLast()", bAfterLast) 212*b1cdbd2cSJim Jagielski Test.MethodTested("isAfterLast()", bIsAfterLast) 213*b1cdbd2cSJim Jagielski Test.MethodTested("isLast()", bIsLast) 214*b1cdbd2cSJim Jagielski Test.MethodTested("last()", bLast) 215*b1cdbd2cSJim Jagielski Test.MethodTested("previous()", bPrevious) 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski Test.MethodTested("getRow()", bGetRow) 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski Test.StartMethod("absolute()") 221*b1cdbd2cSJim Jagielski bOK = true 222*b1cdbd2cSJim Jagielski Out.Log("Go to second record") 223*b1cdbd2cSJim Jagielski oObj.absolute(2) 224*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSetRecord2) 225*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 226*b1cdbd2cSJim Jagielski bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord2) 227*b1cdbd2cSJim Jagielski Out.Log("Go to record -1") 228*b1cdbd2cSJim Jagielski oObj.absolute(-1) 229*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 230*b1cdbd2cSJim Jagielski Out.Log("IsLast(): expected: 'true', actual '" + oObj.IsLast() + "'") 231*b1cdbd2cSJim Jagielski bOK = bOK AND oObj.isLast() 232*b1cdbd2cSJim Jagielski Out.Log("Go to record -2") 233*b1cdbd2cSJim Jagielski oObj.absolute(-2) 234*b1cdbd2cSJim Jagielski Out.Log("IsLast(): expected: 'false', actual '" + oObj.IsLast() + "'") 235*b1cdbd2cSJim Jagielski bOK = bOK AND NOT oObj.isLast() 236*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSet2BeforeLastRecord) 237*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 238*b1cdbd2cSJim Jagielski bOK = bOK AND inStr(1, oObj.getString(1), cXResultSet2BeforeLastRecord) 239*b1cdbd2cSJim Jagielski Test.MethodTested("absolute()", bOK) 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski Test.StartMethod("relative()") 242*b1cdbd2cSJim Jagielski bOK = true 243*b1cdbd2cSJim Jagielski Out.Log("Go to before first record") 244*b1cdbd2cSJim Jagielski oObj.beforeFirst() 245*b1cdbd2cSJim Jagielski on error goto RelativeErrHndl 246*b1cdbd2cSJim Jagielski oObj.relative(1) 247*b1cdbd2cSJim Jagielski Out.Log("Exception expected!") 248*b1cdbd2cSJim Jagielski bOK = false 249*b1cdbd2cSJim Jagielski goto ContRelative 250*b1cdbd2cSJim Jagielski RelativeErrHndl: 251*b1cdbd2cSJim Jagielski Out.Log("Expected exception.") 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski ContRelative: 254*b1cdbd2cSJim Jagielski On Error Goto NewErrHndl 255*b1cdbd2cSJim Jagielski Out.Log("Go to first record and relative(1)") 256*b1cdbd2cSJim Jagielski oObj.next() 257*b1cdbd2cSJim Jagielski oObj.relative(1) 258*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSetRecord2) 259*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 260*b1cdbd2cSJim Jagielski bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord2) 261*b1cdbd2cSJim Jagielski Out.Log("Go to relative(-1)") 262*b1cdbd2cSJim Jagielski oObj.relative(-1) 263*b1cdbd2cSJim Jagielski Out.Log("RowDsc should contain " + cXResultSetRecord1) 264*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 265*b1cdbd2cSJim Jagielski bOK = bOK AND inStr(1, oObj.getString(1), cXResultSetRecord1) 266*b1cdbd2cSJim Jagielski Out.Log("RowDsc is '" + oObj.getString(1) + "'") 267*b1cdbd2cSJim Jagielski Test.MethodTested("relative()", bOK) 268*b1cdbd2cSJim Jagielski 269*b1cdbd2cSJim Jagielski Test.StartMethod("refreshRow()") 270*b1cdbd2cSJim Jagielski bOK = true 271*b1cdbd2cSJim Jagielski oObj.refreshRow() 272*b1cdbd2cSJim Jagielski Test.MethodTested("refreshRow()", bOK) 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski Test.StartMethod("rowUpdated()") 275*b1cdbd2cSJim Jagielski bOK = true 276*b1cdbd2cSJim Jagielski Out.Log("rowUpdated() is " + oObj.rowUpdated()) 277*b1cdbd2cSJim Jagielski bOK = bOK AND NOT oObj.rowUpdated() 278*b1cdbd2cSJim Jagielski Test.MethodTested("rowUpdated()", bOK) 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski Test.StartMethod("rowInserted()") 281*b1cdbd2cSJim Jagielski bOK = true 282*b1cdbd2cSJim Jagielski Out.Log("rowInserted() is " + oObj.rowInserted()) 283*b1cdbd2cSJim Jagielski bOK = bOK AND NOT oObj.rowInserted() 284*b1cdbd2cSJim Jagielski Test.MethodTested("rowInserted()", bOK) 285*b1cdbd2cSJim Jagielski 286*b1cdbd2cSJim Jagielski Test.StartMethod("rowDeleted()") 287*b1cdbd2cSJim Jagielski bOK = true 288*b1cdbd2cSJim Jagielski Out.Log("rowDeleted() is " + oObj.rowDeleted()) 289*b1cdbd2cSJim Jagielski bOK = bOK AND NOT oObj.rowDeleted() 290*b1cdbd2cSJim Jagielski Test.MethodTested("rowDeleted()", bOK) 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski Test.StartMethod("getStatement()") 293*b1cdbd2cSJim Jagielski bOK = true 294*b1cdbd2cSJim Jagielski oStatement = oObj.getStatement() 295*b1cdbd2cSJim Jagielski bOK = bOK AND NOT isNULL(oStatement) 296*b1cdbd2cSJim Jagielski Test.MethodTested("getStatement()", bOK) 297*b1cdbd2cSJim Jagielski 298*b1cdbd2cSJim JagielskiExit Sub 299*b1cdbd2cSJim JagielskiNewErrHndl: 300*b1cdbd2cSJim JagielskiErrHndl: 301*b1cdbd2cSJim Jagielski Test.Exception() 302*b1cdbd2cSJim Jagielski bOK = false 303*b1cdbd2cSJim Jagielski bLoopError = true 304*b1cdbd2cSJim Jagielski resume next 305*b1cdbd2cSJim JagielskiEnd Sub 306*b1cdbd2cSJim Jagielski</script:module> 307