PK Y2%@oa,mimetypeapplication/epub+zipPKY2%@iTunesMetadata.plisth artistName Oracle Corporation book-info cover-image-hash 748697674 cover-image-path OEBPS/dcommon/oracle-small.JPG package-file-hash 142710134 publisher-unique-id E17727-03 unique-id 759725206 genre Oracle Documentation itemName Oracle® Objects for OLE Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.2) releaseDate 2011-03-07T18:8:44Z year 2011 PK_9hmhPKY2%@META-INF/container.xml PKYuPKY2%@OEBPS/serprop013.htm! CacheSlicesPerBlock Property

CacheSlicesPerBlock Property

Applies To

OraDynaset Object

Description

Gets or sets cache slices for each block.

Usage

set Perblock = oradynaset.CacheSlicePerBlock 
oradynaset.CacheSlicePerBlock  = Perblock

Data Type

Integer

PK?Li&!PKY2%@OEBPS/sermthod056.htmp CreateNamedSession Method

CreateNamedSession Method

Applies To

OraSession Object

Description

Creates and returns a new named OraSession object.

Usage

orasession = orasession.CreateNamedSession(session_name)

Arguments

The arguments for the method are:

ArgumentsDescription
session_nameA String specifying the name of the session.

Remarks

Using this method, you can create named sessions that can be referenced later in the same application as long as the session object referred to is in scope. Once a session has been created, the application can reference it by way of the ConnectSession method or the OraSessions collection of their respective OraClient object. The OraSessions collection only contains sessions created within the current application. Therefore, it is not possible to share sessions across applications, only within applications.

This method is provided for simplicity and is equivalent to the CreateSession method of the OraClient object.

Examples

This example demonstrates the use of ConnectSession and CreateNamedSession methods to allow an application to use a session it previously created, but did not save. Copy this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables 
 Dim dfltsess As OraSession
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the default OraSession Object.
 Set dfltsess = CreateObject("OracleInProcServer.XOraSession")
 
 'Try to connect to "ExampleSession". If it does not exist 
 'an error is generated.
 On Error GoTo SetName
 Set OraSession = dfltsess.ConnectSession("ExampleSession")
 On Error GoTo 0
 
'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
 
 'Display or manipulate data here
 
Exit Sub
 
SetName:
'The session named "ExampleSession" was not found, so create it.
Set OraSession = dfltsess.CreateNamedSession("ExampleSession")
Resume Next
 
End Sub
PKvwupPKY2%@OEBPS/sermthod078.htm Div (OraNumber) Method

Div (OraNumber) Method

Applies To

OraNumber Object

Description

Divides an OraNumber object by a numeric argument.

Usage

OraNumber.Div operand 

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, OraNumber object, or a numeric value.

Remarks

The result of the operation is stored in an OraNumber object . There is no return value.

The operand must not be equal to zero, or a divide by zero error is raised.

PK '   PKY2%@OEBPS/sermthod015.htm) AQAgent (OraAQMsg) Method

AQAgent (OraAQMsg) Method

Applies To

OraAQMsg Object

Description

Creates an instance of the OraAQAgent for the specified consumer and adds it to the OraAQAgents list of the message.

Usage

Set agent = qMsg.AQAgent(name)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] nameA String up to 30 bytes representing the name of the consumer of the message.
[in] [optional] AddressA 128-byte String representing the protocol specific address of a recipient, such as [schema.]queue[@dblink].

Remarks

The OraAQAgent object represents a message recipient and is only valid for queues that allow multiple consumers. Queue subscribers are recipients by default. Use this object to override the default consumers.

An OraAQAgent object can be instantiated by invoking the AQAgent method. For example:

Set agent = qMsg.AQAgent(consumer) 

The maximum number of agents that a message can support is 10.

The AQAgent method returns an instance of an OraAQAgent object.


Note:

Address is not supported in this release, but is provided for future enhancements.

PK*.)PKY2%@OEBPS/serprop098.htmP OraMaxSize Property

OraMaxSize Property

Applies To

OraField Object

Description

Returns the Oracle maximum column size as stored in the Oracle data dictionary. Not available at design time and read-only at run time.

Usage

field_maxsize = orafield.OraMaxSize

Data Type

Long Integer

Remarks

The return value is dependent on the Oracle internal data type. The following values will be returned:

Oracle Column TypeValue
CHAR, VARCHAR2, RAWLength of the column in the table
NUMBER22 (the internal length)
DATE7 (the internal length)
LONG, LONG RAW0
ROWIDSystem dependent
Functions returning internal data type 1, such as TO_CHAR()Same as orafield.MaxDSize

PK UPPKY2%@OEBPS/sermthod144.htm l Power (OraNumber) Method

Power (OraNumber) Method

Applies To

OraNumber Object

Description

Raises the OraNumber object to the power of the operand.

Usage

OraNumber.Power operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, OraNumber, or a numeric value.

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

PK \ PKY2%@OEBPS/dcprop004.htmE Caption Property

Caption Property

Applies To

Oracle Data Control

Description

Determines the text displayed in or next to a control.

PKJEPKY2%@OEBPS/dcprop031.htma Width Property

Width Property

Applies To

Oracle Data Control

Description

Determines the width dimension of an object.

PK!'PKY2%@OEBPS/serprop150.htmH Visible (OraAQ) Property

Visible (OraAQ) Property

Applies To

OraAQ Object

Description

Specifies the transactional behavior of the enqueue request.

Usage

Q.Visible = transaction_mode

Data Type

Integer

Remarks

This property is applicable only for an enqueue operation.

Possible values are:

  • ORAAQ_ENQ_IMMEDIATE (1)

    The enqueue operation constitutes a transaction of its own. Set this property to make the message visible immediately after the enqueue operation.

  • ORAAQ_ENQ_ON_COMMIT (2) (Default)

    The enqueue is part of the current transaction, and the message is visible only after the transaction commits.

Examples

Msg.Value = "The visibility option used in the enqueue call is " & _
                    "ORAAQ_ENQ_IMMEDIATE" 
Q.Visible = ORAAQ_ENQ_IMMEDIATE 
Q.Enqueue
PKjΘ#M H PKY2%@OEBPS/sermthod126.htm MatchPos (OraLOB/BFILE) Method

MatchPos (OraLOB/BFILE) Method

Applies To

OraBLOB, OraCLOB Objects

OraBFILE Object

Description

Returns the position of the nth occurrence of the pattern starting at the offset.

Usage

position = OraBlob.MatchPos pattern, offset, nth
position = OraClob.MatchPos pattern, offset, nth
position = OraBFile.MatchPos pattern, offset, nth

Arguments

The arguments for the method are:

ArgumentsDescription
[in] patternA string for CLOB, or byte array for BLOB or BFILE that is searched for in the LOB.
[in] OffsetThe starting position in the LOB or BFILE for the search.
[in] nthThe occurrence number.

Remarks

This call is currently implemented by executing a PL/SQL block that uses DBMS_LOB.INSTR().

PKxePKY2%@OEBPS/serprop081.htm} Month (OraTimeStampTZ) Property

Month (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the Month attribute of an OraTimeStampTZ object.

Usage

month = OraTimeStampTZObj.Month
OraTimeStampTZObj.Month = month

Arguments

ArgumentsDescription
[in] monthThe Month attribute of an OraTimeStampTZ object.

Data Type

Integer

PKWȊ8 } PKY2%@OEBPS/index.htm Index

Index

A  B  C  D  E  F  G  H  I  J  L  M  N  O  P  Q  R  S  T  U  V  W  X  Z 

A

Abs method, 10
Access Violations, 5.3.3
accessing
collection elements, 4.5.3
OraObject, 4.4.4.2
OraObject attributes, 4.4.2.2
referenceable instance, 4.4.4.2
accessing the OO4O Automation Server, 3.2
Active Server Pages, 1.1, 2.1, 2.4
Active Server Pages with OO4O Automation, 2.4
ActiveX Control, 1.3, 2.8
AddTable method, 3.8.4
advanced features of Oracle Objects for OLE, 4
advanced queuing interfaces, 4.6
AllowMoveLast property, 14
application failover notifications, 4.8
application notifications, 4.8.1
array processing, 5.1.5
ASP, 1.1, 2.4
asynchronous dequeuing, 4.6.1
AutoBindDisable method, 5.1.4
AutoBindEnable method, 5.1.4
automation objects
introduction, 8
Automation Server, 3.2
avoiding multiple object reference, 5.1.3

B

BackColor property, 14
batch inserts, 6
BeginTrans method, 3.9
bind variables, 3.8
bindings, 5.1.4
Borland Delphi, 1.5.2
bound class, 1.4
buffering
LOB, 4.3.4
bulk collect feature, 5.1.7

C

C++, 1.4
cache parameters, 5.1.2
caching, 3.4.1
Caption property, 14
chunking methods
LONG RAW, 5.1.8
client applications, 3
code examples
location, 2.2
Code Wizard
using, 7.3
Code Wizard Components, 7.1
Code Wizard data types, 7.2
Code Wizard examples, 7.4
Code Wizard for stored procedures, 7
collection elements
accessing, 4.5.3
modifying, 4.5.4
collection types
retrieving from the database, 4.5.2
VARRAY, 4.5.5
collections, 4.5
OraFields, 5.1.3
COM Automation Objects, 1.2
commands
executing, 3.4
CommitTrans method, 3.9
Complex Object Retrieval Capability (COR) in OCI, 4.4.3
Component Certifications
My Oracle Support, 1.7
configuration information, 1.8.2
Connect data control property, 14
connection information
incorrectly specified, 5.3.2
connection multiplexing, 3.3.1
connection pool, 5.1.9
connection pool management, 3.6
connection pooling, 2.4, 5.1.9
connpool sample (IIS), 2.4
constant file, 2.2.1.3
CreateCustomDynaset method, 5.1.2
CreateSQL method, 3.4.2.1, 3.8, 5.1.5
creating
dynaset from OraCollection, 4.5.6
VARRAY collection type, 4.5.5
customization, 5.1.2

D

data control recordset, 13
data controls, 2.1
Data Definition Language (DDL) statements, 3.8.5
Data Manipulation Language (DML) Statements, 3.4.2
data streaming, 4.3.4
data types, 4.4
datetime, 4.10
interval, 4.10
data types supported by the OO4O Code Wizard, 7.2
database connectivity APIs, 1.2
Database data control property, 14
database events, 4.7
detection, 4.7
database records
updating, 3.4.2.1
database schema objects, 4.11
DatabaseName data control property, 14
datetime data types, 4.10
DBGrid Control, 2.8
DDL statements, 3.8.5
deleting rows from table, 3.4.2.2
demodrp7.sql, 2.2.1
demonstration
Excel, 2.5
Oracle Data Control, 2.7
Oracle Data Control with VC++, 2.8
quick tour, 6
demonstration schema, 2.2
creation, 2.2.1
demonstration tables
dept, 2.2.1
emp, 2.2.1
dept table, 2.2.1
dequeuing, 4.6.1
detection of database events, 4.7
differences LOB types from LONG RAW, 5.1.8
DirtyWrite property, 14
disabling parameter binding, 5.1.4
DML statements, 3.4.2
Drag method, 12, 13
DragDrop event, 12
DragIcon property, 14
DragMode property, 14
DragOver event, 12
Drop method, 12
Dyanset object
using, 4.4.4.1.1
dynaset
creating from an OraCollection, 4.5.6
Dynaset object
using, 4.4.2.1.1
dynasets
using, 5.1.6

E

early binding of OO4O Objects, 5.1.1
Edit method, 13
EditMode property, 14
emp table, 2.2.1
empcur.sql, 2.2.1.3
Enabled property, 14
enabling failover, 4.8.2
enabling parameter bindinng, 5.1.4
error code
ODCERR_AUTOMATION, 5.2.11
Error data control event, 12
error handling, 5.2
errors
Access Viloations, 5.3.3
Advanced Queuing, 5.2.7
Collection, 5.2.8
Find method parser, 5.2.3
incorrectly installed software, 5.3.1
installation, 5.3.3
network errors, 5.3.2
nonblocking, 5.2.2
OLE Automation, 5.2.1
OLE Initialization or OLE Automation, 5.3.1
Oracle, 5.2.10
Oracle Data Control, 5.2.11
Oracle LOB, 5.2.6
Oracle Number, 5.2.9
Oracle object instance, 5.2.5
troubleshooting, 5.3
events
database, 4.7
ExampleDb, 2.2.1
examples, 2.1, 2.2.1.3
Code Wizard, 7.4
Excel demo, 2.5
Excel with OO4O automation, 2.5
ExecuteSQL method, 3.4.2.1, 3.8, 5.1.5
executing commands, 3.4
executing Data Definition Language (DDL) statements, 3.8.5
executing methods
OraObject, 4.4.2.4
executing PL/SQL blocks, 3.8

F

failover, 4.8
enabling, 4.8.2
notification, 4.8.2
Failover Notification Registration, 4.8.1
features
advanced, 4
new, Preface
fetch parameters, 5.1.2
FetchLimit property, 5.1.2
file locations, 1.5
Find method, 5.2.2
parser errors, 5.2.3
run-time errors, 5.2.3
Font property, 14
ForeColor property, 14

G

global.asa file, 2.4
grid control, 1.3

H

Height property, 14

I

IIS, 2.1
IIS Active Server Pages, 1.1
IIS Microsot Internet Information Server, 2.4
incorrectly installed software
errors, 5.3.1
incorrectly specified connection information, 5.3.2
Index data control property, 14
InProcServer Type Library, 2.3
input variables, 4.1
inserting multiple rows, 3.4.2.3
inserting new rows in table, 3.4.2.3
installation, 1.5
installation errors, 5.3.3
instance errors, 5.2.5
interfaces
OO4O, 4.3.1
retrieving, 4.2.1
interval data types, 4.10

J

Java stored procedures, 7

L

large objects, 5.1.8
Large Objects (LOBs)
using, 4.3
LastServerErr property, 5.2.1, 5.2.10
LastServerErrText property, 5.2.10
Left property, 14
LOB buffering, 4.3.4
LOB data
multiple-piece read operation, 4.3.6
reading, 4.3.6
writing, 4.3.5
LOB data single-piece read operation, 4.3.6
LOB datatatypes
support for, 4.1
LOBs, 5.1.8
data types, 4.3.1
retrieving from database, 4.3.3
using, 4.3
Long, 5.1.8
LONG RAW
chunking methods, 5.1.8
migration from, 5.1.8
types, 5.1.8
Long types, 5.1.8

M

messages
enqueuing, 4.6
monitoring, 4.6.1
methods
AutoBindDisable, 5.1.4
AutoBindEnable, 5.1.4
CreateCustomDynaset, 5.1.2
CreateSQL, 5.1.5
ExecuteSQL, 5.1.5
Find, 5.2.2, 5.2.3
Server, 10
MFC AppWizard, 2.8
Microsoft Access, 1.5.2
Microsoft data control, 1.3
Microsoft Foundation Classes, 1.4
Microsoft Information Server, 2.1
Microsoft Internet Information Server (IIS), 1.5.2
Microsoft Internet Service Manager, 2.4
Microsoft Transaction Server support, 3.10
Microsoft VC++, 1.8, 2.8
Microsoft Visual Basic
Microsoft Excel, 1.5.2
migration from LONG RAW to LOB or BFILE, 5.1.8
modfiying attributes
OraObject, 4.4.4.3
referenceable instance, 4.4.4.3
modifying
collection elements, 4.5.4
OraObject attributes, 4.4.2.3
MonitorForFailover method, 4.8.1
monitoring
messages, 4.6.1
MonitorStart method, 4.6.1
MonitorStop method, 4.6.1
MouseDown event, 12
MouseMove event, 12
MousePointer property, 14
MouseUp event, 12
Move data control method, 13
MTS support, 3.10
multicur.sql, 2.2.1.3
multiple Oracle homes, system requirements, 1.5
multiple rows, 3.4.2.3
multiple-piece operation, 4.3.4
multiple-piece read operation, 4.3.6
multiple-piece write operation, 4.3.5
multiplexing, 3.3.1
My Oracle Support, 1.7

N

Name data control property, 14
nested tables, 4.1, 4.5
network alias
ExampleDb, 2.2.1
network service alias, 2.2.1
network trips, 5.1.7
reducing, 5.1.5, 5.1.6
Nonblocking Errors, 5.2.2
nonblocking mode, 4.6.1
NoRefetch property, 14
notifications
application failover, 4.8, 4.8.1

O

object data types, 4.4
Object-relational features
support for, 4.1
Objects, 9
objects
OraBLOB, OraCLOB, 5.2.6
OraCollection, 5.1.7
OraCollection errors, 5.2.8
OraDynaset, 5.1.3, 5.1.7
OraField, 5.1.3
OraObject, 5.2.5
OraParamArray, 5.1.5, 5.1.7
OraParameter, 5.1.4
ODBC, 1.2
ODCERR_AUTOMATION error code, 5.2.11
oiplang.msb, 1.8.2
oipVER.dll, 1.8.2
OLE Automation Errors, 5.2.1
OLE Initialization or OLE Automation Errors, 5.3.1
OO4O Automation Server, 3.2
OO4O Code Wizard
requirements, 1.5.3
using, 7.3
OO4O Code Wizard Components, 7.1
OO4O Code Wizard examples, 7.4
OO4O Code Wizard Visual Basic Wizard, 7.3.2
OO4O File Locations, 1.6
OO4O In-Process Automation Server, 1.2, 5.2.1
OO4O methods, 10
OO4O Objects, 9
OO4O Redistributable Files, 1.8
OO4O server methods, 10
OO4O server properties, 11
OO4OCodeWiz.exe, 7.3
oo4oparm.reg file, 1.8.2
oorodemo.asp file, 2.4
option flags, 2.2.1.3
options
ORADYN_NOCACHE, 5.1.6
ORADYN_READONLY, 5.1.6
Options data control property, 14
OraAQ interface, 4.6
OraAQ object, 4.6.1
OraAQMsg object, 4.6
OraAttributes interface, 4.4.1
OraBLOB and OraCLOB
objects, 5.2.6
using, 4.3.2
Oracle Advanced Queuing Errors, 5.2.7
Oracle Call Interface (OCI), 4.4.3
Oracle Client, 1.5.2
Oracle Collection Errors, 5.2.8
Oracle Collections, 4.5
Oracle Data Control, 1.3, 1.8.2, 2.2.1, 2.8
requirements, 1.5.3
setting properties, 2.7.2
Oracle Data Control demonstration, 2.7
Oracle Data Control errors, 5.2.11
Oracle Data Control events, 12
DragDrop, 12
DragOver, 12
Error, 12
MouseDown, 12
MouseMove, 12
MouseUp, 12
Reposition, 12
Validate, 12
Oracle Data Control methods, 13
Drag, 13
Move, 13
Refresh, 13
UpdateControls, 13
UpdateRecord, 13
ZOrder, 13
Oracle Data Control properties, 14
AllowMoveLast, 14
AutoBind lAutoBind property, 14
BackColor, 14
Caption, 14
Connect, 14
Database, 14
DatabaseName, 14
DirtyWrite, 14
DragIcon, 14
DragMode, 14
EditMode, 14
Enabled, 14
Font, 14
ForeColor, 14
Height, 14
Index, 14
Left, 14
MousePointer, 14
Name, 14
NoRefetch, 14
Options, 14
OracleMode, 14
ReadOnly, 14
Recordset, 14
RecordSource, 14
Session, 14
Tag, 14
Top, 14
TrailingBlanks, 14
Visible, 14
Width, 14
Oracle Data Control with Visual Basic, 2.7
Oracle Errors, 5.2.10
Oracle In-Process Server Type library, 1.5.3
Oracle LOB errors, 5.2.6
Oracle LOBs, Objects, and Collections, 4.2.1
instantiating, 4.2
Oracle network errors, 5.3.2
Oracle Number errors, 5.2.9
Oracle Object Instance Errors, 5.2.5
Oracle Objects for OLE (OO4O) overview, 1.1
Oracle Objects for OLE C++ Class Library, 1.4
Oracle Objects for OLE server methods, 10
Oracle Objects for OLE Server Objects, 9
Oracle Objects for OLE server properties, 11
Oracle Universal Installer, 1.5.2, 1.8
OracleMetaLink, 1.7
OracleMode property, 14
oraclm32.dll, 1.8
OraCollection, 4.5
OraCollection interface, 4.5.1
OraCollection object, 5.1.7, 5.2.8
creating a dynaset from, 4.5.6
oraconst.txt, 2.2.1.3
OraDatabase object
pool of, 5.1.9
pool, performance, ASP applications, 3.6
OraDatabase objects, 13
ORADC Control, 2.8
oradc.ocx, 1.8, 1.8.2
ORADYN_NOCACHE option, 3.4.1, 5.1.6
ORADYN_READONLY option, 5.1.6
OraDynaset
objects, 13
XML from, 4.9
OraDynaset object, 5.1.3, 5.1.7
using, 4.3.3
oraexamp.sql, 2.2.1.3
OraField objects, 5.1.3
OraFields collection, 5.1.3
OraMetaData object, 4.11
OraObject interface, 4.4.1
using, 4.4.2
OraObject object, 4.4
accessing, 4.4.4.2
accessing attributes of, 4.4.2.2
executing methods, 4.4.2.4
instance errors, 5.2.5
modfiying attributes, 4.4.4.3
modifying attributes of, 4.4.2.3
retrieving, 4.4.2
OraParamArray object, 5.1.5, 5.1.7
OraParameter object, 5.1.4
using, 4.4.4.1.2
OraRef interface
about, 4.4.3
using, 4.4.4
OraRef object, 4.4
OraSQLStmt, 3.4.2.1
ORATYPE_CURSOR, 3.8.3
output variables, 4.1

P

parameter bindings, 5.1.4
Parameter object
using, 4.3.3, 4.4.2.1.2
ParameterArrays, 3.4.2.3
performance, 3.4.1, 3.4.2.1, 3.8, 5.1.2
considerations with LOB, 4.3.4
improvement, 5.1.6
PL/SQL bind variables, 3.8
PL/SQL blocks
executing, 3.8
PL/SQL bulk collect feature, 5.1.7
PL/SQL cursor variables, 3.8.3, 3.8.3
PL/SQL procedures, 5.1.4, 7
PL/SQL support, 3.8
PL/SQL tables
returning, 3.8.4
processing
arrays, 5.1.5
properties, 11
FetchLimit, 5.1.2
LastServerErr, 5.2.1, 5.2.10
LastServerErrText, 5.2.10
property values, 2.2.1.3

Q

queries, 3.4.1
queueing, 4.6
quick tour, 6

R

ReadOnly property, 14
Recordset data control property, 14
RecordSource data control property, 13, 14
reducing round-trips, 5.1.5
REF
retrieving from database, 4.4.4.1
referenceable instance, 4.4.4.2, 4.4.4.3
Refresh data control method, 13
Refresh method, 3.8
Reposition event, 12
required setups, 1.5
required support files (RSF), 1.5.2
requirements
OO4O Code Wizard, 1.5.3
Oracle Data Control, 1.5.3
retreiving
interfaces, 4.2.1
retrieving
collection types, 4.5.2
LOBs from database, 4.3.3
OraObject, 4.4.2
REF, 4.4.4.1
returning PL/SQL tables, 3.8.4
round-trips, 4.3.4, 5.1.7
reducing, 5.1.5, 5.1.6
run-time errors, 5.2.3

S

sample application
quick tour, 6
schema objects, 4.11
scott schema, 2.2.1
scott/tiger, 2.2
SELECT statements, 3.4.1
server methods, 10
server properties, 11
Session data control property, 14
Setting Oracle Data Control Properties Programmatically, 2.7.2
setup
required, 1.5
single-piece operation, 4.3.4
single-piece read operation, 4.3.6
single-piece write operation, 4.3.5
sqldembld7.sql, 2.2.1
support for Microsoft Transaction Server, 3.10
support for PL/SQL, 3.8
system requirements, 1.5.2

T

Tag property, 14
tnsnames.ora file, 2.2.1
Top property, 14
TrailingBlanks property, 14
transaction control, 3.9
troubleshooting, 5.3
tuning, 5.1.2
Type Library, 2.3
types, 5.1.8
LONG RAW, 5.1.8

U

Universal Installer, 1.5.2, 1.8
update database records, 3.4.2.1
Update method, 13
UpdateControls method, 13
UpdateRecord method, 13
Updating files and registrations, 1.8.2
using
Dynaset object, 4.4.4.1.1
OraParameter object, 4.4.4.1.2
OraRef interface, 4.4.4
using a Dynaset object, 4.4.2.1.1
using a Parameter object, 4.4.2.1.2
using Automation Clients, 2.1
using Microsoft C++, 2.6
using OO4O Automation with Active Server Pages (ASP), 2.4
using OO4O Automation with Excel, 2.5
using OO4O Automation with Visual Basic, 2.3
using OraBLOB and OraCLOB, 4.3.2
using OraObject interface, 4.4.2
using read-only forward-only dynasets, 5.1.6
using the OO4O Code Wizard, 7.3
using the Oracle Data Control with MS VC++, 2.8
using the Oracle Data Control with Visual Basic, 2.7
using the PL/SQL bulk collect feature, 5.1.7

V

Validate event, 12, 12, 13
VARRAY collection type
creating, 4.5.5
VARRAYs, 4.1, 4.5
Visible property, 14
Visual Basic, 1.1, 5.1.1, 12, 13, 14
Visual Basic for Applications, 1.1
Visual Basic with OO4O automation, 2.3
Visual Basic Wizard Add-in to Code Wizard, 7.3.2
Visual Basic, Excel, 2.1
Visual C++, 1.4, 2.6, 2.8
Visual C++, JavaScript, 1.1

W

Width property, 14
Windows 2000, 1.5.2
Windows registry parameters, 5.1.2
Windows Server 2003, 1.5.2
Windows Vista, 1.5.2
Windows XP, 1.5.2
writing
LOB data, 4.3.5

X

XML
generation, 4.9
XML from OraDynaset, 4.9
XML support for, 4.9
XSLT, 4.9

Z

z-order, 13
ZOrder methods, 13
PKD"ZPPKY2%@OEBPS/dcprop018.htm MousePointer Property

MousePointer Property

Applies To

Oracle Data Control

Description

Determines the type of mouse pointer displayed when the mouse is over a particular part of a form or control at run time.

PKU PKY2%@OEBPS/sermthod045.htms CopyToClipboard Method

CopyToClipboard Method

Applies To

OraDynaset Object

Description

Copy the rows from the dynaset to the clipboard in text format.

Usage

OraDynaset.CopyToClipboard(NumOfRows, colsep, rowsep)

Arguments

The arguments for the method are:

ArgumentsDescription
NumOfRowsNumber of rows to be copied to the dynaset
colsep [optional]Column separator in the CHAR data type to be inserted between columns
rowsep [optional]Row separator in the CHAR data type to be inserted between rows

Remarks

This method is used to help transfer data between the Oracle Object for OLE cache (dynaset) and Windows applications, such as Excel or Word. The CopyToClipboard method copies data starting from the current position of the dynaset up to the last row.

The default column separator is TAB (ASCII 9).

The default row separator is ENTER (ASCII 13).

Examples

The following example copies data from the dynaset to the clipboard. Paste this code into the definition section of a form, then press F5.

Sub Form_Load ()
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&) 
 
'Now call CopyToClipboard to copy the entire dynaset
 OraDynaset.CopyToClipboard -1, chr(9), chr(13)
End Sub
PK3xsPKY2%@OEBPS/sermthod137.htmU Neg (OraIntervalYM) Method

Neg (OraIntervalYM) Method

Applies To

OraIntervalYM Object

Description

Negates the OraIntervalYM object.

Usage

OraIntervalYMObj.Neg

Remarks

The result of the operation is stored in the OraIntervalYM object, overwriting any previous value. There is no return value.

PKx$ZUPKY2%@OEBPS/dcprop028.htmI Top Property

Top Property

Applies To

Oracle Data Control

Description

Determines the distance between the internal top edge of an object and the top edge of its container.

PKpgBNIPKY2%@OEBPS/serprop127.htmu TableName (OraRef) Property

TableName (OraRef) Property

Applies To

OraRef Object

Description

A String containing the name of the object table in which the underlying referenceable object resides.

Usage

table_name = OraRef.TableName

Data Type

String

Remarks

This property is read-only.

PKO.PKY2%@OEBPS/sermthod069.htmn Delete (OraCollection) Method

Delete (OraCollection) Method

Applies To

OraCollection Object

Description

Deletes an element at given index. This method is available only in an OraCollection of type ORATYPE_TABLE (nested table).

Usage

OraCollection.Delete index

Arguments

The arguments for the method are:

ArgumentsDescription
[in] indexAn Integer specifying the index of the element to be deleted.

Remarks

The Delete method creates holes in the client-side nested table. This method returns an error if the element at the given index has already been deleted or if the given index is not valid for the given table.

Examples

The following example illustrates the Delete method. Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in OraCollection Examples" .

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim CourseList as OraCollection
 
'create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from division
set OraDynaset = OraDatabase.CreateDynaset("select * from division", 0&)
 
'retrieve a Courses column from Division. 
'Here Value property of OraField object returns CourseList OraCollection
set CourseList = OraDynaset.Fields("Courses").Value
 
'Delete the CourseList  NestedTable at index 2. 
'Before that lock should be obtained
OraDynaset.Edit
CourseList.Delete 2
 
OraDynaset.Update
PKuOPKY2%@OEBPS/sermthod023.htm AutoBindEnable Method

AutoBindEnable Method

Applies To

OraParameter Object

OraParamArray Object

Description

Sets the AutoBind status of a parameter.

Usage

oraparameter.AutoBindEnable

Remarks

If a parameter has AutoBindEnabled status, it is automatically bound to a SQL or PL/SQL statement.

Examples

This example demonstrates the use of the AutoBindDisable and AutoBindEnable methods to prevent unnecessary parameter binding while creating various dynasets that use different parameters. Copy this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession. OpenDatabase("ExampleDb", _
                  "scott/tiger", 0&)
 
 'Add the job input parameter with initial value MANAGER.
 OraDatabase.Parameters.Add "job", "MANAGER", 1
 
 'Add the deptno input parameter with initial value 10.
 OraDatabase.Parameters.Add "deptno", 10, 1
 
 'Disable the deptno parameter for now.
 OraDatabase.Parameters("deptno").AutoBindDisable
 
 'Create the OraDynaset Object using the job parameter.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp" & _ 
                 "where job = :job", 0&)
 
 'Only employees with job=MANAGER will be contained in the dynaset.
 MsgBox "Employee #" & OraDynaset.Fields("empno").value & "," &  _
                 "Job=" & OraDynaset.Fields("job").value
 
 'Enable the deptno parameter and disable the job parameter.
 OraDatabase.Parameters("deptno").AutoBindEnable
 OraDatabase.Parameters("job").AutoBindDisable
 
 'Create the OraDynaset Object using the deptno parameter.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp" & _ 
                  "where deptno = :deptno", 0&)
 
 'Only employees with deptno=10 will be contained in the dynaset.
 MsgBox "Employee #" & OraDynaset.Fields("empno").value & "," & _
                  "DeptNo=" & OraDynaset.Fields("deptno").value
 
End Sub
PK҃!PKY2%@OEBPS/dcprop012.htm) Enabled Property

Enabled Property

Applies To

Oracle Data Control

Description

Determines whether the control can respond to user-generated events.


See Also:

Visible Property

PK PKY2%@OEBPS/serprop031.htm? DbPoolCurrentSize Property

DbPoolCurrentSize Property

Applies To

OraSession Object

Description

Contains the number of currently active database objects in the pool. It is a read-only property.

Usage

curr_size = OraSession.DbPoolCurrentSize

Data Type

Integer

Remarks

An active database object in the pool that contains a live connection to the database.

PK#PKY2%@ OEBPS/toc.htm Table of Contents

Contents

Title and Copyright Information

Preface

What's New in Oracle Objects for OLE?

1 Introducing Oracle Objects for OLE

2 Using Oracle Objects for OLE with Automation Clients

3 Basic Features

4 Advanced OO4O Features

5 Tuning and Troubleshooting

6 Quick Tour with Visual Basic

7 Code Wizard for Stored Procedures

8 Introduction to Automation Objects

9 Server Objects

10 Server Methods

11 Server Properties

12 Data Control Events

13 Data Control Methods

14 Data Control Properties

A Appendix A

Glossary

Index

PK;PKY2%@OEBPS/serprop083.htm\ Name Property

Name Property

Applies To

OraClient Object

OraField Object

OraParameter Object

OraSession Object

OraParamArray Object

OraServer Object

OraSubscription Object

Description

Returns the name used to identify the given object. Not available at design time and read-only at run time.

Usage

client_name = oraclient.Name
field_name = orafield.Name
parameter_name = oraparameter.Name 
paramarray_name = oraparamarray.Name
session_name = orasession.Name 
server_name = oraserver.Name
subscription_name = orasubscription.Name

Data Type

String

Remarks

  • oraclient.Name

    Returns the name of the specified OraClient object. This value is always local.

  • orafield.Name

    Returns the name of the specified OraField object. If this is a true database field (not an alias), this use returns the name of the field as it appears in the database. If a SQL statement was executed that contains, for example, calculated select list items or column aliases, then the name is the actual text provided in the SQL SELECT statement.

  • oraparameter.Name

    Returns the name of the specified OraParameter object. In addition to identifying the parameter within a parameters collection, the parameter name is also used to match placeholders within SQL and PL/SQL statements for the purposes of parameter binding.

  • oraparamarray.Name

    Returns the name of the specified OraParamArray object. In addition to identifying the parameter within a parameters collection, the parameter name is also used to match placeholders within SQL and PL/SQL statements for the purposes of parameter binding.

  • orasession.Name

    Returns the name of the specified OraSession object. For automatically created sessions, this is the name assigned by the system (usually a hexadecimal number). For user-created sessions, this is the name originally provided in the CreateSession method. Once created, a session name cannot be changed.

  • oraserver.Name

    Returns the name of the physical connection of the specified OraServer object.

  • orasubscription.Name

    Returns the name used to represent the subscription. Name here refers to the subscription name in the form of the string 'SCHEMA.QUEUE' if the registration is for a single consumer queue and 'SCHEMA.QUEUE:CONSUMER_NAME' if the registration is for a multiple consumer queue.


See Also:


PK#`Va\PKY2%@OEBPS/img_text/o4o00003.htm Description of the illustration o4o00003.gif

This illustration shows the References dialog box with a check mark beside Oracle In-Process Server 5.0 Type library.

PK PKY2%@OEBPS/img_text/connect.htm Description of the illustration connect.gif

This illustration shows the Connect dialog box with text fields for User Name, Password, and Connect String.

PKPKY2%@OEBPS/img_text/boxprops.htm Description of the illustration boxprops.gif

This screenshot shows a TextBox control that sets up display of the employee numbers.

PKPKY2%@OEBPS/img_text/exsheet.htm} Description of the illustration exsheet.gif

This illustration shows a spreadsheet, with columns and sample data for empno, ename, job, and so on.

There is sample data, and there are two buttons labeled Refresh and Clear that run the macros, EmpData and ClearData, respectively.

PKY\PKY2%@OEBPS/img_text/o4o00002.htm/ Description of the illustration o4o00002.gif

This is an illustration of the object hierarchy starting with OraField and OraParameter at the same level.

At the next level, the following descend from OraField and OraParameter: OraObject, OraRef, OraCollection, OraBlob, OraClob, OraBFile, and value of all other scalar types.

At the third level, OraAttribute descends from OraObject or from OraRef, and element values descend from OraCollection.

PK D74/PKY2%@OEBPS/img_text/iissamp.htmK Description of the illustration iissamp.gif

This illustration shows the SQL Select Query field with the entry select * from emp.

The results are shown in columns for EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, and DEPTNO.

PKXPKPKY2%@OEBPS/img_text/o4o00016.htmf Description of the illustration o4o00016.gif

This hierarchy diagram starts with the OraDatabase object, steps down to OraAQ, then OraAQMsg which contains user-defined types and raw types.

A branch goes out from OraAQMsg to the recipient, OraAQAgent.

PKmHkfPKY2%@OEBPS/img_text/o4o00004.htm Description of the illustration o4o00004.gif

This is a screenshot of the Components option of the Project menu. Oracle Data Control has been checked, under the Controls tab.

PKPKY2%@OEBPS/img_text/wizproc.htm= Description of the illustration wizproc.gif

This screenshot shows the OO4O Code Wizard for Stored Procedures dialog box; it is displaying a tree of the available Oracle packages and stored procedures.

The text above the tree says "Select Stored Procedures and enter a filename to host your Stored Procedures. Upon clicking OK, OO4O Code Wizard will add the file to our Visual Basic Project.

Below the tree is a text field and browse box for entering the file name.

Next there are options for Appending execution code to the file and Overwriting the file content with the execution code.

Next is a list for the component types. The one currently chosen is Class Module (*.cls).

Next is a check box to Connect to the database next time this add-in is launched, which is currently checked.

Next are OK and Cancel buttons.

PKS@PKY2%@OEBPS/img_text/o4o00001.htm+ Description of the illustration o4o00001.gif

This is a hierarchy diagram.

The top of the diagram is the OraSession.

Next is OraServer, followed by OraDatabase

The diagram indicates that the following are created from OraDatabase:

OraSQLStmt

OraDynaset

OraParameters

OraParameterArray

OraMetaData

OraAQ

The diagram also indicates the following:

OraField belongs to the OraDynaset object.

OraParameter belongs to the OraParameters object.

OraMDAttribute belongs to the OraMetaData object.

OraAQMsg belongs to the OraAQ object.

PKFPKY2%@OEBPS/img_text/oradcprp.htmD Description of the illustration oradcprp.gif

This is a screenshot of the ORADC Control dialog box showing the All tab. It lists Properties and sample values including scott/tiger for Connect and exampledb for DatabaseName.

PKeBIDPKY2%@OEBPS/img_text/oradcemp.htmV Description of the illustration oradcemp.gif

This is a screenshot of the ORADC Control example. It shows a columnar listing with data for EMPNO, ENAME, JOB, MGR and HIREDATE. Scroll bars allow for scrolling to columns and records not shown.

PKп[VPKY2%@OEBPS/img_text/runform.htm0 Description of the illustration runform.gif

This is a screenshot of the actual form as it appears when it runs, with sample data.

The screenshot shows the following:

Employee Number is 7369.

Employee Name is Smith.

Employee Job is Clerk.

At the bottom, Oracle Data Control appears, with next, previous, first, and last arrows.

PKSCePKY2%@OEBPS/img_text/dcprops.htms Description of the illustration dcprops.gif

This is a screenshot of the Properties window with the following settings:

Caption property set to Oracle Data Control.

Connect property set to scott/tiger.

RecordSource property set to select * from emp.

PK xsPKY2%@OEBPS/img_text/o4o00015.htm: Description of the illustration o4o00015.gif

This diagram shows on one side a connection from OraServer to Oracle Database, and on the other side, a connection to the OraSession and OraDatabase and user sessions.

PKb?:PKY2%@OEBPS/img_text/emp8.htmw Description of the illustration emp8.gif

This is a screenshot of the Employee Form example.

It shows the following fields and sample values:

Employee Number 7839

Employee Name King

Job President

Manager blank

Hire Date 11/17/81

Salary 5000

Commission Blank

Department Number 10

At the bottom buttons, are available to move to the first, last, next and previous employee.

Also buttons are available to Add, Update, Commit, Delete, Find, and Batch Insert

PKf7|wPKY2%@OEBPS/img_text/oradc.htm Description of the illustration oradc.gif

This is a screenshot of the Components option of the Project menu.

Oracle Data Control has been checked, under the Controls tab.

PK3<PKY2%@OEBPS/img_text/batch2.htm Description of the illustration batch2.gif

This is a screenshot of the Batch Insert form.

It contains a grid with columns and sample data for Employee, Employee Name, and Department.

After the grid, there are entry fields with sample data as follows:

Employee Number 300, Employee Name Frank, Department Number 20.

After the entry fields, there are Add to Grid and CommitGrid buttons.

PK)kPKY2%@OEBPS/img_text/o4o00000.htmz Description of the illustration o4o00000.gif

This is a hierarchical diagram of the software layers of OO4O.

At the base is Oracle Database.

On top of this is the Oracle Client Libraries (OCI, CORE, and NLS).

On top of this is the OO4O In-Process Automation Server.

Next is COM/DCOM.

Next, in parallel, are the C++ Class Libraries, the Oracle Data Control and Automation Controllers (VB, Excel, AS).

On top of these, standing at the top of the hierarchy, are the Data Aware ActiveX Controls.

PKȽjzPKY2%@OEBPS/img_text/oradcins.htmM Description of the illustration oradcins.gif

This is a screenshot of the Insert ActiveX Control dialog box.

It includes the ORADC control as well as the ObjectBrowser control, Oracle Sound Control, Popup Control, and others.

PKXRMPKY2%@OEBPS/img_text/exmacros.htm Description of the illustration exmacros.gif

This screenshot shows a dialog box with a list of possible macros.

The first text field, called Macro Name/Reference displays the selected macro, EmpData.

There are buttons on the right side: Run, Cancel, Step, Edit, Delete, and Options.

There is also a description field at the bottom for those macros that provide a description.

PKE PKY2%@OEBPS/sermthod102.htm< HypCos (OraNumber) Method

HypCos (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the hyperbolic cosine of an OraNumber object.

Usage

OraNumber.HypCos

Remarks

The result of the operation is stored in an OraNumber object. There is no return value.

PK)=NA<PKY2%@OEBPS/serobjch002.htm OraAQAgent Object

OraAQAgent Object

Description

The OraAQAgent object represents a message recipient and is only valid for queues that allow multiple consumers.

Remarks

An OraAQAgent object can be instantiated by invoking the AQAgent method. For example:

Set agent = qMsg.AQAgent(name)

Methods

None.

Properties

Example

The following Visual Basic example illustrates a simple use of the advanced queuing feature. A message of a user-defined type, MESSAGE_TYPE, is enqueued into a queue, msg_queue, that supports multiple consumers.

Dim q as OraAQ 
Dim qMsg as OraAQMsg 
Dim agent as OraAQAgent 
Set q = OraDatabase.CreateAQ("msg_queue") 
Set qMsg = q.AQMsg(1,"MESSAGE_TYPE") 
 
'To add SCOTT as a recipient for the message, 
Set agent = qMsg.AQAgent("SCOTT") 
 
'To enqueue, 
q.Enqueue 

See Also:


PK  PKY2%@OEBPS/serobjch027.htm OraTimeStampTZ Object

OraTimeStampTZ Object

Description

The OraTimeStampTZ object represents an Oracle TIMESTAMP WITH TIME ZONE data type and provides methods for operations on this Oracle data type. The OraTimeStampTZ represents a date-time value in a specific time zone that stores the following information: year, day, hour, minute, second, nanosecond, and the time zone.

Remarks

The OraTimeStampTZ object is created by the OraSession.OraCreateTimeStampTZ method or by calling the Clone method on an existing OraTimeStampTZ object.

An OraTimeStampTZ object can be bound using ServerType ORATYPE_TIMESTAMPTZ. This allows the binding of a value to a parameter associated with an Oracle TIMESTAMP WITH TIME ZONE data type in a SQL or PL/SQL statement.

When binding a string associated with an TIMESTAMP WITH TIME ZONE data type, the ServerType must be specified to be a string type (for example, ORATYPE_VARCHAR2, ORATYPE_STRING) and the string must be in the format specified by NLS_TIMESTAMP_TZ_FORMAT.

Properties

Methods

PKC?PKY2%@OEBPS/serobjch018.htm) OraObject Object

OraObject Object

Description

The OraObject interface is a representation of an Oracle value instance (non-referenceable object instance or embedded objects). Value instances are instances of an Oracle object type stored in the column of a table or attribute of an another Oracle object instance or element of an Oracle collection.

Remarks

Implicitly an OraObject object contains a collection interface for accessing and manipulating (updating and inserting) individual attributes of an value instance. Individual attributes can be accessed by using a subscript or the name of the attribute.

The OraObject attribute index starts at 1. The Count property returns the total number of attributes. Each attribute of the underlying value instance is represented as an OraAttribute object.

Attribute values are retrieved as variants. The Variant type of the attribute depends on the attribute type of the object. Attribute values can be null and can be set to Null. For object types REF, LOB, and collection, attribute values are returned as corresponding OO4O objects for that type.

The CreateOraObject method on the OraDatabase object returns the OraObject object. The value instance associated with this OraObject object is created in the client-side object cache.

For information about executing a member method of a value instance, see "Executing a Member Method of an Oracle Object Instance".

For information about initializing an OraObject object representing a value instance in OO4O or executing a member method of a value instance, see "Instantiating Oracle LOBs, Objects, and Collections".

Properties

Methods

Examples

See "Schema Objects Used in the OraObject and OraRef Examples" for schema descriptions used in examples of OraObject/OraRef objects.

Example: Accessing Attributes of an OraObject Object

The following example accesses the attributes of the ADDRESS value instance in the database.

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Address as OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb",  "scott/tiger", 0&)
 
'create a dynaset object from person_tab
set OraDynaset = OraDatabase.CreateDynaset("select * from person_tab",0&)
 
'retrieve a address column from person_tab. Here Value property of OraField  
'object returns Address OraObject 
set Address = OraDynaset.Fields("Addr").Value
 
'access the attribute by dot notation
msgbox Address.Street
 
'access the attribute using '!' notation ( early binding application) 
msgbox Address!Street
 
'access the attribute by index
msgbox Address(1)
 
'access the attribute by name
msgbox Address("Street")
 
'access all the attributes of Address OraObject in the dynaset
Do Until OraDynaset.EOF
    For index = 1 To Address.Count   
        msgbox Address(index)
    Next Index    
OraDynaset.MoveNext
Loop

Example: Updating Attributes of an OraObject Object

The following examples modify the attributes of the ADDRESS value instance in the database.

Dynaset Example

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Address as OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from person_tab
set OraDynaset = OraDatabase.CreateDynaset("select * from person_tab", 0&)
 
'retrieve a address column from person_tab. 
'Here Value property of OraField object returns Address OraObject 
 
set Address = OraDynaset.Fields("Addr").Value
 
'start the Edit operation and modify the Street attribute
OraDynaset.Edit
Address.Street  =  "Oracle Parkway"
OraDynaset.Update

Parameter Example

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim Address as OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create an  OraParameter object represent Address object bind Variable
OraDatabase.Parameters.Add "ADDRESS", Empty, ORAPARM_INPUT, ORATYPE_OBJECT, _
                    "ADDRESS"
 
'get the uninitialized 'Empty' Address object from OraParameter
set Address = OraDatabase.Parameters("ADDRESS").Value
 
'modify the 'Street' attribute of the Address
Address.Street = "Oracle Parkway"
 
'execute the sql statement which updates Address in the person_tab
OraDatabase.ExecuteSQL ("update person_tab set addr = :ADDRESS where age = 40")

Example: Inserting an OraObject Object

The following examples insert a new field (value instance) called ADDRESS in the database.

Dynaset Example

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim AddressNew as OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from person_tab
set OraDynaset = OraDatabase.CreateDynaset("select * from person_tab", 0&)
 
' create a new Address object in OO4O 
set AddressNew = OraDatabase.CreateOraObject("ADDRESS")
 
'initialize the Address object attribute to new value
AddressNew.Street = "Oracle Parkway"
AddressNew.State = "CA"
 
'start the dynaset AddNew operation and set the Address field to new address 
' value
OraDynaset.Addnew
OraDynaset.Fields("ADDR").Value = AddressNew
OraDynaset.Update

OraParameter Example

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim AddressNew as OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create an  OraParameter object represent Address object bind Variable
OraDatabase.Parameters.Add "ADDRESS", Null, ORAPARM_INPUT, ORATYPE_OBJECT, _ 
                     "ADDRESS"
 
' create a new Address object in OO4O 
set AddressNew = OraDatabase.CreateObject("ADDRESS")
 
'initialize the Address object attribute to new value
AddressNew.Street = "Oracle Parkway"
AddressNew.State = "CA"
 
'set the Address to ADDRESS parameter
Oradatabase.Parameters("ADDRESS").Value = AddressNew
 
'execute the sql statement which updates Address in the person_tab
OraDatabase.ExecuteSQL ("insert into person_tab values (30,'Eric',:ADDRESS))
PK^*))PKY2%@OEBPS/serobjch016.htm|' OraMetaData Object

OraMetaData Object

Description

The OraMetaData object is returned by invoking the Describe method of the OraDatabase interface. The Describe method takes the name of a schema object, such as the emp table, and returns an OraMetaData object. The OraMetaData object provides methods for dynamically navigating and accessing all the attributes (OraMDAttribute collection) of a schema object described.

An OraMetaData object is a collection of OraMDAttribute objects that represent the description information about a particular schema object in the database. The following table is an example of attributes for a OraMetaData object of type table (ORAMD_TABLE).

Table 9-2 list the ORAMD_TABLE attributes.

Remarks

The OraMetaData object can be visualized as a table with three columns:

  • Metadata attribute name

  • Metadata attribute value

  • Flag specifying whether the Value is another OraMetaData object

The OraMDAttribute objects contained in the OraMetaData object can be accessed by creating a subscript that uses ordinal integers or by using the name of the property. Referencing a subscript that is not in the collection (0 to Count-1) results in the return of a NULL OraMDAttribute object.

Properties

Methods

Examples

See "Schema Objects Used in OraMetaData Examples" for OraMetaData schema definitions used in these examples.

The following Visual Basic example illustrates a simple use of this facility. It retrieves and displays several attributes of the emp table.

Set empMD = OraDatabase.Describe("emp") 
 
'Display the name of the Tablespace 
msgbox empMD("tablespace") 
 
'Display name, data type, and size of each column in the emp table. 
Set empColumnsMD = empMD("Columns") 
for I = 1 to empColumns.Count 
   Set ColumnMD = empColumnsMD(I) 
   MsgBox ColumnMD("Name") & ColumnMD("Data Type") & ColumnMD("Length")
Next I

Example: Describing a User-Defined Type

See "Example: Describing a User-Defined Type"

Example: Describing Unknown Schema Objects

See "Example: Describing Unknown Schema Objects"

PK"Q'|'PKY2%@OEBPS/sermthod082.htmf ElementValue Method

ElementValue Method

Applies To

OraCollection Object

Description

Returns the current value of the collection element to which the iterator points.

Usage

elem_val = OraCollection.ElementValue

Arguments

The arguments for the method are:

ArgumentsDescription
elem_valA Variant representing element value of the collection.

ElementType

For elements of type Object and REF, element values are returned as corresponding OO4O objects for that type. The following table shows the element type and return value of the elements:

ElementTypeElement Value
ObjectOraObject
REFOraRef
DateString
NumberString
CHAR,VARCHAR2String
RealReal
IntegerInteger

Remarks

Calling this method when the EOC or BOC property returns True raises an error. The Variant type of the element depends on the element type of the collection.

Examples

See "Example: OraCollection Iterator"

PKq%PKY2%@OEBPS/serprop.htm%< Server Properties

11 Server Properties

This chapter describes the Oracle Objects for OLE Server properties.

For an introduction to Server Objects, see "Oracle Objects for OLE In-Process Automation Server" .

This chapter contains these topics:

Server Properties: A to F

Server Properties: E to L

Server Properties: M to O

Server Properties: P to T

Server Properties: U to Z

PKRq*<%<PKY2%@OEBPS/serprop152.htm{ XMLAsAttribute Property

XMLAsAttribute Property

Applies To

OraField Object

Description

Gets and sets a Boolean value that indicates whether this field name is given as an attribute. If the value is False, the field name is given as an element. Readable and writable at run time.

Usage

OraField.XMLAsAttribute = True 

Remarks

The default value for this property is False.

Fields of type BLOB, CLOB, BFILE, Object, VARRAY, Nested Table, Long or LongRaw cannot be XML attributes.

PK\sPKY2%@OEBPS/sermthod051.htm  CreateAQ Method

CreateAQ Method

Applies To

OraDatabase Object

Description

Creates an instance of the OraAQ object.

Usage

Set OraAq = OraDatabase.CreateAQ(Qname)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] QnameA String representing the name of the queue in the database.

Remarks

None.

PKn PKY2%@OEBPS/serprop089.htm X Nanonseconds Property

Nanonseconds Property

Applies To

OraIntervalYM Object

Description

Gets and sets the Nanoseconds attribute of an OraIntervalDS object.

Usage

nanoseconds = OraIntervalDSObj.NanosecondsOraIntervalDSObj.Nanoseconds = nanoseconds

Arguments

ArgumentsDescription
[in] nanosecondsAn Integer specifying the value of the Nanoseconds attribute of the OraIntervalDS object.

Data Type

Integer

PK<n PKY2%@OEBPS/sermthod128.htm? MonitorForFailover Method

MonitorForFailover Method

Applies To

OraDatabase Object

Description

Registers the failover notification handler of the application.

Usage

OraDatabase.MonitorForFailover FOSink, FOCtx

Arguments

The arguments for the method are:

ArgumentsDescription
[in] FOSinkAn IDispatch interface implementing the OnFailover method which is notified in event of a failover.
[in] FOCtxContext-specific information that the application wants passed into the OnFailover method in the event of a failover.

Remarks

To receive failover notifications, a notification handler must be registered with the MonitorForFailover method. The notification handler must be an automation object (a class module in Visual Basic) that implements the OnFailover method.

The syntax of the method is:

Public Function OnFailover(Ctx As Variant, fo_type As Variant,fo_event as Variant, fo_OraDB as Variant) 
VariantsDescription
[in] CtxPassed into the MonitorForFailover method by the application. Context-sensitive information that the application wants passed in event of a failover.
[in] fo_typeFailover type. This is the type of failover that the client has requested. The values are:
  • OO4O_FO_SESSION indicates only session failover requested.

  • OO4O_FO_SELECT indicates select failover and session failover requested.

[in]

fo_event

Failover event. This indicates the state of the failover. It has several possible values:
  • OO4O_FO_BEGIN indicates that failover has detected a lost connection and failover is starting.

  • OO4O_FO_END indicates successful completion of a failover.

  • OO4O_FO_ABORT indicates that a failover was unsuccessful, and there is no option of retrying.

  • OO4O_FO_ERROR indicates that a failover was unsuccessful, and gives the application the opportunity to handle the error and retry the failover. The application can retry the failover, by programming the OnFailover method to return OO4O_FO_RETRY.

  • OO4O_FO_REAUTH indicates that a user handle has been reauthenticated. This applies to the situation where a client has multiple user sessions on a single database connection. During the initial failover, only the active user session is failed over. Other sessions are failed over when the application tries to use them. This is the value passed to the callback during these subsequent failovers.

[in] fo_OraDBThe OraDatabase object of the user session that is being failed over. Valid only when the fo_event variant is OO4O_FO_REAUTH.

Examples

Failover Notification Example

See Example: Failover Notification.

PKxVD?PKY2%@OEBPS/sermthod018.htm3 ArcSin (OraNumber) Method

ArcSin (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the arc sine of an OraNumber object. Result is in radians.

Usage

OraNumber.ArcSin

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

This method returns an error if the OraNumber object is less than -1 or greater than 1.

PK%PKY2%@OEBPS/serprop145.htm[ Value (OraMDAttribute) Property

Value (OraMDAttribute) Property

Applies To

OraMDAttribute Object

Description

A String containing the value of the attribute.

Usage

value = OraMDAttribute.Value

Data Type

String

Remarks

This is the default property.

PK'2`[PKY2%@OEBPS/dcevents007.htm ] Reposition Event

Reposition Event

Applies To

Oracle Data Control

Description

This event is fired whenever the database record pointer is successfully repositioned to a new location. The Validate event is always fired before Reposition.

PK PKY2%@OEBPS/sermthod073.html( Describe Method

Describe Method

Applies To

OraDatabase Object

Description

Describes a schema object. This method returns an instance of the OraMetaData interface.

Usage

OraMetaDataObj = OraDatabase.Describe(SchemaObjectName)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] SchemaObjectNameA String representing the name of the schema object to be described.

Remarks

The following schema object types can be described:

  • Tables

  • Views

  • Procedures

  • Functions

  • Packages

  • Sequences

  • Collections (VARRAYs or nested tables)

  • Types

Describing any other schema object (for example, a column) or an invalid schema object name raises an error. You should navigate to schema objects not listed here, rather than describing them directly.

This method takes the name of a schema object, such as emp, and returns a COM Automation object (OraMetaData). The OraMetaData object provides methods for dynamically navigating and accessing all the attributes (OraMDAttribute collection) of a schema object described.

Examples

Simple Describe Example

The following Visual Basic code illustrates a how to use the Describe method to retrieve and display several attributes of the emp table.

Set emp = OraDatabase.Describe("emp") 
 
'Display the name of the Tablespace 
MsgBox emp!tablespace 
'Display name and data type of each column in the emp table. 
Set empColumns = emp!ColumnList 
Set ColumnList = empColumns.Value 
 
for i = 0 to ColumnList.Count - 1 
  Set Column = ColumnList(i).Value 
  MsgBox "Column: " & Column!Name & " Data Type: " & Column!Data Type 
Next i 

Describing a Table Example

Before running the following example, make sure that you have the necessary datatypes and tables in the database. See "Schema Objects Used in OraMetaData Examples".

Dim OraSession As OraSession 
Dim OraDatabase As OraDatabase 
Dim OraDynaset As OraDynaset 
Dim OraMetaData As OraMetaData 
Dim OraMDAttribute As OraMDAttribute 
Dim ColumnList As OraMetaData 
Dim Column As OraMetaData 
 
'Create the OraSession Object. 
Set OraSession = CreateObject("OracleInProcServer.XOraSession") 
 
'Create the OraDatabase Object by opening a connection to Oracle. 
Set OraDatabase = OraSession.OpenDatabase("ExampleDB", "scott/tiger", 0&) 
 
'Use Describe to retrieve the metadata object 
Set OraMetaData = OraDatabase.Describe("EMP") 
 
'Display the type of the metadata 
MsgBox TypeofMetaData & OraMetaData.Type 
 
'Display the count of attributes belonging to the table 
MsgBox NumberOfAttributes & OraMetaData.Count 
 
'Attribute can be accessed using the explicit OraMetaData property: Attribute  
'The index can be an integer or the attribute name 
Set OraMDAttribute = OraMetaData.Attribute(0) 
MsgBox "ObjectID: " & OraMDAttribute.Value 
 
'Since Attribute is the default property of OraMetaData, an attribute can
' be accessed as follows. Here, we use attribute name as an index 
Set OraMDAttribute = OraMetaData("ObjectID") 
MsgBox "Name: " & OraMDAttribute.Name 
MsgBox "Value: " & OraMDAttribute.Value 
 
'Value is the default property of OraMDAttribute, the following shows 
'the Value of property "IsClustered" for the table 
MsgBox "Is Clustered: " & OraMetaData!IsClustered 
MsgBox "Is Partitioned: " & OraMetaData!IsPartitioned 
 
'Retrieve the Column List 
Set OraMDAttribute = OraMetaData!ColumnList 
 
' Use IsMDObject property to check whether an attribute's value is an OraMetaData
If (OraMDAttribute.IsMDObject()) Then 
       Set ColumnList = OraMDAttribute.Value 
      'Display the name and data type of each column 
       For I = 0 To ColumnList.Count - 1 
        Set Column = ColumnList(I).Value 
 
' Each column is again an OraMetaData 
    MsgBox "Column: " & Column!Name & " data type: " & Column!Data Type 
  Next I 
End If 

Example: Describing a User-Defined Type

Before running the following example, make sure that you have the necessary datatypes and tables in the database. See "Schema Objects Used in OraMetaData Examples".

Dim OraSession As OraSession 
Dim OraDatabase As OraDatabase 
Dim OraDynaset As OraDynaset 
Dim OraMetaData As OraMetaData 
Dim OraMDAttribute As OraMDAttribute 
Dim attrList As OraMetaData 
Dim attr As OraMetaData 
 
'Create the OraSession Object. 
Set OraSession = CreateObject("OracleInProcServer.XOraSession") 
 
'Create the OraDatabase Object by opening a connection to Oracle. 
Set OraDatabase = OraSession.OpenDatabase("ExampleDB", "scott/tiger",0&) 
Set OraMetaData = OraDatabase.Describe("ORAMD_ADDRESS") 
NumAttributes = OraMetaData!NumAttributes 
NumMethods = OraMetaData!NumMethods 
MsgBox "The Address type has " & NumAttributes & " attributes" 
MsgBox "Address Object has " & NumMethods & " methods" 
 
'Retrieve the attribute list of this type object 
Set attrList = OraMetaData!Attributes.Value 
 
'Display the name and data type of each attribute 
For I = 0 To attrList.Count - 1 
  Set attr = attrList(I).Value 
  ' each attr is actually an OraMetaData 
  MsgBox "Attribute Name: " & attr!Name 
  MsgBox "Attribute Type: " & attr!TypeName 
 
Next I 

Example: Describing Unknown Schema Objects

Before running the following example, make sure that you have the necessary datatypes and tables in the database. See "Schema Objects Used in OraMetaData Examples".

Sub RecursiveDescribe(name$, xMD As OraMetaData) 
 
Dim xMDAttr As OraMDAttribute 
For I = 0 To xMD.Count - 1 
    Set xMDAttr = xMD.Attribute(I) 
 
    ' If an attribute can be described further, describe it, 
    ' otherwise display its attribute name & value 
    If (xMDAttr.IsMDObject) Then 
        RecursiveDescribe xMDAttr.name, xMDAttr.Value 
    Else 
        MsgBox name & "->" & xMDAttr.name & " = " & xMDAttr.Value 
  End If 
Next I 

End Sub 
Sub Main() 
 
'This example displays all the attributes of any schema object given 
Dim OraSession As OraSession 
Dim OraDatabase As OraDatabase 
Dim OraDynaset As OraDynaset 
Dim xMD As OraMetaData 
Dim x As String 
 
'Create the OraSession Object. 
Set OraSession = CreateObject("OracleInProcServer.XOraSession") 
 
'Create the OraDatabase Object by opening a connection to Oracle. 
Set OraDatabase = OraSession.OpenDatabase("ExampleDB", "scott/tiger", 0&) 
 
' x is any database object, here the EMP table is used as an example 
x = "EMP" 
Set xMD = OraDatabase.Describe(x) 
MsgBox x & " is of the type " & xMD.Type 
RecursiveDescribe x, xMD 

End Sub 
PKmq(l(PKY2%@OEBPS/serprop056.htmA Format (OraNumber) Property

Format (OraNumber) Property

Applies To

OraNumber Object

Description

The format string used in OraNumber operations. For details about format strings, see Oracle Database SQL Quick Reference. Read and write at run time.

Usage

OraNumber.Format = formatstring  
formatstring = OraNumber.Format  

Arguments

ArgumentsDescription
[in] formatstringA format string used in OraNumber operations.

Data Type

String

Remarks

An error is returned if the format string is set to an invalid value. To reset the format to the default, set it to an empty string.

PKɜgPKY2%@OEBPS/dcprop003.htm8 BackColor Property

BackColor Property

Applies To

Oracle Data Control

Description

Determines the background color of an object.


See Also:

ForeColor Property

PKyPKY2%@OEBPS/dcevents002.htmH DragOver Event

DragOver Event

Applies To

Oracle Data Control

Description

Occurs when a drag-and-drop operation is in progress. You can use this event to monitor when the mouse pointer enters, leaves, or is directly over a valid target. The mouse pointer position determines which target object receives this event.

PK90M H PKY2%@OEBPS/serprop041.htm` ElementType Property

ElementType Property

Applies To

OraCollection Object

Description

An integer code representing the server type of an element. This property is read-only at run time.

Usage

elem_type = OraCollection.ElementType

Data Type

Integer

Remarks

The codes correspond to the Oracle external data types. The following Oracle element data types are supported:

ConstantValueExternal Data Type
ORATYPE_VARCHAR21VARCHAR2
ORATYPE_NUMBER2NUMBER
ORATYPE_SINT3SIGNED INTEGER
ORATYPE_FLOAT4FLOAT
ORATYPE_VARCHAR9VARCHAR
ORATYPE_DATE12DATE
ORATYPE_UINT68UNSIGNED INTEGER
ORATYPE_CHAR96CHAR
ORATYPE_CHARZ97Null Terminated CHAR
ORATYPE_BFLOAT100BINARY_FLOAT
ORATYPE_BDOUBLE101BINARY_DOUBLE
ORATYPE_OBJECT108Object
ORATYPE_REF110Ref

PK/ye`PKY2%@OEBPS/sermthod007.htm* AddIntervalDS Method

AddIntervalDS Method

Applies To

OraTimeStamp Object

OraTimeStampTZ Object

Description

Adds an interval that represents an interval from days to seconds, to the OraTimeStamp or OraTimeStampTZ object.

Usage

OraTimeStampObj.AddIntervalDS operand
OraTimeStampTZObj.AddIntervalDS operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, a numeric value, or an OraIntervalDS object that represents an interval from days to seconds to be added to the current OraTimeStamp or OraTimeStampTZ object.

Remarks

The result of adding an interval to the current OraTimeStamp or OraTimeStampTZ object is stored in the current object, overwriting any previous value. There is no return value.

If operand is a Variant of type String, it must be in the following format: [+/-] Day HH:MI:SSxFF.

If operand is a numeric value, the value provided should represent the total number of days that the constructed OraIntervalDS object represents.

Examples

Using OraTimeStamp

Dim OraTimeStamp As OraTimeStamp 
 
... 
 
'Create OraTimeStamp using a string 
Set OraTimeStamp = OraSession.CreateOraTimeStamp("2000-12-28 00:00:00", _
         "YYYY-MM-DD HH:MI:SS") 
 
'Add an interval using numeric value that represents 5 days and 12 hours 
OraTimeStamp.AddIntervalDS 5.5 
 
'Value should now be "2001-1-2 12:00:00" 
tsStr = OraTimeStamp.Value 

Using OraTimeStampTZ

Dim OraTimeStampTZ As OraTimeStampTZ 
 
... 
 
'Create OraTimeStampTZ using a string 
Set OraTimeStamp = OraSession.CreateOraTimeStampTZ("2000-12-28 00:00:00 -07:00", _
       "YYYY-MM-DD HH:MI:SS TZH:TZM") 
 
'Add an interval using numeric value that represents 5 days and 12 hours 
OraTimeStampTZ.AddIntervalDS 5.5 
 
'Value should now be "2001-1-2 12:00:00" 
tstzStr = OraTimeStampTZ.Value 
 
... 
PKPKY2%@OEBPS/sermthod093.htmk FlushBuffer (OraLOB) Method

FlushBuffer (OraLOB) Method

Applies To

OraBLOB, OraCLOB Objects

Description

Flushes, that is, empties, the content of the LOB to the database if LOB buffering has been enabled.

Usage

OraBlob.FlushBuffer OraClob.FlushBuffer 
PKRpkPKY2%@OEBPS/sermthod130.htmp MonitorStop (OraAQ) Method

MonitorStop (OraAQ) Method

Applies To

OraAQ Object

Description

Stops the monitor thread that was started earlier.

Usage

Q.MonitorStop

Remarks

Does nothing if a monitor is not running.

PKupPKY2%@OEBPS/sermthod011.htm  Append (OraCollection) Method

Append (OraCollection) Method

Applies To

OraCollection Object

Description

Extends the size of the collection by one and appends the Variant value at the end of the collection.

Usage

OraCollection.Append element

Arguments

The arguments for the method are:

ArgumentsDescription
[in] elementA Variant representing the value to be appended.

Remarks

If an OraCollection represents a collection of Object types or Refs, the element argument should represent a valid OraObject or OraRef.

Examples

The following example illustrates the Append method. Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in OraCollection Examples".

Example: Append Method for the OraCollection Object Example

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim EnameList as OraCollection
 
'create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from department
set OraDynaset = OraDatabase.CreateDynaset("select * from department", 0&)
 
'retrieve a Enames column from Department. 
'Here Value property of OraField object returns EnameList OraCollection
set EnameList = OraDynaset.Fields("Enames").Value
 
'Append an "Eric" to the collection. 
'Before that row level lock should be obtained
OraDynaset.Edit
EnameList.Append "Eric"
OraDynaset.Update
PK&$ PKY2%@OEBPS/serprop063.htmy IsLocator (OraCollection) Property

IsLocator (OraCollection) Property

Applies To

OraCollection Object

Description

Returns True if the collection instance of the OraCollection object is locator-based; otherwise, returns False.

Usage

islocator = OraCollection.IsLocator

Data Type

Integer (Boolean)

PKG~yPKY2%@OEBPS/sermthod038.htmT Clone (OraTimeStampTZ) Method

Clone (OraTimeStampTZ) Method

Applies To

OraTimeStampTZ Object

Description

Returns a copy of the OraTimeStampTZ object.

Usage

Set OraTimeStampTZObj1 = OraTimeStampTZObj.Clone

Remarks

Returns a new OraTimeStampTZ object with the same value as the current object.

PKYTPKY2%@OEBPS/serprop153.htm F XMLCollID Property

XMLCollID Property

Applies To

OraDynaset Object

Description

Gets and sets the attribute name that replaces id (as in <TYPENAME_ITEM id = "1">) in the rendering of collection items that occurs when GetXML or GetXMLToFile methods are called. Readable and writable at run time.

Usage

oradynaset.XMLCollID = "NEWID" 

Remarks

The default value for this property is id. If this property is set to Null or an empty String (""), the collectionid attribute is omitted. The attribute name must be valid or an error is raised. The case is preserved.

PKu4 PKY2%@OEBPS/serprop026.htm& DatabaseName Property

DatabaseName Property

Applies To

OraConnection Object

OraDatabase Object

Description

Returns the name of the database associated with the specified object. Not available at design time and read-only at run time.

Usage

database_name = oraconnection.DatabaseName
database_name = oradatabase.DatabaseName

Data Type

String

Remarks

  • oraconnection.DatabaseName

    Returns the name of the database, as specified in the OpenDatabase method.

  • oradatabase.DatabaseName

    Returns the database name associated with the connection. It is the same as the referencing oradatabase.Connection.DatabaseName.

Examples

This example demonstrates the use of the Connect and DatabaseName properties to display the user name and database to which you have connected. Copy and paste this code into the definition section of a form. Then, press F5.

 
Sub Form_Load ()
 
 'Declare variables 
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Display the username and database to which you have connected.
 MsgBox "Connected to " & OraDatabase.Connect & "@" & OraDatabase.DatabaseName
 
End Sub
PKN]+&PKY2%@OEBPS/sermthod150.htmh Register Method

Register Method

Applies To

OraSubscription Object

Description

Activates the subscription.

Usage

orasubscription.Register

Remarks

When the specified database event is fired, the NotifyDBevents method of the dbevent handler that was passed in while creating this subscription is invoked.

Examples

See "Example: Registering an Application for Notification of Database Events" for a complete example.

PK?w-fm h PKY2%@OEBPS/sermthod111.htm G IsGreater (OraIntervalDS) Method

IsGreater (OraIntervalDS) Method

Applies To

OraIntervalDS Object

Description

Checks if the OraIntervalDS object is greater than an argument.

Usage

isGreater = OraIntervalDSObj.IsGreater value

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, a numeric value, or an OraIntervalDS object to be compared.

Remarks

Returns a Boolean value: The value is True if the OraIntervalDS object is greater than the argument; otherwise, it is False.

If value is a Variant of type String, it must be in the following format: Day [+/-] HH:MI:SSxFF.

If value is a numeric value, the value provided should represent the total number of days that the constructed OraIntervalDS object represents.

PK5B PKY2%@OEBPS/serprop114.htm| Server Property

Server Property

Applies To

OraDatabase Object

Description

Returns the OraServer object to which this object is attached.

Usage

Set oraserver = oradatabase.Server

Data Type

OLE Object (OraServer)


See Also:

OraServer Object

PK椁|PKY2%@OEBPS/serprop010.htm CacheMaximumSize Property

CacheMaximumSize Property

Applies To

OraDatabase Object

Description

Sets the maximum size (high watermark) for the client-side object cache as a percentage of the optimal size. The default value is 10%.

Usage

Oradatabase.CacheMaximumSize maxsize

Data Type

Long

Remarks

If the memory occupied by the objects currently in the cache exceeds the high watermark (maximum object cache size), then the cache automatically begins to free unmarked objects that have a pin count of zero. The cache continues freeing those objects until memory use in the cache reaches the optimal size, or until it runs out of objects eligible for freeing.

PK6n{PKY2%@OEBPS/sermthod043.htmA Compare (OraLOB) Method

Compare (OraLOB) Method

Applies To

OraBLOB, OraCLOB Objects

OraBFILE Object

Description

Compares the specified portion of the LOB value of an OraBLOB or OraCLOB object (or OraBFILE object) to the LOB value of the input OraBLOB or OraCLOB object (or OraBFILE object).

Usage

IsEqual = OraBlob.Compare srcBlob, amount, Offset, srcOffset
IsEqual = OraClob.Compare srcClob, amount, Offset, srcOffset
IsEqual = OraBfile.Compare srcBfile, amount, Offset, srcOffset

Arguments

The arguments for the method are:

ArgumentsDescription
[in] srcLOBInput OraBLOB, OraCLOB, or OraBFILE object whose value is to be compared.
[in] [optional] amountAn Integer specifying the number of bytes or characters to compare. The default value of amount is from the Offset to the end of each LOB.
[in] [optional] OffsetAn Integer specifying the 1-based Offset in bytes (OraBLOB or OraBFILE) or characters (OraCLOB) in the value of this object. Default value is 1.
[in] [optional] srcOffsetAn Integer specifying the 1-based Offset in bytes (OraBLOB or OraBFILE) or characters (OraCLOB) in the value of the srcLob object. Default value is 1.
[out] IsEqualA Boolean representing the result of a compare operation.

Remarks

The Compare method returns True if comparison succeeds; otherwise, it returns False.

If the amount to be compared causes the comparison to take place beyond the end of one LOB but not beyond the end of the other, the comparison fails. Such a comparison could succeed only if the amount of data from the Offset to the end is the exactly the same for both LOBs.

This call is currently implemented by executing a PL/SQL block that utilizes DBMS_LOB.INSTR().

PK^FAPKY2%@OEBPS/dcprop030.htm; Visible Property

Visible Property

Applies To

Oracle Data Control

Description

Determines whether an object is visible or hidden.


See Also:

Enabled Property

PK)yPKY2%@OEBPS/serobjch032.htmG OraSubscriptions Collection

OraSubscriptions Collection

Description

The OraSubscriptions collection maintains a list of OraSubscription objects, which represent the subscription to a database event. Unlike the other collection objects, this list is modifiable; you can add to and remove from the collection.

Remarks

You can access the OraSubscription objects in this collection by creating a subscript (using ordinal integers) or by using the name the object was given at its creation. You can obtain the number of OraSubscription objects in the collection by using the Count property. Referencing a subscript that is not within the collection (0 to Count-1) results in the return of a null OraSubscription object.

In addition to accessing the OraSubscription objects of the collection, you can use the collection to create and destroy subscriptions by using the Add and Remove methods, respectively.

Properties

Methods

PK˳dL G PKY2%@OEBPS/serprop002.htm [ ArraySize Property

ArraySize Property

Applies To

OraParamArray Object

Description

Specifies the array size (that is, number of elements in an array) of an OraParameter string buffer. Not available at design time and read-only at run time.

Usage

OraParamArray.ArraySize

Data Type

Integer

Remarks

You specify the ArraySize during AddTable. See the AddTable method for the OraParamArray object.


See Also:

AddTable Method

PKUŌ PKY2%@OEBPS/serprop032.htm DbPoolInitialSize Property

DbPoolInitialSize Property

Applies To

OraSession Object

Description

Contains the initial size of the pool. It is a read-only property.

Usage

init_size = OraSession.DbPoolInitialSize

Data Type

Integer

PKj PKY2%@OEBPS/sermthod114.htm+ IsGreater (OraTimeStamp) Method

IsGreater (OraTimeStamp) Method

Applies To

OraTimeStamp Object

Description

Checks if the OraTimeStamp object is greater than an argument.

Usage

isGreater = OraTimeStampObj.IsGreater value format

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, Date, or OraTimeStamp to be compared.
[in] [optional] formatSpecifies the TIMESTAMP format string to be used to interpret value when value is of type String. If format is not specified, the value is interpreted using the Format property of the current OraTimeStamp object.

Remarks

Returns a Boolean value: The value is True if the OraTimeStamp object is greater than the argument; otherwise, it is False. The IsGreater method compares all the date-time values stored in the OraTimeStamp object.

If value is of type String, the string format must match the format specified in the format argument. If format is not specified, the string format must match the Format property of the current OraTimeStamp object.

PK@BPKY2%@OEBPS/serprop045.htm z Exists Property

Exists Property

Applies To

OraBFILE Object

Description

Returns True if the OraBFILE points to a BFILE that exists on the database.

Usage

exists = OraBFile.Exists

Data Type

Boolean

Remarks

Read privileges on the directory where the BFILE is located are required to use this property. The operating system-specific permissions must have been set for the directory to make sure that the user can read the directory.

Appropriate privileges must be set up in the database previously. For example, to ensure that a user (scott) can read a directory (BfileDirectory) through the Exists property, the following SQL statement must be executed:

GRANT READ ON DIRECTORY BfileDirectory TO scott;
PK2* PKY2%@OEBPS/sermthod125.htmt Log (OraNumber) Method

Log (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the logarithm of operand using the OraNumber object as the base.

Usage

OraNumber.Log operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, OraNumber, or a numeric value.

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

This method raises an error if the OraNumber object or operand is less than or equal to zero.

PK.g>y t PKY2%@OEBPS/codewiz.htm_3 Code Wizard for Stored Procedures

7 Code Wizard for Stored Procedures

The Oracle Objects for OLE (OO4O) Code Wizard generates OO4O code that executes Oracle PL/SQL and Java stored procedures.

The wizard generates code into individual Microsoft Visual Basic or Active Server Page and VBScript subroutines from existing Oracle stored procedures and packages. Additionally, the wizard can generate complete implementations of COM Automation objects in the form of VB class files. The generated COM Automation object methods act as client stubs for the execution of stored procedures contained in a given package. All the OO4O code necessary for input/output parameter binding and stored procedure execution is automatically generated.

The wizard can be used as a command-line utility or as a Visual Basic add-in. The wizard automates the entire process of accessing stored procedures using COM interfaces, thereby significantly reducing development time and the likelihood of programming errors.


Note:

The Code Wizard requires Visual Basic 6.

This chapter contains these topics:

Oracle Objects for OLE Code Wizard Components

The OO4O Code Wizard includes the following components:

  • A command line utility, OO4OCodeWiz.exe, that converts PL/SQL and Java stored procedures to OO4O code.

  • A Visual Basic Add-in wizard that guides you through a series of steps to generate OO4O code for PL/SQL and Java stored procedures. The wizard displays Oracle packages and stored procedures from a tree control so that the user can choose which items to generate code.

Both of these components allow users to convert entire stored procedure packages to OO4O code.

Data Types Supported by the OO4O Code Wizard

The code wizard supports all data types, except for PL/SQL tables. When a PL/SQL table is used, an unsupportedType key word is used instead, and the generated code does not compile.

The output code may have to be modified for handling Null values. For example, when a VB variable is initialized to a parameter value, an isNull() check may have to be added if Null values are expected. Null values are correctly handled for VB variables of type Variant and Object.

Using the OO4O Code Wizard

The OO4O Code Wizard can be used as a command line utility or as a Visual Basic Add-in.

OO4O Code Wizard Command-Line Utility

The OO4OCodeWiz.exe is a command-line utility that generates a Visual Basic class, a Visual Basic file, or an Active Server Page/VB Script file from existing PL/SQL or Java stored procedures, as well as packages, within an Oracle database. Call the utility in the following manner:

OO4OCodeWiz [-o output_file] username/password@connect_string package
WhereSpecifies the following
usernameUser name to log in to the database
passwordPassword for the user name
connect_stringDatabase connection string
packagePackage name
stored_procedureStored procedure name (optional)

Example

OO4OCodeWiz -o empfile.asp scott/tiger@Exampledb employee.example 

Option

OptionDescription
-oSpecifies the output file name (optional)

Files Generated

The code wizard uses the information specified on the command line to determine which type of output file to generate.

If a file name and one of the permitted file extensions are specified, then they are used. In the preceding example, an ASP file is generated in the empfile.asp output. The user can specify the following extensions:

ExtensionFile Type Generated
.clsVB class file
.basVB file
.aspASP or VB script file
.vbsASP or VB script file

If no file extension is specified, the following rules indicate what type of file is generated, depending on other command-line specifications.

  • Package names without a stored procedure name generate a .cls file.

  • Package names with procedure names generate a .bas file.

Table 7-1 and Table 7-2 provide examples.

Code Wizard Examples

The ORACLE_BASE\\ORACLE_HOME\oo4o\codewiz\samples directory contains sample applications incorporating code generated by the wizard. The following examples show the generated VB code output from Oracle stored procedures using the OO4O code wizard:

Accessing a PL/SQL Stored Function with Visual Basic and Active Server Pages

This example shows a PL/SQL stored function, GetEmpSal, and then the Visual Basic (*.cls) file that the code wizard generates for it.

FUNCTION GetEmpSal (inEmpno IN NUMBER)
RETURN NUMBER is 
  outEmpsal NUMBER(7,2);
BEGIN 
  SELECT SAL into outEmpsal from EMP WHERE EMPNO = inEmpno;
  RETURN (outEmpsal);
END;

The generated code for the GetEmpSal stored function is:

Public Function GETEMPSAL(INEMPNO As Variant) As Variant 
OraDatabase.Parameters.Add "INEMPNO", INEMPNO, ORAPARM_INPUT, 2 
OraDatabase.Parameters.Add "result", 0, ORAPARM_OUTPUT 
OraDatabase.Parameters("result").serverType = 2 
OraDatabase.ExecuteSQL ("declare result Number; Begin :result := " & _
              "Employee.GETEMPSAL(:INEMPNO); end;")  
 
OraDatabase.Parameters.Remove "INEMPNO" 
GETEMPSAL = OraDatabase.Parameters("result").Value 
OraDatabase.Parameters.Remove "result" 
End Function 

In a VB class, OraDatabase appears as an attribute of the class. This attribute has to be set before any methods of the class can be invoked. For a VB file (*.bas), the generated code for the GetEmpSal stored function is the same as the VB class file, except for the function declaration:

Public Function GETEMPSAL(INEMPNO As Variant, ByRef OraDatabase As OraDatabase)
... 
 
End Function 

For an ASP file (*.asp), the function declaration also differs for the GetEmpSal stored function as follows, but the body of the code remains the same:

Public Function GETEMPSAL(INEMPNO, ByRef OraDatabase) 
... 
End Function 

Accessing a PL/SQL Stored Procedure Using the LOB Type with Visual Basic

The following example shows how a Visual Basic file accesses a PL/SQL stored procedure with LOBs:

PROCEDURE getchapter(chapno in NUMBER, chap out CLOB) is
BEGIN 
SELECT chapters into chap from mybook where chapterno = chapno
   for update;
END;

The following shows the generated Visual Basic code for the GETCHAPTER stored procedure:

Public Sub GETCHAPTER(CHAPNO As Variant, ByRef CHAP As OraCLOB) 
OraDatabase.Parameters.Add "CHAPNO", CHAPNO, ORAPARM_INPUT, 2 
OraDatabase.Parameters.Add "CHAP", Null, ORAPARM_OUTPUT, 112 
OraDatabase.ExecuteSQL ("Begin MYBOOKPKG.GETCHAPTER(:CHAPNO,:CHAP); end;") 
Set CHAP = OraDatabase.Parameters("CHAP").Value 
OraDatabase.Parameters.Remove "CHAPNO" 
OraDatabase.Parameters.Remove "CHAP" 
End Sub 

Accessing a PL/SQL Stored Procedure Using the VARRAY Type with Visual Basic

The following example shows how a PL/SQL stored procedure uses the Oracle collection type VARRAY:

PROCEDURE getnames(deptid in NUMBER, name out ENAMELIST) is 
BEGIN 
    SELECT ENAMES into name from department where dept_id = deptid for update; 
END;
 

The wizard generates the following Visual Basic code for this stored procedure:

Public Sub GETNAMES(DEPTID As Variant, ByRef NAME As OraCollection) 
OraDatabase.Parameters.Add "DEPTID", DEPTID, ORAPARM_INPUT, 2 
OraDatabase.Parameters.Add "NAME", Null, ORAPARM_OUTPUT, 247, "ENAMELIST" 
OraDatabase.ExecuteSQL ("Begin DEPTPKG.GETNAMES(:DEPTID, :NAME); end;") 
Set NAME = OraDatabase.Parameters("NAME").Value 
OraDatabase.Parameters.Remove "DEPTID" 
OraDatabase.Parameters.Remove "NAME" 
End Sub 

Accessing a PL/SQL Stored Procedure Using the Oracle OBJECT Type with Visual Basic

The following example shows how a PL/SQL stored procedure uses the Oracle object type:

PROCEDURE getaddress(person_name in varchar2, person_address out address) is 
BEGIN 
     SELECT addr into person_address from person_table where name = 
           person_name for update; 
END; 

The wizard generates the following Visual Basic code for this stored procedure:

Public Sub GETADDRESS(PERSON_NAME As String, ByRef PERSON_ADDRESS As OraObject)
OraDatabase.Parameters.Add "PERSON_NAME", PERSON_NAME, ORAPARM_INPUT, 1 
OraDatabase.Parameters.Add "PERSON_ADDRESS", Null, ORAPARM_OUTPUT, _ 
            108, "ADDRESS" 
OraDatabase.ExecuteSQL ("Begin PERSONPKG.GETADDRESS(:PERSON_NAME," & _  
            ":PERSON_ADDRESS); end;") 
Set PERSON_ADDRESS = OraDatabase.Parameters("PERSON_ADDRESS").Value 
OraDatabase.Parameters.Remove "PERSON_NAME" 
OraDatabase.Parameters.Remove "PERSON_ADDRESS" 
End Sub 
PK|__PKY2%@OEBPS/sermthod035.htm! Clone (OraNumber) Method

Clone (OraNumber) Method

Applies To

OraNumber Object

Description

Returns a copy of the OraNumber object .

Usage

Set OraNumber2 = OraNumber.Clone

Remarks

Returns a new OraNumber object with the same value as the original.

PK{=&!PKY2%@OEBPS/sermthod077.htm 4 Div (OraIntervalYM) Method

Div (OraIntervalYM) Method

Applies To

OraIntervalYM Object

Description

Divides the OraIntervalYM object by a divisor.

Usage

OraIntervalYMObj.Div divisor

Arguments

The arguments for the method are:

ArgumentsDescription
[in] divisorA Variant for type numeric value or an OraNumber object to be used as the divisor.

Remarks

The result of the operation is stored in the OraIntervalYM object, overwriting any previous value. There is no return value.

PK9P PKY2%@OEBPS/serprop049.htm< FieldIndex Property

FieldIndex Property

Applies To

OraDynaset Object

Description

Returns the index of the field indicated by the field_name argument.

Usage

set index = oradynaset.FieldIndex(field_name)

Arguments

ArgumentsDescription
[in] field_nameThe name of the field as it appears in the SQL statement that the dynaset used most recently.

Data Type

Integer

Remarks

Accessing fields of a dynaset using an index is more efficient than accessing them by name. If you need to access a particular field many times, use this method to translate its name into its index.

PKCmlPKY2%@OEBPS/serprop023.htmS Count (OraMetaData) Property

Count (OraMetaData) Property

Applies To

OraMetaData Object

Description

An integer representing the number of OraMDAttribute objects contained in this collection.

Usage

count = OraMetaData.Count

Data Type

Integer

PK{APKY2%@OEBPS/serprop027.htmQ Databases Property

Databases Property

Applies To

OraServer Object

Description

Returns a collection interface containing all user sessions that have been established using this object.

Usage

Set myCollection = oraserver.Databases 

Data Type

OLE Object (OraCollection)

PKC0PKY2%@OEBPS/serprop120.htm~ Size (OraLOB and OraBFILE) Property

Size (OraLOB and OraBFILE) Property

Applies To

OraBLOB, OraCLOB Objects

OraBFILE Object

Description

Returns the number of bytes in OraBLOB and OraBFILE objects or the number of characters in an OraCLOB object. Read-only.

Usage

bytes = OraBFile.Size
 
bytes = OraBlob.Size 
 
chars = OraClob.Size
PK}pPKY2%@OEBPS/dcprop021.htm' Options Property

Options Property

Applies To

Oracle Data Control

Description

Determines one or more characteristics of the database and all dynasets associated with the data control. Read/write at design time and run time.

Usage

oradata1.Options = database_optionsdatabase_options = oradata1.Options

Data Type

Long Integer

Remarks

This property is a bit flag word used to set the optional modes of the database. If options = 0, the default settings will apply. The following modes are available:

  • Column Defaulting mode

    The default mode is called VB mode. In VB mode, field (column) values not explicitly set are set to NULL when using AddNew or Edit.

    Optionally, you can use Oracle mode. Oracle mode indicates that changes made to fields (columns) are immediately reflected in the local mirror by retrieving the changed row from the database, thus allowing Oracle Database to set defaults for the columns and perform required calculations. Column Defaulting mode affects the behavior of the AddNew and Edit methods.

  • Lock Wait mode

    The default mode is called Wait mode. In Wait mode, when dynaset rows are about to be modified (using Edit), the existing row in the database is retrieved using the SQL "SELECT ... FOR UPDATE" statement to lock the row in the database. If the row about to be changed has been locked by another process (or user), the "SELECT ... FOR UPDATE" statement, waits until the row is unlocked before proceeding.

    Optionally, you can use NoWait mode. NoWait mode results in an immediate return of an error code, indicating that the row about to be updated is locked.

    Lock Wait mode also affects any SQL statements processed using ExecuteSQL.

  • No Refetch mode

    In this mode NULLs are not explicitly inserted as in the ORADB_ORAMODE. In ORADB_NO_REFETCH mode, performance is boosted, because data is not refetched to the local cache.

Options Property Flag Values

The Options property flag values are:

ConstantValueDescription
ORADB_DEFAULT&H0&Accepts the default behavior.
ORADB_ORAMODE&H1&Lets Oracle Database set default field (column) values.
ORADB_NOWAIT&H2&Does not wait on row locks when executing a SQL "SELECT ... FOR UPDATE" statement.

These values can be found in the oraconst.txt file. Options may be combined by adding their respective values.

This property is the same as the options passed to the OpenDatabase method. Just as with OpenDatabase, these options affect the OraDatabase object and all associated dynasets created from that database.

Changing this property does not take effect until a Refresh method is sent to the data control.

PKQn,'PKY2%@OEBPS/serprop113.htmx Seconds Property

Seconds Property

Applies To

OraIntervalDS Object

Description

Gets and sets the Seconds attribute of an OraIntervalDS object.

Usage

seconds = OraIntervalDSObj.SecondsOraIntervalDSObj.Seconds = seconds

Arguments

ArgumentsDescription
[in] secondsAn Integer specifying the value of the Seconds attribute of the OraIntervalDS object.

Data Type

Integer

PK} x PKY2%@OEBPS/sermthod006.htm4( Add (OraSubscriptions Collection) Method

Add (OraSubscriptions Collection) Method

Applies To

OraSubscriptions Collection

Description

Adds a subscription to the OraSubscriptions collection.

Usage

orasubscriptions.Add Name, DbeventsHdl, Ctx 

Arguments

The arguments for the method are:

VariantsDescription
[in] NameThe database event of interest. The appropriate event trigger and AQ queue must be set up prior to this.

Name refers to the subscription name in the form of the string 'SCHEMA.QUEUE' if the registration is for a single consumer queue and 'SCHEMA.QUEUE:CONSUMER_NAME' if the registration is for a multiple consumer queue.

The Name string should be in uppercase.

[in] DbeventsHdlThe database event handler. An IDispatch interface implementing the NotifyDBEvents method, which is invoked when the database event of interest is fired.
[in] CtxContext-specific information that the application wants passed to the NotifyDbEvents method when it is invoked.

Remarks

To register for subscription of a database event, the name identifying the subscription of interest and the name of the dbevent handler that handles the event must be passed in when the Add method is called. The queues and event triggers necessary to support the database event must be set up before the subscriptions can be fired.

The dbevent handler should be an automation object that implements the NotifyDBEvents method.

NotifyDBEvents Handler

The NotifyDBEvents method is invoked by Oracle Objects for OLE when database events of interest are fired.

For more detailed information about setting up the queues and triggers for Oracle Database events, see to Triggers on System Events and User Events in Oracle Database Concepts.

The syntax of the method is:

Public Function NotifyDBEvents(ByVal Ctx As Variant, ByVal Payload As Variant

Variants

The variants for the method are:

VariantsDescription
[in] CtxPassed into the OraSubscriptions.Add method by the application. Context-sensitive information that the application wants passed on to the dbevent handler.
[in] PayloadThe payload for this notification.

Database events are fired by setting up event trigger and queues. Payload here refers to the payload, if any, that was enqueued in the queue when the event triggered.


Examples

Example: Registering an Application for Notification of Database Events

In the following example, an application subscribes for notification of database logon events (such as all logons to the database). When a user logs on to the database, the NotifyDBEvents method of the DBEventsHdlr that was passed in at the time of subscription is invoked. The context-sensitive information and the event-specific information are passed into the NotifyDBEvents method.

The DBEventsHdlr in this example is DBEventCls, which is defined later.

The main application:

' First instantiate the dbevent handler. The dbevent notification
' will fire the NotifyDBEvents on the callback handler.
 
Public DBEventsHdlr As New DBEventCls
Private Sub Form_Load()
    Dim gOraSession As Object
    Dim gOraSubscriptions As OraSubscriptions 
    Dim gOraDatabase As OraDatabase
 
    'Create the OraSession Object
    Set gOraSession = CreateObject("OracleInProcServer.XOraSession")
 
   'Create the OraDatabase Object by opening a connection to Oracle.
    Set gOraDatabase = gOraSession.DbOpenDatabase                      
             ("ora90.us.oracle.com", "pubsub/pubsub", 
              ORADB_ENLIST_FOR_CALLBACK)
    Set gOraSubscriptions = gOraDatabase.Subscriptions
    gOraSubscriptions.Add "PUBSUB.LOGON:ADMIN", DBEventsHdlr,
             gOraDatabase
    gOraSubscriptions(0).Register
    MsgBox "OK"
End Sub

The database event handler class that defines the NotifyDBEvents method.

Public countofMsgs as integer
Public Function NotifyDBEvents(Ctx As Variant, Payload As Variant )
    On error goto NotifyMeErr
 
    MsgBox "Retrieved payload " + Payload
   ' do something - here the subscription is unregistered after
   ' receiving 3 notifications
    countofMsgs = countofMsgs + 1
    If countofMsgs > 3 Then
        Ctx.Subscriptions(0).UnRegister
    End If
    Exit Sub
NotifyMeErr:
    Call RaiseError(MyUnhandledError, "newcallback:NotifyMe Method")
 
End Sub

See Also:


PK/9(4(PKY2%@OEBPS/serprop159.htmH XMLRowTag Property

XMLRowTag Property

Applies To

OraDynaset Object

Description

Gets and sets the tag name that replaces <ROW> in the rendering of XML that occurs when GetXML or GetXMLToFile methods are called. Readable and writable at run time.

Usage

oradynaset.XMLRowTag = "NEWROW"

Remarks

The default value for this property is ROW. If this property is set to Null or an empty string (""), the <ROW> tag is omitted. The tag name must be valid or an error is raised. The case is preserved.

PKM H PKY2%@OEBPS/serprop019.htm! Consumer (OraAQ) Property

Consumer (OraAQ) Property

Applies To

OraAQ Object

Description

Applicable only for a dequeue operation.

Usage

Q.Consumer = consumer_name 

Data Type

String

Remarks

The value is a string representing the name of the consumer. Only those messages matching the consumer name are accessed.

Examples

Dim DB As OraDatabase 
    Dim Q as OraAQ 
      set Q = DB.CreateAQ("Q_MSG_MULTIPLE") 
      'Dequeue only message meant for ANDY 
       Q.consumer = "ANDY" 
      'other processing...  
       Q.Dequeue

PKLCPKY2%@OEBPS/serprop112.htm { Second (OraTimeStampTZ) Property

Second (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the Second attribute of an OraTimeStampTZ object.

Usage

second = OraTimeStampTZObj.SecondOraTimeStampTZObj.Second= second

Arguments

ArgumentsDescription
[in] secondThe Second attribute of an OraTimeStampTZ object.

Data Type

Integer

PKr1p PKY2%@OEBPS/serprop035.htm DequeueMode (OraAQ) Property

DequeueMode (OraAQ) Property

Applies To

OraAQ Object

Description

Specifies the locking behavior associated with the dequeue operation.

Usage

Q.DequeueMode = locking_mode 

Data Type

Integer

Remarks

Possible values are:

  • ORAAQ_DQ_BROWSE ( 1)

    Does not lock the message when dequeuing.

  • ORAAQ_DQ_LOCKED ( 2)

    Reads and obtains a write lock on the message.

  • ORAAQ_DQ_REMOVE (3 )(Default)

    Reads the message, and updates or deletes it.

PK@VPKY2%@OEBPS/dcevents003.htm R Error Event

Error Event

Applies To

Oracle Data Control

Description

This event is fired whenever an interactive operation causes an error. You can perform some operations directly with the data control, such as using the data control buttons or when the data control refreshes automatically when the form loads. In these cases, the Error event is fired instead of causing a normal run-time error.

PKu PKY2%@OEBPS/serprop102.htm  Parameters Property

Parameters Property

Applies To

OraDatabase Object

Description

Returns the OraParameters collection of the specified database. Not available at design time and read-only at run time.

Usage

Set oraparameters_collection = oradatabase.Parameters

Data Type

OLE Object (OraParameters)

Remarks

You can access the parameters in this collection by subscripting (using ordinal integer numbers) or by using the name the parameter that was given at its creation. You can obtain the number of parameters in the collection using the Count property of the returned collection. Integer subscripts begin with 0 and end with Count-1. Out-of-range indexes and invalid names return a Null OraParameter object.

In addition to accessing the parameters of the collection, you can also use the collection to create and destroy parameters using the Add and Remove methods, respectively.

PKdM PKY2%@OEBPS/sermthod062.htmq CreateOraTimeStampTZ Method

CreateOraTimeStampTZ Method

Applies To

OraSession Object

Description

Creates a new OraTimeStampTZ object. This OraTimeStampTZ object represents an Oracle TIMESTAMP WITH TIME ZONE data type.

Usage

Set OraTimeStampTZObj = OraSession.CreateOraTimeStampTZ value format

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, Date, or OraTimeStampTZ.
[[in] [optional] formatTIMESTAMP WITH TIME ZONE format string to be used when displaying or interpreting an OraTimeStampTZ object as a string. If format is not specified, the TIMESTAMP WITH TIME ZONE string is interpreted using the session TIMESTAMP WITH TIME ZONE format (NLS_TIMESTAMP_TZ_FORMAT format).

Return Values

OraTimeStampTZ Object

Remarks

An OraSession object must be created before an OraTimeStampTZ object can be created.

If value is a Variant of type String, the string format must match the datetime format specified in the format argument if format is specified; otherwise, the string format must match the session TIMESTAMP WITH TIME ZONE format (NLS_TIMESTAMP_TZ_FORMAT).

If value is a Variant of type Date, the date-time value in the Date is interpreted as the date-time value in the time zone of the session. The TimeZone property in the OraTimeStampTZ object contains the time zone of the session.

If format is specified, it is stored in the Format property of the OraTimeStampTZ object, otherwise the session TIMESTAMP WITH TIME ZONE format is stored in the Format property of OraTimeStampTZ object.

Examples

Dim oraTSZ as OraTimeStampTZ 
Dim oraTSZ1 as OraTimeStampTZ 
Dim date as Date 
 
'Create an OraTimeStampTZ using a string assuming the session 
'TIMESTAMP WITH TIME ZONE format is "DD-MON-RR HH.MI.SSXFF AM TZH:TZM"
Set oraTSZ = oo4oSession.CreateOraTimeStampTZ( "12-JAN-2003" & _
             "12.0.0.0 PM -03:00") 
 
'Create an OraTimeStampTZ using a string and a format 
Set oraTSZ = oo4oSession.CreateOraTimeStampTZ( "2003-01-12" & _
             "12:00:00 PM -03:00", "YYYY-MM-DD HH:MI:SS AM TZH:TZM") 
 
'Create an OraTimeStampTZ using a Date 
date = #1/12/2003# 
Set oraTSZ = oo4oSession.CreateOraTimeStampTZ(date) 
 
'Create an OraTimeStampTZ  using an OraTimeStampTZ 
Set oraTSZ1 = oo4oSession.CreateOraTimeStampTZ(oraTSZ) 
PKܛ vqPKY2%@OEBPS/sermthod152.htmk Remove (OraSubscriptions Collection) Method

Remove (OraSubscriptions Collection) Method

Applies To

OraSubscriptions Collection

Description

Removes a subscription from the OraSubscriptions collection.

Usage

orasubscriptions.Remove(member)

Arguments

The arguments for the method are:

ArgumentsDescription
memberA Variant specifying an integer subscript from 0 to Count, or the subscription name.

Remarks

This method unregisters (removes) the subscription if it is active, and destroys the subscription associated with it.

PK/pkPKY2%@OEBPS/serprop161.htmc XMLUpperCase Property

XMLUpperCase Property

Applies To

OraDynaset Object

Description

Gets and sets a Boolean value that indicates whether tag and attribute names are uppercase when GetXML or GetXMLToFile methods are called. Readable and writable at run time.

Usage

oradynaset.XMLUpperCase = True

Remarks

The default value for this property is False. If this property is set to True, all of the tag and attribute names are in upper case. This method should be called only after all custom tag or attribute names have been set by the user.

PK-7h c PKY2%@OEBPS/serprop136.htm Type (OraCollection) Property

Type (OraCollection) Property

Applies To

OraCollection Object

Description

Returns the type code of the collection.

Usage

coll_type = OraCollection.Type

Data Type

Integer

Remarks

This property returns one of the following values:

ConstantValueDescription
ORATYPE_VARRAY247Collection is VARRAY type.
ORATYPE_TABLE248Collection is nested table type.

PK  PKY2%@OEBPS/sermthod127.htm5 Mod (OraNumber) Method

Mod (OraNumber) Method

Applies To

OraNumber Object

Description

Gets the modulus from the division of the OraNumber object by operand.

Usage

OraNumber.Mod operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, OraNumber, or a numeric value.

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

If operand is equal to zero, an error is raised.

PK TableSize (OraCollection) Property

TableSize (OraCollection) Property

Applies To

OraCollection Object

Description

Returns the current size of the given collection. Read-only at run time.

Usage

table_size = OraCollection.TableSize

Data Type

Integer

Remarks

For an OraCollection object of type ORATYPE_TABLE, it returns the current size of the collection, excluding deleted elements.

PKƭ/PKY2%@OEBPS/sermthod141.htm0N OpenDatabase Method

OpenDatabase Method

Applies To

OraSession Object

OraServer Object

Description

Establishes a user session to the database. It creates a new OraDatabase object using the given database name, connection string, and specified options.

Usage

Set oradatabase = orasession.OpenDatabase(database_name,connect_string, options) Set oradatabase = oraserver.OpenDatabase(connect_string, options)

Arguments

The arguments for the method are:

ArgumentsDescription
database_nameThe Oracle Network specifier used when connecting the data control to a database.
connect_stringThe user name and password to be used when connecting to an Oracle database.
optionsA bit flag word used to set the optional modes of the database. If options = 0, the default mode settings apply. The following table shows the possible modes, which can be combined by adding their respective values.

Constants

The following table lists constants and values for the options flag.

ConstantValueDescription
ORADB_DEFAULT&H0&Visual Basic Mode (Default):

Field (column) values not explicitly set are set to Null when using the AddNew or Edit method. The Null values override any database column defaults. Wait on row locks when using Edit ("SELECT...FOR UPDATE").

Nonblocking SQL functionality is not enabled.

ORADB_ORAMODE&H1&Oracle Mode:

Lets Oracle Database set the default field (column) values when using the AddNew method. The Oracle default column values are fetched again from database immediately after an insert or add operation.

Note: If you use triggers, fetch the data again using the full Oracle Mode.

ORADB_NOWAIT&H2&Lock No-Wait Mode:

Does not wait on row locks. When you use the Edit method to update a row that is locked by another user or process, Lock No-Wait mode results in an immediate return of an error code.

Note: This option only applies to the OraDynaset object. It has no effect on OraSQLStmt objects or ExecuteSQL calls. It only raises an error in the case of a locked row.

ORADB_NO_REFETCH&H4&Oracle Mode (No Refetch):

Performs like the Oracle Mode, but does not refetch data to the local cache. This boosts performance.

Note: Use the No Refetch mode only when you intend to insert rows without editing them, because database column defaults cause inconsistencies between database data and the local cache. Attempting to edit after inserting in this mode causes a Data has been modified (4119) error.

ORADB_NONBLK&H8&Nonblocking Mode:

Turns on Nonblocking mode on SQL statement execution. Nonblocking mode affects the SQL statements processed using the ExecuteSQL, CreateDynaset, or CreateSQL methods.

Note: This feature has been deprecated.

ORADB_ENLIST_IN_MTS&H10&Enlist in MTS Mode:

Determine whether the OraDatabase object enlists in the Microsoft Transaction Server (MTS) mode.

ORADB_ENLIST_FOR_ CALLLBACK&H20&Enlist For Callbacks Mode:

Turn on the event notification. This mode has to be enabled to receive Failover Notifications.


These values can be found in the oraconst.txt file. For creating a valid database alias, see the Oracle Net Services Administrator's Guide.

Examples of valid connect_string arguments include:

Remarks

An OraConnection object is created automatically and appears within the OraConnections collection of the session. Opening a database has the effect of opening a connection but does not perform any SQL actions.

One possible connection error that could be returned is:

ORA-28001 "the password has expired"

The user can change the password using the ChangePassword method.

Examples

This example demonstrates how to programmatically create a dynaset and all of the underlying objects. Copy and paste this code into the definition section of a form with text boxes named txtEmpNo and txtEName. Then, press F5.

Sub Form_Load ()
 
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select empno, ename from emp", 0&)
 
 'Display the first record.
 txtEmpNo = OraDynaset.Fields("empno").value
 txtEName = OraDynaset.Fields("ename").value
 
End Sub
PKm00PKY2%@OEBPS/serprop104.htm< PollingAmount Property

PollingAmount Property

Applies To

OraBLOB, OraCLOB Objects

OraBFILE Object

Description

Gets or sets the total amount to be read or written for multiple chunk Read and Write operations (polling). A value of zero means that polling is not used. This property is read/write at run time.

Usage

pollamountbytes = OraBFile.PollingAmount 
OraBfile.PollingAmount = pollamountbytes 
 
pollamountbytes = OraBlob.PollingAmount 
OraBlob.PollingAmount = pollamountbytes 
 
pollamountchars= OraClob.PollingAmount 
OraClob.PollingAmount = pollamountchars 

Data Type

Integer

Remarks

This value is expressed in bytes for the OraBLOB and OraBFILE objects, or characters for the OraCLOB object. It is set before beginning a multiple-chunk read or write operation. After it is set, a series of Read or Write operations must be issued until the LOB Status property no longer returns ORALOB_NEED_DATA .This occurs when the PollingAmount bytes or characters have been read. Attempting to do other LOB operations before the end of the polling operation results in an error.

PKrmA < PKY2%@OEBPS/serobjch022.htm OraServer Object

OraServer Object

Description

The OraServer interface represents a physical network connection to an Oracle database.

Remarks

The OraServer interface exposes the connection multiplexing feature provided in the Oracle Call Interface. After an OraServer object is created, multiple user sessions (OraDatabase) can be attached to it by invoking the OpenDatabase method. This feature is particularly useful for application components, such as Internet Information Server (IIS), that use Oracle Objects for OLE in n-tier distributed environments. The use of connection multiplexing when accessing Oracle databases with a large number of user sessions active can help reduce server processing and resource requirements while improving the database scalability.

As illustrated in Figure 9-1, the OraServer interface contains a connection to an Oracle database and provides a method (OpenDatabase) for creating user sessions (OraDatabase objects) on the database connection it contains.

Properties

Methods

PKVyPKY2%@OEBPS/sermthod001.htmA Abs Method

Abs Method

Applies To

OraNumber Object

Description

Calculates the absolute value of an OraNumber object.

Usage

OraNumber.Abs

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

PKiFAPKY2%@OEBPS/serprop142.htm 4 Value (OraAQMsg) Property

Value (OraAQMsg) Property

Applies To

OraAQMsg Object

Description

Returns or sets the value of the given object.

Usage

Msg.Value = my_string 
set Msg.Value = OraObj 
 
my_string = Msg.Value 
Set OraObj = Msg.Value 

Data Type

String

Remarks

The Value property represents the actual message for RAW as well as user-defined types.

This property is not available at design time and read/write at run time.

Examples

'To set the value for a message of Raw type 
OraAQMsg.Value = "This is a test message" 
myString = "Another way of setting the message" 
OraAQMsg.Value = myString 
 
'To set the value for a message of user-defined type  
Dim OraObj as OraObject 
OraObj("subject").Value = txtdesc 
OraObj("text").Value = txtmsg 
set OraAQMsg.Value = OraObj 
 
'To get the value from a message of raw type 
myString = OraAQMsg.Value 
 
'To get the value from a message of object type(user-defined type) 
Set OraObj = OraMsg.Value 
txtdesc = OraObj("subject").Value 
txtmsg = OraObj("text").Value
PKU PKY2%@OEBPS/serprop029.htme Day (OraTimeStampTZ) Property

Day (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the Day attribute of an OraTimeStampTZ object.

Usage

day= OraTimeStampTZObj.Day
OraTimeStampTZObj.Day= day

Arguments

ArgumentsDescription
[in] dayThe Day attribute of an OraTimeStampTZ object.

Data Type

Integer

PK‚j e PKY2%@OEBPS/dcmethods003.htm> Refresh Method

Refresh Method

Applies To

Oracle Data Control

Description

This method recreates the OraDatabase and OraDynaset objects referenced within the data control and reestablishes a dynaset using the SQL statement from the RecordSource property and the connection information from the Connect and DatabaseName properties.

Usage

oradata1.Refresh

Remarks

If an existing dynaset has been assigned to an object variable in Visual Basic, then Refresh creates a new dynaset for the data control, but the old dynaset continues to be available for use until all references to it are removed.

PK6C > PKY2%@OEBPS/serprop103.htm~ PinOption (OraRef) Property

PinOption (OraRef) Property

Applies To

OraRef Object

Description

Gets and sets the Pin option for the referenceable object during the pin operation.

Usage

pin_option = OraRef.PinOptionOraRef.PinOption = pin_option

Arguments

ArgumentsDescription
[in] PinOptionAn Integer representing the Pin option.

Data Type

Integer (Boolean)

Remarks

Possible values returned by the pin_option property are:

ConstantValueDescription
ORAREF_READ_ANY3If the object is already in the object cache, returns it, otherwise, retrieves it from the database(default).
ORAREF_READ_RECENT4If the object is retrieved into the cache during a transaction, returns it from the cache, otherwise retrieves the object from the database.
ORAREF_READ_LATEST5Always retrieves the latest values from the database.

Examples

The following example shows the usage of the PinOption property. Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in the OraObject and OraRef Examples".

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Person as OraRef
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from customers
set OraDynaset = OraDatabase.CreateDynaset("select * from customers",  0&)
 
'retrieve a aperson column from customers. Here Value 
'property of OraField object returns Person OraRef
set Person = OraDynaset.Fields("aperson").Value
 
'set the ORAREF_READ_LATEST read option on the Person object. 
Person.PinOption = ORAREF_READ_LATEST 
 
'pin the Person Ref and get the latest copy of referenceable 
'object for Ref from the database
MsgBox Person.Name
MsgBox Person.Age
PK#%~PKY2%@OEBPS/sermthod165.htm$ ToOraNumber (OraIntervalDS) Method

ToOraNumber (OraIntervalDS) Method

Applies To

OraIntervalDS Object

Description

Returns an OraNumber object containing a value that represents the total number of days that the OraIntervalDS object specifies.

Usage

Set OraNumberObj = OraIntervalDSObj.ToOraNumber
PKx)$PKY2%@OEBPS/intro.htmo Introducing Oracle Objects for OLE

1 Introducing Oracle Objects for OLE

This chapter introduces Oracle Objects for OLE (OO4O).


Note:

Oracle Database 11g Release 2 (11.2) is the last database version that supports Oracle Objects for OLE. Oracle Database versions, which are released after Oracle Database 11g Release 2 (11.2), will not support Oracle Objects for OLE. You can continue to use Oracle Objects for OLE with existing Oracle Database versions that are covered under the lifetime support policy of Oracle.

This chapter contains these topics:

Overview of Oracle Objects for OLE

Oracle Objects for OLE (OO4O) allows you to access data stored in Oracle databases with any programming or scripting language that supports Microsoft COM Automation and ActiveX technology. This includes Visual Basic, Visual C++, Visual Basic for Applications (VBA), IIS Active Server Pages (VBScript and JavaScript), and others.

Figure 1-1 illustrates the software layers that comprise the OO4O product.

OO4O provides the following:

Oracle Objects for OLE In-Process Automation Server

The OO4O In-Process Automation Server is a set of COM Automation Objects for connecting to Oracle databases, executing SQL statements and PL/SQL blocks, and accessing the results.

Figure 1-2 illustrates the object model that comprise the OO4O product.

Unlike other COM-based database connectivity APIs, such as Microsoft ActiveX Data Objects (ADO), the OO4O Automation Server was created specifically for use with Oracle databases. It provides an optimized API for accessing features that are unique to the Oracle database and are otherwise cumbersome or unavailable from ODBC or OLE DB components.

OO4O provides key features for accessing Oracle databases efficiently and easily in environments ranging from the typical two-tier client/server applications, such as those developed in Visual Basic or Excel, to application servers deployed in multitiered application server environments such as Web server applications in Microsoft Internet Information Server (IIS) or Microsoft Transaction Server (MTS).

Features include:

  • Oracle 11g is grid enabled, allowing developers to take full advantage of grid support without changes being required to existing code.

  • Tunable client-side, scrollable and updatable cursors for easy and efficient access to result sets of queries.

  • PL/SQL support for execution of PL/SQL anonymous blocks and stored procedures. This includes support for the Oracle data types, such as PL/SQL cursors, that are needed for parameters of PL/SQL stored procedures.

  • Support for array fetches, updates, and inserts resulting in reduced network round-trips.

  • Connection pooling to allow development of scalable middle tier application components, such as IIS Active Server Pages, that use and serve dynamic content stored in Oracle databases.

  • Support for COM+ and Microsoft Transaction Server (MTS) co-ordinated transactions.

  • Seamless access to instances of advanced Oracle data types:

    • Object references (REFs)

    • Object instances (Objects)

    • Nested tables

    • VARRAYs

    • BLOBs, CLOBs, NCLOBs, and BFILEs

  • XML generation.

  • Full support for advanced queuing.

  • Support for publishing, detecting, and subscribing to database events.

  • Support for asynchronous processing of SQL statements and PL/SQL blocks.

  • Easy to use interface for describing schema objects.

  • The Oracle code wizard for stored procedures, which automatically generates OO4O code to execute PL/SQL or Java stored procedures.

  • Thread safety, allowing safe access to automation objects in multithreaded environments.

Oracle Data Control

Oracle Data Control is an ActiveX control that is designed to simplify the exchange of data among an Oracle database and visual controls such as edit, text, list, and grid controls in Visual Basic and other development tools that support custom controls.

A data control enables you to perform most data access operations without writing any code. To create a dynaset with a data control, set the Connect, DatabaseName, and RecordSource properties, and execute the Refresh command.

A data control enables you to bind it to other controls that display a field, a record, or multiple records of the underlying dynaset. When record movement occurs, data in bound controls stay synchronized with the current record of the dynaset. If a user changes data in a control that is bound to a data control, the changes are automatically reflected in the underlying dynaset and database.

The Oracle Data Control is compatible with the Microsoft data control included with Visual Basic. If you are familiar with the Visual Basic data control, learning to use Oracle Data Control is quick and easy. Communication between data-aware controls and a Data Control is governed by a protocol specified by Microsoft.

Oracle Objects for OLE C++ Class Library

The Oracle Objects for OLE C++ Class Library is a collection of C++ classes that provide programmatic access to the OO4O Automation server. Although the class library is implemented using OLE Automation, neither the OLE development kit nor any OLE development knowledge is necessary to use it. This library helps C++ developers avoid writing COM client code to access the OO4O interfaces.

In addition to the object classes, the class library provides a bound class, which allows controls such as text and list boxes to be linked directly to a field of a dynaset (columns of a table in the database). The bound class supports late, run-time binding, as is available in Visual Basic. The Oracle Objects for OLE C++ Class Library is supported for Microsoft Visual C++ and the Microsoft Foundation Classes for the bound class.


See Also:

Oracle Objects for OLE C++ Class Library Developer's Guide available as online help

Required Setups

This section discusses the required setups for using Oracle Objects for OLE.

Installation

Oracle Objects for OLE can be installed in multiple Oracle homes, starting with Oracle Database 10g. However, being a COM component, only one instance can be active on the computer. This means that the current (latest) installation renders the previous one inactive. You can switch Oracle homes by using the Oracle installer.

Oracle Objects for OLE File Locations

As part of the OO4O installation, the following directories are created and contain the corresponding files:

  • ORACLE_BASE\ORACLE_HOME\OO4O - SQL scripts and constants file

  • ORACLE_BASE\ORACLE_HOME\OO4O\CPP - Libraries, include files, DLLs, and source for the class library

  • ORACLE_BASE\ORACLE_HOME\OO4O\CPP\MFC - Libraries, include files, and source for the MFC Bound Class Library

  • ORACLE_BASE\ORACLE_HOME\OO4O\EXCEL\SAMPLES - Excel samples

  • ORACLE_BASE\ORACLE_HOMEOO4O\VB\SAMPLES - Visual Basic samples

  • ORACLE_BASE\ORACLE_HOME\OO4O\VB\SAMPLES\QT - Visual Basic Quick Tour guide

  • ORACLE_BASE\ORACLE_HOME\OO4O\IIS\SAMPLES - IIS samples

  • ORACLE_BASE\ORACLE_HOME\OO4O\codewiz - OO4O Code Wizard samples

Component Certifications

Find the latest certification information at My Oracle Support (formerly OracleMetaLink):

http://metalink.oracle.com/

You must register online before using My Oracle Support. After logging into My Oracle Support, select Product Lifecycle from the left column. From the Products Lifecycle page, click Certifications. Other Product Lifecycle options include Product Availability, Desupport Notices, and Alerts.

Oracle Objects for OLE Redistributable Files

This section discusses files that can be redistributed or updated on a computer that belongs to an end user or a developer.

If you cannot guarantee that your end users have the current release of Oracle Objects for OLE installed on their computers, you need to redistribute specific files that are part of Oracle Objects for OLE along with your OO4O application. A typical scenario might be if OO4O is installed as a patch without use of Oracle Universal Installer.

PKKooPKY2%@OEBPS/dcevents005.htm< MouseMove Event

MouseMove Event

Applies To

Oracle Data Control

Description

This event is fired continuously whenever the mouse pointer moves across the data control. Unless another object has not captured the mouse, the data control recognizes a MouseMove event whenever the mouse position is within its borders.

PKenA < PKY2%@OEBPS/serprop094.htm6 OIPVersionNumber Property

OIPVersionNumber Property

Applies To

OraSession Object

Description

Returns the version number of Oracle Object for OLE. Not available at design time and read-only at run time.

Usage

version_number = orasession.OIPVersionNumber

Data Type

String

Remarks

This property returns a unique identifier for each release of Oracle Object for OLE.

PK0PKY2%@OEBPS/serprop138.htm TypeName (OraObject and OraRef) Property

TypeName (OraObject and OraRef) Property

Applies To

OraObject Object

OraRef Object

Description

Specifies a String containing the name of the user-defined type of the object.

Usage

typename = OraRef.TypeName
typename = OraObject.TypeName

Data Type

String

Remarks

This property is read-only at run time.

PKqaPKY2%@OEBPS/serprop046.htmr Expiration (OraAQMsg) Property

Expiration (OraAQMsg) Property

Applies To

OraAQMsg Object

Description

Specifies, in seconds, the time for which the message is available for dequeuing.

Usage

Msg.Expiration = seconds

Data Type

Integer

Remarks

This property is an offset from the delay. It is applicable only for a message that is being enqueued.

Possible Values are:

  • Any integer.

  • ORAAQ_MSG_NO_XPIRE (0)

    Default 0 - The message will never expire.

PKɖwrPKY2%@OEBPS/sermthod107.htm ] IsEqual (OraIntervalYM) Method

IsEqual (OraIntervalYM) Method

Applies To

OraIntervalYM Object

Description

Checks if the OraIntervalYM object is equal to an argument.

Usage

isEqual = OraIntervalYMObj.IsEqual value

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, a numeric value, or an OraIntervalYM object to be compared.

Remarks

Returns a Boolean value: The value is True if the OraIntervalYM object is equal to the argument; otherwise, it is False.

If value is a Variant of type String, it must be in the following format: [+/-] YEARS-MONTHS.

If value is a numeric value, the value provided should represent the total number of years that the constructed OraIntervalYM object represents.

PK7 PKY2%@OEBPS/serprop097.htm! OraMaxDSize Property

OraMaxDSize Property

Applies To

OraField Object

Description

Returns the Oracle maximum display size for the field specified. Not available at design time and read-only at run time.

Usage

field_maxdisplaysize = orafield.OraMaxDSize

Data Type

Long Integer

Remarks

This value is meaningful only when the value is returned as a character string, especially when using functions such as SUBSTR or TO_CHAR to modify the representation of the column.

PKyz& ! PKY2%@OEBPS/serprop054.htmC FileName Property

FileName Property

Applies To

OraBFILE Object

Description

Gets or sets a filename. Read and write at run time.

Usage

filename  = OraBFile.FileName 
OraBFile.FileName = filename 

Arguments

ArgumentsDescription
[in] [out] filenameA String specifying the directory name to be retrieved or set.

Data Type

String

Remarks

This string can be case-sensitive depending on the database operating system.


See Also:

OraField Object

PK0H C PKY2%@OEBPS/sermthod101.htm| Get_Value Method

Get_Value Method

Applies To

OraParamArray Object

Description

Returns the value of a particular element of the array at the specified index.

Usage

OraParamArray.Get_Value(array, index)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] arrayA String representing the name of the array.
[in] indexAn Integer representing the index value of the object.

Remarks

The OraParamArray.Get_Value method returns the value of the field as a Variant. The value of data_value = oraparameter.Value sets the contents of the parameter.

Note that fields of type DATE are returned in the default Visual Basic format as specified in the Control Panel, even though the default Oracle date format is "DD-MMM-YY".

The Value argument can be an Oracle Database 10g object, such as an OraBLOB object. For Put_Value, a copy of the object is made at that point in time, and Get_Value must be accessed to obtain a new object that refers to that index value. For example, if iotype is ORATYPE_BOTH and an OraBLOB object obtained from a dynaset is passed in as the input value, Get_Value needs to be called after the SQL code has been executed to obtain the newly updated output value of the ParamaterArray object.

Similar to a dynaset, the object obtained from the ParamaterArray Get_Value property refers to the latest value for that ParamaterArray index. The Visual Basic value Null can also be passed as a value. The Visual Basic value EMPTY can be used for BLOB and CLOB to indicate an empty LOB, and for Object, VARRAY, and nested table data types to indicate an object whose attributes are all Null.

This method is not available at design time and is read-only at run time.

When binding to RAW columns (ServerType ORATYPE_RAW_BIN), the value should be a byte array.

PK|PKY2%@OEBPS/sermthod095.htm  GetChunk Method

GetChunk Method

Applies To

OraField Object

Description

Returns a string containing the bytes of all or a portion of a LONG or LONG RAW field.

Usage

data_string = orafield.GetChunk(offset, numbytes)
data_string = orafield.DbGetChunk(offset, numbytes)  

Arguments

The arguments for the method are:

ArgumentsDescription
offsetThe number of bytes of the field to skip before copying data.
numbytesThe number of bytes to copy.

Remarks

The GetChunk method typically retrieves the specified bytes from the local cache. If data is not found in the cache, then the GetChunk method requests it from the database. Data from all fields (except the LONG or LONG RAW field) in the dynaset are retrieved and compared to the cached values for consistency. If any changes have occurred since the last fetch, then the GetChunk method stops the operation which causes an error and returns a Null string.

If a LONG or LONG RAW field is less than 65280 bytes, it is quicker to retrieve the data using the Value property than using the GetChunk method. You cannot use the GetChunk method on a LONG or LONG RAW field for which you have created an alias.

See "Migration from LONG RAW to LOB or BFILE".

Examples

This example demonstrates the use of the GetChunk method to retrieve a LONG RAW column of a database and save it as a file. This example expects a valid dynaset named OraDynaset representing a table with a column named longraw. Copy and paste this code into the definition section of a form. Call this procedure with a valid file name.

Sub GetChunkExample (FName As String)
 
'Declare various variables
Dim CurSize As Integer, ChunkSize  As Long
Dim I As Integer, FNum As Integer, CurChunk As String
 
'Set the size of each chunk
ChunkSize = 10240
 
frmChunk.MousePointer = HOURGLASS
 
'Get a free file number
FNum = FreeFile
 
'Open the file
Open FName For Binary As #FNum
 
 I = 0
'Loop through all of the chunks. Oracle does not return the size of columns >
' 64KB. We should loop until the length of our block is less than we asked for.
Do
 CurChunk = OraDynaset.Fields("LONGRAW").GetChunk(I * ChunkSize, ChunkSize)
 CurSize = Len(CurChunk) 'Get the length of the current chunk.
 
 Put #FNum, , CurChunk   'Write chunk to file.
 I = I + 1
Loop Until CurSize < ChunkSize
 
'Close the file.
Close FNum
 
frmChunk.MousePointer = DEFAULT
 
End Sub
PKRI% PKY2%@OEBPS/serprop129.htm-' TimeZone (OraTimeStampTZ) Property

TimeZone (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the time zone information of an OraTimeStampTZ object.

Usage

timezone = OraTimeStampTZObj.TimeZoneOraTimeStampTZObj.TimeZone= timezone

Arguments

ArgumentsDescription
[in] timezoneThe time zone attribute of an OraTimeStampTZ object.

Data Type

String

Remarks

Setting the TimeZone property does not change the Coordinated Universal Time (UTC) datetime values stored in the OraTimeStampTZ object. However, the local datetime values in the specified time zone can change.

The following table shows the UTC datetime values that correspond to the datetime and time zone values of the OraTimeStampTZ object in the example.

PropertiesOraTSTZ Object ValuesUTC Date Time Values of the OraTSTZ Object
Year20032003
Month44
Day2929
Hour1219
Minute, Second, Nanosecond00
TimeZone-07:0000:00

Setting the TimeZone property to -08:00 changes the datetime values in the specified time zone of the OraTimeStampTZ object, but does not change the UTC datetime values.

PropertiesNew OraTSTZ Object ValuesUTC Date Time Values of the New OraTSTZ Object
Year20032003
Month44
Day2929
Hour1119
Minute, Second, Nanosecond00
TimeZone-08:0000:00

Examples

Dim OraTSTZ as OraTimeStampTZ 
Dim OraTSTZ_new as OraTimeStampTZ 
Dim OraTSTZStr as String 
Dim OraTSTZStr_new as String 
Set OraTSTZ = oo4oSession.CreateOraTimeStampTZ( "2003-APR-29" & _
       "12:00:00 -07:00", "YYYY-MON-DD HH:MI:SS TZH:TZM")
 
'Change Time Zone to "-08:00" 
Set OraTSTZ_new = OraTSTZ.Clone 
oraTSTZ_new.TimeZone = "-08:00" 
 
'OraTSTZStr has value as (29-APR-03 12.00.00.000000000 PM -07:00) 
OraTSTZStr = OraTSTZ.value 
'OraTSTZStr_new has value as (29-APR-03 11.00.00.000000000 PM -08:00) 
OraTSTZStr_new = OraTSTZ_new.value 
PKb{2'-'PKY2%@OEBPS/sermthod151.htm Remove Method

Remove Method

Applies To

OraParameters Collection

Description

Removes a parameter from the OraParameters collection.

Usage

oraparameters.Remove(member_name)

Arguments

The arguments for the method are:

ArgumentsDescription
member_nameA Variant specifying an integer subscript from 0 to Count 1, or the parameter name.

Remarks

Instead of repeatedly removing and adding unwanted parameters, use the AutoBindDisable and AutoBindEnable methods.

For an OraParameter of type ORATYPE_CURSOR, this method destroys the dynaset object associated with the cursor, and clears the local cache temporary files.

Examples

See "Example: ExecuteSQL".

PK e"PKY2%@OEBPS/sermthod083.htm EnableBuffering (OraLOB) Method

EnableBuffering (OraLOB) Method

Applies To

OraBLOB, OraCLOB Objects

Description

Enables buffering of LOB operations.

Usage

OraBlob.EnableBuffering 
OraClob.EnableBuffering 

Remarks

When enabled, buffering uses the LOB Buffering subsystem to minimize network round-trips by buffering changes until the FlushBuffer method is called. This can be beneficial to applications that perform a series of repeated small reads and writes to specific areas of a LOB.

There are many caveats and restrictions for using LOB buffering. These are summarized here, but for complete information, see the Oracle Database SecureFiles and Large Objects Developer's Guide.

Restrictions

  • The following LOB methods cannot be used while buffering is enabled:

    • Append

    • Copy

    • Erase

    • Size

    • Trim

    • CopyFromBFILE

    • CopyFromFile

    • CopyToFile

  • There is currently a 512 KB limit to the amount of a single read/write operation.

  • Error reporting for buffered operations is delayed until the next database access.

  • Transactional support is not guaranteed. Users must roll back changes manually if an error occurs.

  • Do not perform updates to a LOB column that bypasses the buffering system while in the same transaction as a buffer-enabled LOB. Performing an INSERT statement can cause this.

  • Only one LOB object is allowed to perform buffered writes to a given LOB. Other LOB objects that point to the same LOB raise an error if they attempt a buffered write.

  • A LOB object taken from an OraParameter object raises an error if it is buffer-enabled and bound to an OUT parameter.

  • The Clone method can raise an error for buffer enabled LOBs.

  • Appending directly to the end of the LOB is allowed, but any write operation whose offset extends beyond the end of the LOB and results in blank padding (for CLOB) or zero padding (for BLOB) raises an error.

PKPKY2%@OEBPS/serprop126.htmt Subscriptions Property

Subscriptions Property

Applies To

OraDatabase Object

Description

Returns the OraSubscriptions collection of the specified database. Not available at design time and read-only at run time.

Usage

Set orasubscriptions_collection = oradatabase.Subscriptions

Data Type

OLE Object (OraSubscriptions)

Remarks

You can access the subscriptions in this collection by subscripting (using ordinal integer numbers). You can obtain the number of subscriptions in the collection using the Count property of the returned collection. Integer subscripts begin with 0 and end with Count-1. Out-of-range indexes return a Null OraSubscription object.

In addition to accessing the subscriptions of the collection, you can also use the collection to create and destroy subscriptions using the Add and Remove methods, respectively.

Examples

See "Example: Registering an Application for Notification of Database Events" for a complete example.

PK#!y t PKY2%@OEBPS/sermthod079.htmM DynasetCacheParams Method

DynasetCacheParams Method

Applies To

OraParameter Object

Description

Specifies the dynaset cache and fetch parameters for the dynaset created from the PL/SQL cursor.

Usage

oraparameter.DynasetCacheParams SliceSize,perblock, Blocks, FetchLimit,FetchSize

Arguments

The arguments for the method are:

ArgumentsDescription
SliceSizeCache slice size.
perblockCache slices for each block.
BlocksCache maximum number of blocks.
FetchLimitFetch array size.
FetchSizeFetch array buffer size.

Remarks

This method should be called before executing the PL/SQL procedure containing a cursor variable. By default, the dynaset is created with default cache and fetch parameters specified in the registry.

PK%зPKY2%@OEBPS/dcprop016.htm; Index Property

Index Property

Applies To

Oracle Data Control

Description

Specifies the number that uniquely identifies a control in a control array. Available at design time only if the control is part of a control array; read-only at run time.


See Also:

Tag Property


PK'@;PKY2%@OEBPS/sermthod167.htm# ToOraTimeStampLTZ Method

ToOraTimeStampLTZ Method

Applies To

OraTimeStampTZ Object

Description

Returns a copy of the OraTimeStamp object that has the date-time value normalized to the session time zone of the current OraTimeStampTZ object.

Usage

Set OraTimeStampObj = OraTimeStampTZObj.ToOraTimeStampLTZ

Remarks

Returns a new OraTimeStamp object that has the date-time values normalized to the session time zone of the current OraTimeStampTZ object.

Examples

Dim OraTimeStampTZ As OraTimeStampTZ 
 
... 
'Create OraTimeStampTZ using a string 
Set OraTimeStampTZ = OraSession.CreateOraTimeStampTZ("2003-APR-29" & _ 
        "12:00:00 -07:00", "YYYY-MON-DD HH:MI:SS TZH:TZM") 
 
'Assuming that the Session Time Zone is "-08:00" 
'returns a new OraTimeStamp object with date value normalized to 
'session Time Zone, "2003-APR-29 11:00:00" 
 
Set OraTimeStamp = OraTimeStampTZ.ToOraTimeStampLTZ 
...
PK/( # PKY2%@OEBPS/serprop008.htm CacheBlocks Property

CacheBlocks Property

Applies To

OraDynaset Object

Description

Gets or set cache maximum number of blocks.

Usage

set blocks = oradynaset.CacheBlocks 
oradynaset.CacheBlocks = blocks

Data Type

Integer

PKMPKY2%@OEBPS/sermthod016.htm' AQMsg (OraAQ) Method

AQMsg (OraAQ) Method

Applies To

OraAQ Object

Description

Creates an OraAQMsg for the specified options.

Usage

Set qMsg = Q.AQMsg(msgtype, typename, schema)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] msgtypeAn Integer representing a RAW or user-defined type. Optional for RAW type. Possible values are:
  • ORATYPE_RAW (23) - Message type is RAW.

  • ORATYPE_OBJECT (108) - Message type is user-defined.

[in] typenameA String representing the name of the type. Optional for RAW type. Default is 'RAW'.
[in] [optional] schemaA String representing the schema where the type is defined. Default is 'SYS'.

Remarks

The method could be used as follows:

set QMsg = Q.AQMsg(ORATYPE_OBJECT,"MESSAGE_TYPE","SCOTT") 
set QMsg = Q.AQMsg
PKx{PKY2%@OEBPS/serprop076.htmD MinimumSize Property

MinimumSize Property

Applies To

OraParameter Object

OraParamArray Object

Description

Returns the minimum size of an OraParameter or OraParamArray string buffer or ByteArray (for ORATYPE_RAW_BIN). For OraParamArray objects, the minimum size property is read-only at run time. For OraParameter objects, the minimum size is read/write at run time.

Usage

oraparameter.MinimumSize 
oraparamarray.MinimumSize

Data Type

Integer

Remarks

This property gets the minimum number of characters or bytes to be allocated for each element of the array. For OraParamArray objects, the size is specified using the AddTable method.

Examples

Note: This example needs the following to be run: a PL/SQL procedure called EmployeeLong with a GetEmpName procedure that uses a table with the column name ENAME_LONG that returns a long ename of approximately 200 characters.

Sub Form_Load ()
 
' Declare variables as OLE Objects.
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
' Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
' Create the OraDatabase Object.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
' Add EMPNO as an Input/Output parameter and set its initial value.
OraDatabase.Parameters.Add "EMPNO", 9999, ORAPARM_INPUT
 
' Add ENAME as an Output parameter and set its initial value.
OraDatabase.Parameters.Add "ENAME_LONG", "foo", ORAPARM_OUTPUT
OraDatabase.Parameters("ENAME_LONG").MinimumSize = 201 
 'Since we require to hold a value of more than 128 bytes
 
' Execute the Stored Procedure Employee.GetEmpName to retrieve ENAME_LONG.
OraDatabase.ExecuteSQL ("Begin EmployeeLong.GetEmpName (:EMPNO," & _
            "NAME_LONG); end;")
PK#PKY2%@OEBPS/serobjch020.htmb OraParameter Object

OraParameter Object

Description

An OraParameter object represents a bind variable in a SQL statement or PL/SQL block.

Remarks

OraParameter objects are created, accessed, and removed indirectly through the OraParameters collection of an OraDatabase object. Each parameter has an identifying name and an associated value. You can automatically bind a parameter to SQL and PL/SQL statements of other objects (as noted in the object descriptions), by using the parameter name as a placeholder in the SQL or PL/SQL statement. Using parameters can simplify dynamic queries and increase program performance.

Parameters are bound to SQL statements and PL/SQL blocks before execution. In the case of a SQL SELECT statement, binding occurs before dynaset creation.

The OraParameters collection is part of the OraDatabase object. Therefore, all parameters are available to any SQL statement or PL/SQL block executed within the database (through the CreateDynaset or ExecuteSQL methods).

Before a SQL statement or PL/SQL block is executed, an attempt is made to bind all parameters of the associated OraDatabase object. The bindings that fail (because the parameter does not apply to that particular SQL statement or PL/SQL block), are noted and no attempt is made to bind them again if the SQL statement or PL/SQL block is reexecuted but does not change.

Because neither SQL statements nor PL/SQL blocks are parsed locally (all parsing is done by Oracle Database), any unnecessary binding results in performance degradation. To prevent unnecessary parameter binding, use the AutoBindDisable and AutoBindEnable methods.

By default, the maximum size of the ORAPARM_OUTPUT variable for ServerType CHAR and VARCHAR2 is set to 127 bytes. Use the MinimumSize property to change this value. The minimum size of an ORAPARM_OUTPUT variable for CHAR, VARCHAR2, and ORATYPE_RAW_BIN must always be greater than the size of the expected data from the database column.

ServerType ORATYPE_RAW_BIN is used when binding to Oracle Raw columns. A byte array is used to put or get values. The maximum allowable size of ORATYPE_RAW_BIN bind buffers is 2000 bytes when bound to a column of a table, 32 KB when bound to a stored procedure. For example code, see the samples in the ORACLE_BASE\\ORACLE_HOME\OO4O\VB\Raw directory.

Properties

Methods

PKdgbPKY2%@OEBPS/sermthod.htm A Server Methods

10 Server Methods

This chapter describes the Oracle Objects for OLE Server methods.

For an introduction to OO4O server objects, see "Oracle Objects for OLE In-Process Automation Server" .

This chapter contains these topics:

Server Methods: A to B

Server Methods: C

Server Methods: D to H

Server Methods: I to L

Server Methods: M to S

Server Methods: T to Z

PKA APKY2%@OEBPS/sermthod024.htm BeginTrans Method

BeginTrans Method

Applies To

OraConnection Object

OraDatabase Object

OraSession Object

Description

Begins a database transaction within the specified session.

Usage

oraconnection.BeginTrans
oradatabase.BeginTrans
orasession.BeginTrans

Remarks

After this method has been called, no database transactions are committed until a CommitTrans is issued. Alternatively, the session can be rolled back using the Rollback method. If a transaction has already been started, repeated use of the BeginTrans method causes an error.

If Update or Delete methods fail on a given row in a dynaset in a global transaction after you issue a BeginTrans, be aware that locks remain on those rows on which you called the Update or Delete method. These locks persist until you call a CommitTrans or Rollback method.


Note:

If an OraDatabase object has been enlisted with Microsoft Transaction Server (MTS) and is part of a global MTS transaction, this method has no effect.

Examples

This example demonstrates the use of the BeginTrans method to group a set of dynaset edits into a single transaction and uses the Rollback method to cancel those changes. Copy this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 Dim fld As OraField
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession. OpenDatabase("ExampleDb", _ 
                     "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
 
 'Start Transaction processing.
 OraSession.BeginTrans
 
 'Setup a field object to save object references.
 Set fld = OraDynaset.Fields("sal")
 
 'Traverse until EOF is reached, setting each employees salary to zero
 Do Until OraDynaset.EOF = True
   OraDynaset.Edit
   fld.value = 0
   OraDynaset.Update
   OraDynaset.MoveNext
 Loop
 MsgBox "All salaries set to ZERO."
 
 'Currently, the changes have NOT been committed to the database.
 'End Transaction processing. Using RollbackTrans 
 'means the rollback can be canceled in the Validate event.
 OraSession.Rollback
 'MsgBox "Salary changes rolled back."
 
End Sub
PK4b PKY2%@OEBPS/sermthod168.htm ToOraTimeStampTZ Method

ToOraTimeStampTZ Method

Applies To

OraTimeStamp Object

Description

Returns a copy of the OraTimeStampTZ object from an OraTimeStamp object.

Usage

Set OraTimeStampTZObj = OraTimeStampObj.ToOraTimeStampTZ

Remarks

Returns a new OraTimeStampTZ object with the same date-time values as the current OraTimeStamp object. The time zone information in the returned OraTimeStampTZ object is set to the session time zone.

Examples

Dim OraTimeStamp As OraTimeStamp 
 
... 
'Create OraTimeStamp using a string 
Set OraTimeStamp = OraSession.CreateOraTimeStamp("1999-APR-29" & _ 
         "12:10:23.444 AM", "YYYY-MON-DD HH:MI:SS.FF AM") 
 
' assuming that the session Time Zone is "-07:00" returns a new 
' OraTimeStampTZ object with date value equal to "1999-APR-29 12:10:23 -07:00" 
Set OraTimeStampTZ = OraTimeStamp.ToOraTimeStampTZ 
PKĸc PKY2%@OEBPS/sermthod143.htm 7 OriginalName

OriginalName

Applies To

OraField Object

Description

Returns the original column name used in the SELECT statement in the dynaset (as opposed to the name of the field as it appears on the server returned by the Name property). Not available at design time and read-only at run time.

Usage

field_name = Orafield.OriginalName

Remarks

The orafield.OriginalName method returns the name of the specified OraField object. This returns the Original column name specified in the SQL statement during dynaset creation. This property is useful when a SQL statement contains 'schema.table.col' as the Name of the field. It enables duplicate column names to be referenced. (Duplicate column names can be avoided by using aliases in the SQL statement.)

Examples

The following example shows the use of the OriginalName property. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables 
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 Dim OraFields As OraFields
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 Set OraDynaset = OraDatabase.CreateDynaset("select scott.emp.deptno," & _ 
    "dept.deptno from scott.emp, scott.dept where dept.deptno = emp.deptno", 0&)
 
 Set OraFields = OraDynaset.Fields
 
 'Returns "DEPTNO"  
 MsgBox OraFields(0).Name   
 
 'Returns "scott.emp.deptno" 
 MsgBox OraFields(0).OriginalName   
   
 'Returns "dept.deptno" 
 MsgBox OraFields(1).OriginalName  
 
End Sub
PKپa PKY2%@OEBPS/sermthod173.htmH Unregister Method

Unregister Method

Applies To

OraSubscription Object

Description

Unregisters this subscription, which turns off notifications on the specific database event.

Usage

orasubscription.UnRegister

Remarks

Unregistering a subscription ensures that the user does not receive notifications related to that subscription or database event in the future. If the user wants to resume notification, then the only option is to re-register the subscription.

Examples

Registering an Application for Notification of Database Events Example

See "Example: Registering an Application for Notification of Database Events".

PKM H PKY2%@OEBPS/serprop105.htm0 Priority (OraAQMsg) Property

Priority (OraAQMsg) Property

Applies To

OraAQMsg Object

Description

Specifies the priority of the message.

Usage

Msg.Priority = msg_priority 

Data Type

Integer

Remarks

A smaller number indicates higher priority.

Possible Values are:

  • Any integer including negative numbers.

  • ORAAQ_NORMAL (Default): 0

  • ORAAQ_HIGH : -10

  • ORAAQ_LOW : 10

This property can be set while enqueuing and can then be used for priority-based dequeuing.

PKbPKY2%@OEBPS/sermthod110.htm IsEqual (OraTimeStampTZ) Method

IsEqual (OraTimeStampTZ) Method

Applies To

OraTimeStampTZ Object

Description

Checks if the OraTimeStampTZ object is equal to an argument.

Usage

isEqual = OraTimeStampTZOb.IsEqual value, format

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, Date, or OraTimeStampTZ to be compared.
[in] [optional] formatSpecifies the TIMESTAMP WITH TIME ZONE format string to be used to interpret value when value is type String. If format is not specified, value is interpreted using the Format property of the current OraTimeStampTZ object.

Remarks

Returns a Boolean value: The value is True if the OraTimeStampTZ object is equal to the argument; otherwise, it is False. The IsEqual method only compares the Coordinated Universal Time (UTC) date-time values stored in the OraTimeStampTZ object; the time zone information is ignored.


Note:

UTC was formerly known as Greenwich Mean Time.)

If value is of type String, the string format must match the format specified in the format argument. If format is not specified, the string format must match the Format property of the current session OraTimeStampTZ object.

If value is of Date type, the date-time value in Date is interpreted as the date-time value in the time zone of the session.

PKְPKY2%@OEBPS/serprop006.htmZ Bookmark Property

Bookmark Property

Applies To

OraDynaset Object

Description

Determines the current record of a record set. Not available at design time and read/write at run time.

Usage

row_bookmark = oradynaset.Bookmark
oradynaset.Bookmark = row_bookmark

Data Type

The value is a string of binary data, but can be stored in a variable of String or Variant data type. The length of the string cannot be predicted, so do not use a fixed-length string.

Remarks

The first form returns a Bookmark property for the current row. The second form repositions the Bookmark property to refer to a specific record within the dynaset.

Bookmark objects exist only for the life of the dynaset and are specific to a particular dynaset. They cannot be shared among dynasets. However, Bookmark objects of a dynaset and their clones are interchangeable.

Before attempting to use Bookmark objects, check the BookMarkable property of that dynaset to see if it supports bookmarks.

Examples

This example demonstrates the use of the Bookmark property to return to a previously known record quickly. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables as OLE Objects.
 Dim OraClient As OraClient 
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 Dim Bookmark2 As String
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Get the client object.
 Set OraClient = OraSession.Client
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
 
 'Move to the second record and display empno.
 OraDynaset.MoveNext
 MsgBox "Second Record, Employee #" & OraDynaset.Fields("EMPNO").value
 Bookmark2 = OraDynaset.Bookmark
 
 'Move to the last record and display empno.
 OraDynaset.MoveLast
 MsgBox "Last Record, Employee #" & OraDynaset.Fields("EMPNO").value
 
 'Move back to the second record using the bookmark.
 
 OraDynaset.Bookmark = Bookmark2
 MsgBox "Second Record, Employee #" & OraDynaset.Fields("EMPNO").value
 
End Sub
PKml+ _ZPKY2%@OEBPS/serprop058.htm  Format (OraTimeStampTZ) Property

Format (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the TIMESTAMP WITH TIME ZONE format used to display the OraTimeStampTZ object as a string.

Usage

format = OraTimeStampTZObj.Format
OraTimeStampTZObj.Format = format

Arguments

ArgumentsDescription
[in] formatThe format used to display an OraTimeStampTZ object as a string.

Data Type

String

Remarks

If Format is Null, the session TIMESTAMP WITH TIME ZONE format is used to display the OraTimeStampTZ object as a string.

PKƿ_ PKY2%@OEBPS/sermthod040.htm Close (OraBFILE) Method

Close (OraBFILE) Method

Applies To

OraBFILE Object

Description

Closes an opened BFILE data type.

Usage

OraBfile = OraBfile.Close

Arguments

The arguments for the method are:

ArgumentsDescription
[in] OraBfileA valid object of type OraBFILE.

Remarks

This method only applies to BFILEs, not LOBs.

PK .  PKY2%@OEBPS/serprop134.htmg= Type Property

Type Property

Applies To

OraField Object

OraParameter Object

OraParamArray Object

Description

Returns the Variant type of the specified object. Not available at design time and read-only at run time.

Usage

data_type = orafield.Type
data_type = oraparameter.Type 
data_type = oraparamarray.Type

Data Type

Integer

Remarks

  • orafield.Type

    Returns the Variant data type (see Visual Basic documentation) associated with the returned value of this field.

  • oraparameter.Type

    Returns an integer indicating the Variant data type that is actually bound to the SQL statement. This may differ from the Variant data type of oraparameter.Value, because internal conversions may be necessary to obtain a data type common to both Visual Basic and Oracle Database.

Users can expect the following mapping from Oracle internal data types:

Oracle Data TypeConstantValueData Type
BINARY_DOUBLEORADB_DOUBLE7Double
BINARY_FLOATORADB_SINGLE6Single
BLOBORADB_OBJECT9OraBLOB
CHARORADB_TEXT10String
CLOBORADB_OBJECT9OraCLOB
DATEORADB_DATE8Variant
DATEORADB_DATE8Date
INTERVAL DAY TO SECONDORADB_OBJECT9OraIntervalDS
INTERVAL YEAR TO MONTHORADB_OBJECT9OraIntervalYM
LONGORADB_MEMO12String
LONG RAWORADB_LONGBINARY11String
NESTED TABLEORADB_OBJECT9OraBFILE
NUMBER (1-4, 0)ORADB_INTEGER3Integer
NUMBER (5-9, 0)ORADB_LONG4Long Integer
NUMBER (10-15, 0)ORADB_DOUBLE7Double
NUMBER (16-38, 0)ORADB_TEXT10String
NUMBER (1-15, n)ORADB_DOUBLE7Double
NUMBER (16-38, n)ORADB_TEXT10String
RAWORADB_LONGBINARY11String
REFORADB_OBJECT9OraCollection
TIMESTAMPORADB_OBJECT9OraTimeStamp
TIMESTAMP WITH LOCAL TIME ZONEORADB_OBJECT9OraTimeStamp
TIMESTAMP WITH TIME ZONEORADB_OBJECT9OraTimeStampTZ
VARRAYORADB_OBJECT9OraCollection
VARCHAR2ORADB_TEXT10String

These values are located in the ORACLE_BASE\\ORACLE_HOME\oo4o\oraconst.txt file and are intended to match similar constants in the Visual Basic file datacons.txt file.

Note that fields of type DATE are returned in the default Visual Basic format as specified in the Control Panel, even though the default Oracle date format is "DD-MMM-YY".

Note that columns defined as NUMBER instead of NUMBER(precision, scale) are, by definition, floating point numbers with a precision of 38. This means that the Type property returns a type of ORADB_TEXT for these columns.


See Also:

Value Property

PKXl=g=PKY2%@OEBPS/sermthod123.htm j LastServerErrReset Method

LastServerErrReset Method

Applies To

OraDatabase Object

OraSession Object

Description

Clears the LastServerErr property to a zero value and sets the LastServerErrText property to Null for the specified object.

Usage

oradatabase.LastServerErrResetorasession.LastServerErrReset

Remarks

This method allows user programs to better determine which program request generated the Oracle error.

PKUy PKY2%@OEBPS/sermthod135.htm P Mul (OraNumber) Method

Mul (OraNumber) Method

Applies To

OraNumber Object

Description

Multiplies the OraNumber object by operand.

Usage

OraNumber.Mul operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, OraNumber, or a numeric value.

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

PKS PKY2%@OEBPS/sermthod026.htmM CancelEdit (OraRef) Method

CancelEdit (OraRef) Method

Applies To

OraRef Object

Description

Unlocks the referenceable object in the database and cancels the object update operation.

Usage

OraRef.CancelEdit

Remarks

Care should be taken before using this method; it cancels any pending transaction on the connection.

PKcu,RMPKY2%@OEBPS/serobjch025.htm  OraSubscription Object

OraSubscription Object

Description

An OraSubscription object that represents the subscription to a database event.

Remarks

OraSubscription objects are created, accessed, and removed indirectly through the OraSubscriptions collection of an OraDatabase object. Each subscription has a name that associates with an Oracle database event.

The OraSubscriptions collection is part of the OraDatabase object.

Properties

Methods

PKg.9 PKY2%@OEBPS/sermthod008.htm AddIntervalYM Method

AddIntervalYM Method

Applies To

OraTimeStamp Object

OraTimeStampTZ Object

Description

Adds an interval that represents an interval from years to months, to the OraTimeStamp or OraTimeStampTZ object.

Usage

OraTimeStampObj.AddIntervalYM operand
OraTimeStampTZObj.AddIntervalYM operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, a numeric value, or an OraIntervalYM object that represents an interval from years to months, to be added to the current OraTimeStamp or OraTimeStampTZ object.

Remarks

The result of adding an interval to the current OraTimeStamp or OraTimeStampTZ object is stored in the current object, overwriting any previous value. There is no return value.

If operand is a Variant of type String, it must be in following format: [+/-] YEARS-MONTHS.

If operand is a numeric value, the value provided should represent the total number of years that the constructed OraIntervalYM object represents.

Examples

Example: Using the OraTimeStamp Object

Dim OraTimeStamp As OraTimeStamp 
 
... 
'Create OraTimeStamp using a string 
Set OraTimeStamp = OraSession.CreateOraTimeStamp("2000-12-28 00:00:00", _
         "YYYY-MM-DD HH:MI:SS") 
 
'Add an interval using numeric value that represents 2 years 
OraTimeStamp.AddIntervalYM 2 
 
'Value should now be "2002-12-28 00:00:00" 
tsStr = OraTimeStamp.Value 
 
... 

Example: Using the OraTimeStampTZ Object

Dim OraTimeStampTZ As OraTimeStampTZ 
 
... 
'Create OraTimeStampTZ using a string 
Set OraTimeStampTZ =OraSession.CreateOraTimeStampTZ("2000-12-28 00:00:00" & _ 
            "-07:00"  "YYYY-MM-DD HH:MI:SS TZH:TZM") 
 
'Add an interval using numeric value that represents 2 years 
OraTimeStampTZ.AddIntervalYM 2 
 
'Value should now be "2002-12-28 00:00:00" 
tstzStr = OraTimeStampTZ.Value 
 
... 
PK̔PKY2%@OEBPS/serprop014.htmv Client Property

Client Property

Applies To

OraSession Object

Description

Returns the OraClient object associated with the specified session. Not available at design time and read-only at run time.

Usage

Set oraclient = orasession.Client

Data Type

OLE Object (OraClient)

Remarks

Each computer has only one client object, so this property returns the same object for all sessions on the same computer.


See Also:

OraClient Object

PKc<{ v PKY2%@OEBPS/sermthod158.htm5 Sin (OraNumber) Method

Sin (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the sine of an OraNumber object given in radians.

Usage

OraNumber.Sin

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

PKW:5PKY2%@OEBPS/serprop071.htm  LastModified Property

LastModified Property

Applies To

OraDynaset Object

Description

Returns the Bookmark object of the row that was last modified by an Edit or an AddNew operation. Not available at design time and read-only at run time.

Usage

last_modified_bookmark = oradynaset.LastModified

Data Type

The value is a string of binary data, but can be stored in a variable of String or Variant data type. The length of the string cannot be predicted, so do not use a fixed-length string.

Remarks

Use this property to make the last modified record the current record.

PKN PKY2%@ OEBPS/toc.ncx Oracle® Objects for OLE Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.2) Cover Table of Contents Oracle Objects for OLE Developer's Guide, 11g Release 2 (11.2) for Microsoft Windows Preface What's New in Oracle Objects for OLE? Introducing Oracle Objects for OLE Using Oracle Objects for OLE with Automation Clients Basic Features Advanced OO4O Features Tuning and Troubleshooting Quick Tour with Visual Basic Code Wizard for Stored Procedures Introduction to Automation Objects Server Objects OraAQ Object OraAQAgent Object OraAQMsg Object OraAttribute Object OraBFILE Object OraBLOB, OraCLOB Objects OraClient Object OraCollection Object OraConnection Object OraDatabase Object OraDynaset Object OraField Object OraIntervalDS Object OraIntervalYM Object OraMDAttribute Object OraMetaData Object OraNumber Object OraObject Object OraParamArray Object OraParameter Object OraRef Object OraServer Object OraSession Object OraSQLStmt Object OraSubscription Object OraTimeStamp Object OraTimeStampTZ Object OraConnections Collection OraFields Collection OraParameters Collection OraSessions Collection OraSubscriptions Collection Server Methods Abs Method Add Method Add (OraIntervalDS) Method Add (OraIntervalYM) Method Add (OraNumber) Method Add (OraSubscriptions Collection) Method AddIntervalDS Method AddIntervalYM Method AddNew Method AddTable Method Append (OraCollection) Method Append (OraLOB) Method AppendChunk Method AppendChunkByte Method AQAgent (OraAQMsg) Method AQMsg (OraAQ) Method ArcCos (OraNumber) Method ArcSin (OraNumber) Method ArcTan (OraNumber) Method ArcTan2 (OraNumber) Method Attribute (OraMetaData) Method AutoBindDisable Method AutoBindEnable Method BeginTrans Method Cancel Method CancelEdit (OraRef) Method Ceil (OraNumber) Method ChangePassword (OraServer) Method ChangePassword (OraSession) Method Clone Method Clone (OraLOB/BFILE) Method Clone (OraCollection) Method Clone (OraIntervalDS) Method Clone (OraIntervalYM) Method Clone (OraNumber) Method Clone (OraObject/Ref) Method Clone (OraTimeStamp) Method Clone (OraTimeStampTZ) Method Close Method Close (OraBFILE) Method CloseAll (OraBFILE) Method CommitTrans Method Compare (OraLOB) Method ConnectSession Method CopyToClipboard Method Copy (OraLOB) Method CopyFromFile (OraLOB) Method CopyFromBFILE (OraLOB) Method CopyToFile (OraLOB/BFILE) Method Cos (OraNumber) Method CreateAQ Method CreateCustomDynaset Method CreateDatabasePool Method CreateDynaset Method CreateIterator Method CreateNamedSession Method CreateOraIntervalDS Method CreateOraIntervalYM Method CreateOraNumber Method CreateOraObject (OraDatabase) Method CreateOraTimeStamp Method CreateOraTimeStampTZ Method CreatePLSQLCustomDynaset Method CreatePLSQLDynaset Method CreateSession Method CreateSQL Method CreateTempBLOB/CLOB Method Delete Method Delete (OraCollection) Method Delete (OraRef) Method DeleteIterator Method Dequeue (OraAQ) Method Describe Method DestroyDatabasePool Method DisableBuffering (OraLOB) Method Div (OraIntervalDS) Method Div (OraIntervalYM) Method Div (OraNumber) Method DynasetCacheParams Method Edit Method Edit (OraRef) Method ElementValue Method EnableBuffering (OraLOB) Method Enqueue (OraAQ) Method Erase (OraLOB) Method ExecuteSQL Method Exist (OraCollection) Method Exp (OraNumber) Method FetchOraRef Method FieldSize Method FindFirst, FindLast, FindNext, and FindPrevious Methods Floor (OraNumber) Method FlushBuffer (OraLOB) Method GetDatabaseFromPool Method GetChunk Method GetChunkByte Method GetChunkByteEx Method GetXML Method GetXMLToFile Method GetRows Method Get_Value Method HypCos (OraNumber) Method HypSin (OraNumber) Method HypTan (OraNumber) Method InitIterator Method IsEqual (OraIntervalDS) Method IsEqual (OraIntervalYM) Method IsEqual (OraNumber) Method IsEqual (OraTimeStamp) Method IsEqual (OraTimeStampTZ) Method IsGreater (OraIntervalDS) Method IsGreater (OraIntervalYM) Method IsGreater (OraNumber) Method IsGreater (OraTimeStamp) Method IsGreater (OraTimeStampTZ) Method IsLess (OraIntervalDS) Method IsLess (OraIntervalYM) Method IsLess (OraNumber) Method IsLess (OraTimeStamp) Method IsLess (OraTimeStampTZ) Method IterNext Method IterPrev Method LastServerErrReset Method Ln (OraNumber) Method Log (OraNumber) Method MatchPos (OraLOB/BFILE) Method Mod (OraNumber) Method MonitorForFailover Method MonitorStart (OraAQ) Method MonitorStop (OraAQ) Method MoveFirst, MoveLast, MoveNext, and MovePrevious Methods MovePreviousn, MoveNextn, MoveRel, and MoveTo Methods Mul (OraIntervalDS) Method Mul (OraIntervalYM) Method Mul (OraNumber) Method Neg (OraIntervalDS) Method Neg (OraIntervalYM) Method Neg (OraNumber) Method Open (OraServer) Method Open (OraBFILE) Method OpenDatabase Method OriginalItem Method OriginalName Power (OraNumber) Method Put_Value Method Read (OraLOB/BFILE) Method ReadChunk Method Refresh Method Refresh (OraRef) Method Register Method Remove Method Remove (OraSubscriptions Collection) Method RemoveFromPool Method ResetTrans Method Rollback Method Round (OraNumber) Method SetPi (OraNumber) Method Sin (OraNumber) Method Sqrt (OraNumber) Method Sub (OraIntervalDS) Method Sub (OraIntervalYM) Method Sub (OraNumber) Method Tan (OraNumber) Method ToDate Method ToOraNumber (OraIntervalDS) Method ToOraTimeStamp Method ToOraTimeStampLTZ Method ToOraTimeStampTZ Method ToUniversalTime Method Trim (OraCollection) Method Trim (OraLOB) Method Trunc (OraNumber) Method Unregister Method Update Method Update (OraRef) Method Write (OraLOB) Method Server Properties Address (OraAQAgent) Property ArraySize Property AutoCommit Property BOC Property BOF Property Bookmark Property BookMarkable Property CacheBlocks Property CacheChanged Property CacheMaximumSize Property CacheOptimalSize Property CacheSliceSize Property CacheSlicesPerBlock Property Client Property Connect Property Connection Property ConnectionOK Property Connections Property Consumer (OraAQ) Property Correlate (OraAQ) Property Correlation (OraAQMsg) Property Count Property Count (OraMetaData) Property Count (OraObject/Ref) Property Database Property DatabaseName Property Databases Property Day (OraTimeStamp) Property Day (OraTimeStampTZ) Property Days Property DbPoolCurrentSize Property DbPoolInitialSize Property DbPoolMaxSize Property Delay (OraAQMsg) Property DequeueMode (OraAQ) Property DequeueMsgId (OraAQ) Property DirectoryName Property DynasetOption Property EditMode Property EditOption (OraRef) Property ElementType Property EOC Property EOF Property ExceptionQueue Property Exists Property Expiration (OraAQMsg) Property FetchLimit Property FetchSize Property FieldIndex Property FieldName Property FieldOriginalName Property FieldOriginalNameIndex Property Fields Property FileName Property Filter Property Format (OraNumber) Property Format (OraTimeStamp) Property Format (OraTimeStampTZ) Property HexValue (OraRef) Property Hour (OraTimeStamp) Property Hour (OraTimeStampTZ) Property Hours Property IsLocator (OraCollection) Property IsMDObject Property IsNull (OraCollection) Property IsNull (OraLOB/BFILE) Property IsNull (OraObject) Property IsOpen (OraBFILE) Property IsRefNull (OraRef) Property LastErrorText Property LastModified Property LastServerErr Property LastServerErrPos Property LastServerErrText Property MaxSize (OraCollection) Property MinimumSize Property Minute (OraTimeStamp) Property Minute (OraTimeStampTZ) Property Minutes Property Month (OraTimeStamp) Property Month (OraTimeStampTZ) Property Months Property Name Property Name (AQAgent) Property Name (OraAttribute) Property Name (OraMDAttribute) Property Nanosecond(OraTimeStamp) Property Nanonsecond (OraTimeStampTZ) Property Nanonseconds Property Navigation (OraAQ) Property NoMatch Property NonBlockingState Property Offset (OraLOB/BFILE) Property OIPVersionNumber Property Options Property OraIDataType Property OraMaxDSize Property OraMaxSize Property OraNullOK Property OraPrecision Property OraScale Property Parameters Property PinOption (OraRef) Property PollingAmount Property Priority (OraAQMsg) Property RDMSVersion Property RecordCount Property RelMsgId (OraAQ) Property RowPosition Property SafeArray (OraCollection) Property Second (OraTimeStamp) Property Second (OraTimeStampTZ) Property Seconds Property Server Property ServerType Property Session Property Sessions Property Size Property Size (OraCollection) Property Size (OraLOB and OraBFILE) Property SnapShot Property Sort Property SQL Property Status Property Status (OraLOB/BFILE) Property Subscriptions Property TableName (OraRef) Property TableSize (OraCollection) Property TimeZone (OraTimeStampTZ) Property TotalDays Property TotalYears Property Transactions Property Truncated Property Type Property Type (OraAttribute) Property Type (OraCollection) Property Type (OraMetaData) Property TypeName (OraObject and OraRef) Property Updatable Property Value Property Value (OraAttribute) Property Value (OraAQMsg) Property Value (OraIntervalDS) Property Value (OraIntervalYM) Property Value (OraMDAttribute) Property Value (OraNumber) Property Value (OraTimeStamp) Property Value (OraTimeStampTZ) Property Version (OraObject and Ref) Property Visible (OraAQ) Property Wait (OraAQ) Property XMLAsAttribute Property XMLCollID Property XMLEncodingTag Property XMLNullIndicator Property XMLOmitEncodingTag Property XMLRowID Property XMLRowsetTag Property XMLRowTag Property XMLTagName Property XMLUpperCase Property Year (OraTimeStamp) Property Year (OraTimeStampTZ) Property Years Property Data Control Events DragDrop Event DragOver Event Error Event MouseDown Event MouseMove Event MouseUp Event Reposition Event Validate Event Data Control Methods Drag Method Move Method Refresh Method UpdateControls Method UpdateRecord Method ZOrder Method Data Control Properties AllowMoveLast Property AutoBinding Property BackColor Property Caption Property Connect Property Database Property DatabaseName Property DirtyWrite Property DragIcon Property DragMode Property EditMode Property Enabled Property Font Property ForeColor Property Height Property Index Property Left Property MousePointer Property Name Property NoRefetch Property Options Property OracleMode Property ReadOnly Property Recordset Property RecordSource Property Session Property Tag Property Top Property TrailingBlanks Property Visible Property Width Property Appendix A Glossary Index Copyright PKw U F PKY2%@OEBPS/sermthod170.htm Trim (OraCollection) Method

Trim (OraCollection) Method

Applies To

OraCollection Object

Description

Trims a given number of elements from the end of the collection.

Usage

OraCollection.Trim size

Arguments

The arguments for the method are:

ArgumentsDescription
[in] sizeAn Integer specifying the number of elements to trim.

Remarks

The elements are removed from the end of the collection. An error is returned if the size is greater than the current size of the collection.

Examples

The following example illustrates the Trim method. Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in OraCollection Examples" .

Example: Trim Method for the OraCollection Object

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim EnameList as OraCollection
 
'create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from department
set OraDynaset = OraDatabase.CreateDynaset("select * from department", 0&)
 
'retrieve a Enames column from Department. 
'Here Value property of OraField object returns EnameList OraCollection
set EnameList = OraDynaset.Fields("Enames").Value
 
'display the size of the collection
msgbox  EnameList.Size
 
'Trim the EnameList collection by one. Before that row level
 'lock should be obtained
 
OraDynaset.Edit
EnameList.Trim 1
OraDynaset.Update
 
'display the new size of the collection
msgbox EnameList.Size
PK!PKY2%@OEBPS/serobjch014.htmJ OraIntervalYM Object

OraIntervalYM Object

Description

The OraIntervalYM object provides methods for operations on the Oracle INTERVAL YEAR TO MONTH.This data type represents a period of time in terms of years and months.

Remarks

The OraIntervalYM object is created by the OraSession.CreateOraIntervalYM method or by calling the Clone method on an existing OraIntervalYM object.

An OraIntervalYM object can be bound using ServerType ORATYPE_INTERVALYM. This allows the binding of a value to a parameter associated with an Oracle INTERVAL YEAR TO MONTH data type in a SQL or PL/SQL statement.

When binding a string associated with an INTERVAL YEAR TO MONTH data type, the ServerType must be specified to be a string type (for example, ORATYPE_VARCHAR2, ORATYPE_STRING), and the string must be in the format specified by YEARS-MONTHS.

Properties

Methods

PKA rPKY2%@OEBPS/serprop065.htm9 IsNull (OraCollection) Property

IsNull (OraCollection) Property

Applies To

OraCollection Object

Description

Returns True if the collection value of the OraCollection object is Null.

Usage

isnull = OraObject.IsNull

Data Type

Integer (Boolean)

Remarks

Accessing elements of a Null collection results in an error. The IsNull property should be checked before accessing elements of an underlying collection.

PKNJ!>9PKY2%@OEBPS/serobjch010.htm OraDatabase Object

OraDatabase Object

Description

An OraDatabase interface represents a user session to an Oracle database and provides methods for SQL and PL/SQL execution.

Remarks

An OraDatabase interface in Oracle8i and higher releases adds additional methods for controlling transactions and creating interfaces representing instances of Oracle object types. Attributes of schema objects can be retrieved using the Describe method of the OraDatabase interface.

In previous releases, an OraDatabase object is created by invoking the OpenDatabase method of an OraSession interface. The network alias, user name, and password are passed as arguments to this method. In Oracle8i and higher releases, invocation of this method results in implicit creation of an OraServer object.

As described in the OraServer interface description, an OraDatabase object can also be created using the OpenDatabase method of the OraServer interface.

Transaction control methods are available at the OraDatabase (user session) level. These methods include:

  • BeginTrans

  • CommitTrans

  • Rollback

For example:

MyDatabase.BeginTrans 
MyDatabase.ExecuteSQL("delete from emp where empno = 1234") 
MyDatabase.CommitTrans 

Note:

If the AutoCommit property is set to True, transactions are committed automatically, and you do not need to use the transaction control methods.

Properties

Methods

PKPKY2%@OEBPS/sermthod106.htm [ IsEqual (OraIntervalDS) Method

IsEqual (OraIntervalDS) Method

Applies To

OraIntervalDS Object

Description

Checks if the OraIntervalDS object is equal to an argument.

Usage

isEqual = OraIntervalDSObj.IsEqual value

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, a numeric value, or an OraIntervalDS object to be compared.

Remarks

Returns a Boolean value: The value is True if the OraIntervalDS object is equal to the argument; otherwise, it is False.

If value is a Variant of type String, it must be in the following format: [+/-] Day HH:MI:SSxFF.

If value is a numeric value, the value provided should represent the total number of days that the constructed OraIntervalDS object represents.

PK̩ PKY2%@OEBPS/serprop154.htmN XMLEncodingTag Property

XMLEncodingTag Property

Applies To

OraDynaset Object

Description

Gets or sets a string value in the encoding tag of the generated XML document.

Usage

OraDynaset.XMLEncodingTag = "SHIFT_JIS" 

Remarks

This property is useful when the XML document generated by OO4O is converted to a different character set encoding before it is stored or parsed. This might occur if the property is to be loaded into a database or stored in a file system.

This property only sets the encoding tag value; it does not change the actual encoding of the document. The document generated by the GetXML method in Visual Basic is encoded in UCS2. The documents generated by the GetXMLToFile method use the same character set as the current NLS_LANG setting.

If this property is set to an empty String, the default encoding tags are used. To omit the tag entirely, use OraDynaset.XMLOmitEncodingTag.

No validity checking of the chosen encoding is done.

PKVS N PKY2%@OEBPS/serprop087.htm b Nanosecond(OraTimeStamp) Property

Nanosecond(OraTimeStamp) Property

Applies To

OraTimeStamp Object

Description

Returns or sets the Nanosecond attribute of an OraTimeStamp object.

Usage

nanosecond = OraTimeStampObj.NanosecondOraTimeStampObj.Nanosecond= nanosecond

Arguments

ArgumentsDescription
[in] nanosecondThe Nanosecond attribute of an OraTimeStamp object.

Data Type

Integer

PKѢ PKY2%@OEBPS/dcevents006.htm w MouseUp Event

MouseUp Event

Applies To

Oracle Data Control

Description

This event is fired whenever a mouse button is released (MouseUp) and the mouse pointer is over the data control, or has been captured by the data control. The mouse is captured if a mouse button has been pressed previously over the data control until all corresponding MouseUp events have been received.

PK}̗d PKY2%@OEBPS/serprop119.htmx Size (OraCollection) Property

Size (OraCollection) Property

Applies To

OraCollection Object

Description

Returns the current size of the given collection. Read-only at run time.

Usage

coll_size = OraCollection.Size

Data Type

Integer

Remarks

For an OraCollection object of type ORATYPE_TABLE, this property returns the current size of the collection including deleted elements.


See Also:

OraField Object

PKe} x PKY2%@OEBPS/serprop009.htm CacheChanged Property

CacheChanged Property

Applies To

OraDynaset Object

Description

True if cache or fetch parameters have been changed.

Usage

set Changed = oradynaset.CacheChanged

Data Type

Boolean

PK0PKY2%@OEBPS/serprop025.htm Database Property

Database Property

Applies To

OraDynaset Object

OraSQLStmt Object

Description

Returns the OraDatabase object associated with the specified dynaset or SQL statement object. Not available at design time and read-only at run time.

Usage

Set oradatabase = oradynaset.Database
Set oradatabase = orasqlstmt.Database

Data Type

OLE Object (OraDatabase)

Remarks

The OraDynaset.Database property returns the OraDatabase object from which the specified dynaset was created.

The OraSQLStmt.Database property returns the OraDatabase object from which the specified SQLStmt object was created.

PKlrZ#  PKY2%@OEBPS/sermthod066.htm$# CreateSQL Method

CreateSQL Method

Applies To

OraDatabase Object

Description

Executes the SQL statement and creates an OraSQLStmt object from the specified SQL statement and options.

Usage

Set orasqlstmt = oradatabase.CreateSQL(sql_statement, options)

Arguments

The arguments for the method are:

ArgumentsDescription
sql_statementAny valid Oracle SQL statement.
optionsA bit flag indicating the status of any optional states of the OraSQLStmt object. You can combine one or more options by adding their respective values.

Constants

The options flag values are:

ConstantValueDescription
ORASQL_NO_AUTOBIND&H1&Do not perform automatic binding of database parameters.
ORASQL_FAILEXEC&H2&Raise error and do not create SQL statement object.
ORASQL_NONBLK&H4&Execute SQL in a nonblocking state.

These values can be found in the oraconst.txt file.

Remarks

The SQL statement can be one continuous line with no breaks. If it is necessary to break the line, be sure to use line feeds (ASCII 10). Do not use carriage returns (ASCII 13), because the underlying Oracle Database functions treat carriage returns as null terminators.

You can use PL/SQL bind variables in conjunction with the OraParameters collection.

Executing the SQL statement generates a commit to the database by default. To avoid this, use the BeginTrans method on the session object before using the CreateSQL method.

When executing PL/SQL blocks or calling stored procedures, you must include a BEGIN and END statement around your call as if you were executing an anonymous PL/SQL block. This is equivalent to the EXECUTE command of SQL*Plus and SQL*DBA.

If the ORASQL_FAILEXEC option is used, an error is raised during SQLstmt object creation failure (on SQLstmt object refresh). The SQLstmt object is not created and cannot be refreshed.


Note:

Use the CreateSQL method with care, because any SQL statement or PL/SQL block that is executed might cause errors afterward when you use the Edit method on open dynasets.

Data Type

String

Examples

This example demonstrates the use of parameters, the CreateSQL method, the Refresh method, and the SQL property for OraSQLStmt object. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables 
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraSqlStmt As OraSQLStmt 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 OraDatabase.Parameters.Add "EMPNO", 7369, 1
 OraDatabase.Parameters("EMPNO").ServerType = 2  'ORATYPE_NUMBER 
 
 OraDatabase.Parameters.Add "ENAME", 0, 2
 OraDatabase.Parameters("ENAME").ServerType = 1  'ORATYPE_VARCHAR2  
 
 Set OraSqlStmt = OraDatabase.CreateSQL("Begin Employee.GetEmpName" & _ 
          "(:EMPNO, :ENAME); end;", 0&) 
 
 'Notice that the SQL statement is NOT modified.
 MsgBox OraSqlStmt.SQL
 
 'Should display SMITH
 MsgBox OraDatabase.Parameters("ENAME").Value  
 
 'Change the value of the empno parameter.
 OraDatabase.Parameters("EMPNO").Value = 7499
 
 'Refresh the sqlstmt
 OraSqlStmt.Refresh
 
 'Should display ALLEN
 MsgBox OraDatabase.Parameters("ENAME").Value   
 
 'Notice that the SQL statement is NOT modified.
 MsgBox OraSqlStmt.SQL  
 
 'Remove the parameter.
 OraDatabase.Parameters.Remove ("job")
 
 End Sub
PK93$$PKY2%@OEBPS/sermthod054.htm7A CreateDynaset Method

CreateDynaset Method

Applies To

OraDatabase Object

Description

Creates an OraDynaset object from the specified SQL SELECT statement and options.

Usage

Set oradynaset = oradatabase.CreateDynaset(sql_statement, options, SnapShotID)
Set oradynaset = oradatabase.DbCreateDynaset(sql_statement, options, SnapShotID)

Arguments

The arguments for the method are:

ArgumentsDescription
sql_statementA String containing any valid Oracle SQL SELECT statement.
optionsA bit flag indicating the status of any optional states of the dynaset. You can combine one or more options by adding their respective values. Specifying the constant ORADYN_DEFAULT or the value &H0& gives the following defaults for the dynaset:
  • Behave like Visual Basic Mode for a database: Field values not explicitly set are set to Null, overriding database column defaults.

  • Perform automatic binding of database parameters.

  • Remove trailing blanks from character string data retrieved from the database.

  • Create an updatable dynaset.

  • Cache data on client.

  • Force a MoveFirst when the dynaset is created.

  • Maintain read-consistency.

SnapShotID [optional]A ID of the snapshot obtained from the SnapShot property of an OraDynaset object.

Constants

The following table lists constants and values for the options flag.

ConstantValueDescription
ORADYN_DEFAULT&H0&Accept the default behavior.
ORADYN_NO_AUTOBIND&H1&Do not perform automatic binding of database parameters.
ORADYN_NO_BLANKSTRIP&H2&Do not remove trailing blanks from character string data retrieved from the database.
ORADYN_READONLY&H4&Force dynaset to be read-only.
ORADYN_NOCACHE&H8&Do not create a local dynaset data cache. Without the local cache, previous rows within a dynaset are unavailable; however, increased performance results during retrieval of data from the database (move operations) and from the rows (field operations). Use this option in applications that make single passes through the rows of a dynaset for increased performance and decreased resource usage.
ORADYN_ORAMODE&H10&Behave the same as Oracle Mode for a database except affect only the dynaset being created. If database was created in Oracle Mode, the dynaset inherits the property from it (for compatibility).
ORADYN_NO_REFETCH&H20&Behave the same as ORADB_NO_REFETCH mode for a database except affect only the dynaset being created. If the database was created in ORADB_NO_REFETCH mode, the dynaset inherits the property for compatibility.
ORADYN_NO_MOVEFIRST&H40&Does not force a MoveFirst when the dynaset is created. BOF and EOF are both true.
ORADYN_DIRTY_WRITE&H80&Update and Delete methods do not check for read consistency.

These values can be found in the oraconst.txt file.

Remarks

Features such as simple views and synonyms can be used freely. You can also use schema references, column aliases, table joins, nested select statements and remote database references, but in each case, the dynaset is read-only.

If you use a complex expression or SQL function on a column, such as "sal + 100" or "abs(sal)" , you get an updatable dynaset, but the column associated with the complex expression is not updatable.

Object names generally are not modifed, but in certain cases they can be changed. For example, if you use a column alias, you must use the alias to refer to the field by name. Also, if you use spaces in a complex expression, you must refer to the column without the spaces, since the database strips spaces. Note that you can always refer to a field by number, that is, by its ordinal position in the SELECT statement.

Executing the Update method generates a commit operation to the database by default. To avoid this, use the BeginTrans method on the session object before using the CreateDynaset method.

The updatability of the resultant dynaset depends on the Oracle SQL rules of updatability, on the access you have been granted, and on the options flag. For the dynaset to be updatable, these conditions must be met:

  • A SQL statement must refer to a simple column list or to the entire column list (*).

  • The statement must not set the read-only flag of the options argument.

  • Oracle Database must permit ROWID references to the selected rows of the query.

Any SQL statement that does not meet these criteria is processed, but the results are not updatable and the Updatable property of the dynaset returns False. This method automatically moves to the first row of the created dynaset. You can use SQL bind variables in conjunction with the OraParameters collection.

The SnapShotID option causes a snapshot descriptor to be created for the SQLStmt object created. This property can later be obtained and used in creation of other SQLStmt or OraDynaset objects. Execution snapshots provide the ability to ensure that multiple commands executed in the context of multiple OraDatabase objects operate on the same consistent snapshot of the committed data in the database.

Examples

This example demonstrates CreateObject, OpenDatabase and CreateDynaset methods. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select empno, ename from emp", 0&)
 
 'Display the first record.
 MsgBox "Employee " & OraDynaset.Fields("empno").value & ", #" & _
                OraDynaset.Fields("ename").value
 
End Sub
PKLh77PKY2%@OEBPS/dcprop010.htm/ DragMode Property

DragMode Property

Applies To

Oracle Data Control

Description

Determines manual or automatic dragging mode for a drag-and-drop operation.

PK,PKY2%@OEBPS/serprop163.htmw Year (OraTimeStampTZ) Property

Year (OraTimeStampTZ) Property

Applies To

OraTimeStampTZ Object

Description

Returns or sets the Year attribute of an OraTimeStampTZ object.

Usage

year = OraTimeStampObjTZ.Year
OraTimeStampObjTZ.Year = year

Arguments

ArgumentsDescription
[in] yearThe Year attribute of an OraTimeStampTZ object.

Data Type

Integer

PKGsP| w PKY2%@OEBPS/cover.htm Cover

Oracle Corporation

PKJPKY2%@OEBPS/serprop028.htmQ Day (OraTimeStamp) Property

Day (OraTimeStamp) Property

Applies To

OraTimeStamp Object

Description

Gets and sets the Day attribute of an OraTimeStamp object.

Usage

day= OraTimeStampObj.Day
OraTimeStampObj.Day= day

Arguments

ArgumentsDescription
[in] dayThe Day attribute of an OraTimeStamp object.

Data Type

Integer

PKҨV Q PKY2%@OEBPS/sermthod104.htm> HypTan (OraNumber) Method

HypTan (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the hyperbolic tangent of an OraNumber object.

Usage

OraNumber.HypTan 

Remarks

The result of the operation is stored in an OraNumber object. There is no return value.

PK&HC>PKY2%@OEBPS/serprop141.htmZ Value (OraAttribute) Property

Value (OraAttribute) Property

Applies To

OraAttribute Object

Description

Gets or sets the value of the attribute. This value could be an instance of an OraObject, OraRef, or OraCollection object, or any of the supported scalar types, such as Integer or Float.

Usage

attr_value = OraAttribute.Value  OraAttribute.Value = attr_value

Data Type

Variant

Remarks

This is the default property for this object.

The Value property of the OraAttribute object returns the value of the attribute as a Variant. The Variant type of the attribute depends on the attribute type of the attribute. Attribute values can be Null and can be set to Null. For attribute of type objects, REF, LOB and Collection, attribute values are returned as corresponding OO4O objects for that type.

The following table identifies the attribute type and the return value of the Value property of the OraAttribute object:

Element TypeElement Value
ObjectOraObject
REFOraRef
VARRAY, Nested TableOraCollection
BLOBOraBLOB
CLOBOraCLOB
BFILEOraBFILE
DateString
NumberString
CHAR,VARCHAR2String
RealReal
IntegerInteger

PK_ZPKY2%@OEBPS/sermthod014.htm AppendChunkByte Method

AppendChunkByte Method

Applies To

OraField Object

Description

Appends data from a byte array to a LONG or LONG RAW field in the copy buffer.

Usage

orafield.AppendChunkByte(ByteArray, numbytes)

Arguments

The arguments for the method are:

ArgumentsDescription
Byte ArrayData to append to the specified field.
numbytesNumber of bytes to copy.

Remarks

The AppendChunkByte method allows the manipulation of data fields that are larger than 64 KB.

Examples


Note:

This is an incomplete code sample, provided for your reference. A complete Visual Basic sample called LONGRAW that is based on this code sample, is provided in the OO4O samples directory.

This sample code demonstrates the use of the AppendChunkByte method to read a file into a LONG RAW column of a database. This code expects a valid dynaset named OraDynaset representing a table with a column named longraw.

Sub AppendChunkByteExample (FName As String) 
 
 'Declare various variables. 
 Dim NumChunks As Integer, RemChunkSize As Integer 
 Dim TotalSize As Long, CurChunkByte() As Byte 
 Dim I As Integer, FNum As Integer, ChunkSize As Integer  
 'Set the size of each chunk. 
 ChunkSize = 10240  
 frmChunk.MousePointer = HOURGLASS 
 
 'Begin an add operation. 
 OraDynaset.AddNew 
 'Clear the LONGRAW field. 
 OraDynaset.Fields("LONGRAW").Value = "" 
 
 'Get a free file number. 
 FNum = FreeFile 
 
 'Open the file. 
 Open FName For Binary As #FNum  
 
 'Get the total size of the file. 
 TotalSize = LOF(FNum) 
 
 'Set number of chunks. 
 NumChunks = TotalSize \ ChunkSize 
 
 'Set number of remaining bytes. 
 RemChunkSize = TotalSize Mod ChunkSize 
 
 'Loop through the file. 
 For I = 0 To NumChunks 
 
  'Calculate the new chunk size. 
  If I = NumChunks Then 
   ChunkSize = RemChunkSize 
 
  End If 
 
  ReDim CurChunkByte(ChunkSize) 
 
  'Read a chunk from the file. 
  Get #FNum, , CurChunkByte 
 
  'Append chunk to LONGRAW field. 
  OraDynaset.Fields("LONGRAW").AppendChunkByte (CurChunkByte) 
 Next I  
'Complete the add operation and update the database. 
OraDynaset.Update 
 
 'Close the file. 
 Close FNum 
 
 frmChunk.MousePointer = DEFAULT 
 
End Sub
PKPKY2%@OEBPS/serprop147.htmH Value (OraTimeStamp) Property

Value (OraTimeStamp) Property

Applies To

OraTimeStamp Object

Description

When read, the Value property provides a string representation of the value of the OraTimeStamp object. If the Format property is not null, the output string format is in the format specified by the Format property; otherwise, the output string format is in the session TIMESTAMP format (NLS_TIMESTAMP_FORMAT). When set, the Value property accepts a Variant of type String, Date, or OraTimeStamp.

Usage

string = OraTimeStampObj.ValueOraTimeStampObj.Value= value

Arguments

ArgumentsDescription
[in] valueA Variant of type String, Date, or OraTimeStamp.

Data Type

String

Remarks

If the value is of type String and Format is not null, the string format must match the Format property. If the Format property is null, the string format must match the session TIMESTAMP format.

Examples

... 
 
Set OraTimeStamp = OraSession.CreateOraTimeStamp("1999-APR-29 " & _ 
         "12:10:23.444 AM", "YYYY-MON-DD HH:MI:SS.FF AM") 
 
'returns a string for the Value property 
tsStr = OraTimeStamp.Value 
 
'set OraTimeStamp.Value using a string 
OraTimeStamp.Value = "1999-APR-29 12:10:23.444 AM" 
PKMPPKY2%@OEBPS/serprop111.htmt Second (OraTimeStamp) Property

Second (OraTimeStamp) Property

Applies To

OraTimeStamp Object

Description

Returns or sets the Second attribute of an OraTimeStamp object.

Usage

second = OraTimeStampObj.SecondOraTimeStampObj.Second= second

Arguments

ArgumentsDescription
[in] secondThe Second attribute of an OraTimeStamp object.

Data Type

Integer

PKgWy t PKY2%@OEBPS/sermthod121.htma IterNext Method

IterNext Method

Applies To

OraCollection Object

Description

Moves the iterator to point to the next element in the collection.

Usage

OraCollection.IterNext

Remarks

Using an iterator is faster than using an index when accessing collection elements.

If the iterator is pointing to the last element of the collection before to executing this function, then calling this method makes the EOC property return True. Also, the iterator is not changed. Check the EOC property when calling this method repetitively.

Call the IterNext method after the InitIterator method, or the first element in the collection is repeated an extra time.

Examples

See "Example: OraCollection Iterator" .

PK|f a PKY2%@OEBPS/sermthod065.htmM CreateSession Method

CreateSession Method

Applies To

OraClient Object

Description

Creates a new named OraSession object.

Usage

orasession = oraclient.CreateSession(session_name)

Arguments

The arguments for the method are:

ArgumentsDescription
session_nameA String specifying the name of the session.

Remarks

Use this method to create named sessions that can be referenced later in the same application without having to explicitly save the OraSession object when it is created. Once a session has been created, the application can reference it by way of the ConnectSession method or the OraSessions collection of their respective OraClient object. The OraSessions collection only contains sessions created within the current application. This means that it is not possible to share sessions across applications, only within applications.

Examples

This example demonstrates how to create a session object using the CreateSession method of the client object. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables 
 Dim OraClient As OraClient 
 Dim OraSession As OraSession 
 Dim NamedOraSession As OraSession
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Get the OraClient object.
 Set OraClient = OraSession.Client
 
 'Create a named OraSession Object
 'Alternatively, you could use the CreateNamedSession 
 'method of the OraSession Object.
 
 Set NamedOraSession = OraClient.CreateSession("ExampleSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = NamedOraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
 
End Sub

See Also:

OraSession Object

PKeRMPKY2%@OEBPS/sermthod139.htmJ Open (OraServer) Method

Open (OraServer) Method

Applies To

OraDatabase Object

OraServer Object

Description

Establishes a connection to an Oracle database.

Usage

OraServer.Open serverAlias

Arguments

The arguments for the method are:

ArgumentsDescription
[in] serverAliasA String containing the Network alias used for connecting to the database.

Remarks

If no arguments is supplied, this method attaches to a database that was detached previously.

PK OJPKY2%@OEBPS/serprop110.htm0 SafeArray (OraCollection) Property

SafeArray (OraCollection) Property

Applies To

OraCollection Object

Description

Gets or sets the element values from the Variant SAFEARRAY.

Usage

SafeArray = OraCollection.SafeArrayOraCollection.SafeArray = SafeArray

Arguments

ArgumentsDescription
SafeArrayA Variant representing SafeArray format.

Data Type

A Variant representing a SafeArray format.

Remarks

This property is only valid for simple scalar elements types, such as VARCHAR2 and NUMBER. This property raises an error for element type LOBS, Objects, Refs, and so on.

The Variant SAFEARRAY index starts at 0. When converting to SAFEARRAY format, the OraCollection object converts its element value to its corresponding SAFEARRAY Variant type. The following table explains collection element types and their corresponding SAFEARRAY Variant types:

Collection Element TypeSAFEARRAY of
DateString
NumberString
CHAR, VARCHAR2String
RealReal
IntegerInteger

For setting a SAFEARRAY to a collection, OraCollection converts the SAFEARRAY elements to its nearest collection element type.

PK#!PKY2%@OEBPS/sermthod027.htm, Ceil (OraNumber) Method

Ceil (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the ceiling value of an OraNumber object.

Usage

OraNumber.Ceil

Remarks

The result of the operation is stored in an OraNumber object. There is no return value.

PKW1,PKY2%@OEBPS/sermthod124.htmF Ln (OraNumber) Method

Ln (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the natural logarithm (base e) of an OraNumber object.

Usage

OraNumber.Ln

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

This method raises an error if the OraNumber object is less than or equal to zero.

PK^J{PKY2%@OEBPS/sermthod071.htm& DeleteIterator Method

DeleteIterator Method

Applies To

OraCollection Object

Description

Deletes a collection iterator.

Usage

OraCollection.DeleteIterator

Remarks

None.

Examples

See "Example: OraCollection Iterator"

PK-PKY2%@OEBPS/sermthod012.htm  Append (OraLOB) Method

Append (OraLOB) Method

Applies To

OraBLOB, OraCLOB Objects

Description

Appends the LOB content of the input OraLOB object to the internal LOB value of this instance.

Usage

OraBlob.Append srcBlob
OraClob.Append srcClob

Arguments

The arguments for the method are:

ArgumentsDescription
[in] srcLOBA valid object of type OraBLOB or OraCLOB.

Remarks

Appends the LOB content of input LOB to the end of current LOB value. Obtain either a row-level lock or an object-level lock before calling this method.

PKwp PKY2%@OEBPS/sermthod055.htmt CreateIterator Method

CreateIterator Method

Applies To

OraCollection Object

Description

Creates an iterator to scan the elements of a collection.

Usage

OraCollection.CreateIterator

Remarks

This method creates an iterator for scanning the elements of an Oracle collection. Accessing collection elements using the iterator is faster than using an index on the instance of a collection.

Examples

Example: OraCollection Iterator

The following example illustrates the use of an Oracle collection iterator.

Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in OraCollection Examples" .

Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim CourseList As OraCollection
Dim Course As OraObject
 
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", scott/tiger", 0&)
 
'Create a dynaset object from division
Set OraDynaset = OraDatabase.CreateDynaset("select courses from" & _ 
                 "division where name='History'", 0&)
 
'Retrieve a Courses column from Division.
Set CourseList = OraDynaset.Fields("Courses").Value
 
'Create the iterator
CourseList.CreateIterator
 
'Initialize the iterator to point to the beginning of a collection
CourseList.InitIterator
 
'Call IterNext to read CourseList until the end
While CourseList.EOC = False
    Set Course = CourseList.ElementValue
    course_no = Course.course_no
    Title = Course.Title
    Credits = Course.Credits
    CourseList.IterNext
Wend
 
'Call IterPrev to read CourseList until the beginning
CourseList.IterPrev
 
While CourseList.BOC = False
    Set Course = CourseList.ElementValue
    course_no = Course.course_no
    Title = Course.Title
    Credits = Course.Credits
    CourseList.IterPrev
Wend
PK\ytPKY2%@OEBPS/sermthod067.htm~ CreateTempBLOB/CLOB Method

CreateTempBLOB/CLOB Method

Applies To

OraDatabase Object

Description

Creates a temporary LOB in the database.

Usage

Set OraBLOB = OraDatabase.CreateTempBLOB(use_caching) Set OraCLOB = OraDatabase.CreateTempCLOB(use_caching)

Arguments

The arguments for the method are:

ArgumentsDescription
use_cachingA boolean value that specifies whether Oracle Database uses caching when accessing this LOB. The default value is False.

Remarks

Temporary LOBs are LOBs that do not exist permanently in the database. OO4O programmers commonly use temporary LOBs to pass into stored procedures and functions that have LOB arguments.

Temporary LOBs do not require or take part in transactions. (It is not necessary to acquire a lock before write operations, and rollbacks have no effect on temporary LOBs.)

The use_caching argument directs Oracle to use caching when accessing the temporary LOB. This is suggested when multiple accesses are expected on a single LOB. Caching is not required for the typical case, where a LOB is created, filled with data, passed to a stored procedure, and then discarded.

Temporary LOBs exist on the database until no more references to the corresponding OraBLOB or OraCLOB exist on the client. Note that these references include any OraParameter or OraParamArray that contain a temporary OraBLOB or OraCLOB object.

Examples

Example: Passing a Temporary CLOB to a Stored Procedure

The following example illustrates the use of the CreateTempClob method to create a OraCLOB. The OraCLOB is then populated with data and passed to a stored procedure which has an argument of type CLOB.

Dim OraSession as OraSession 
Dim OraDatabase as OraDatabase
Dim OraClob as OraClob 
 
'Create the OraSession Object. 
Set OraSession = CreateObject("OracleInProcServer.XOraSession") 
 
'Create the OraDatabase Object by opening a connection to Oracle. 
 
Set OraDatabase = OraSession.OpenDatabase("ExampleDb","scott/tiger", 0&) 
 
'Create the stored procedure used in this example 
OraDatabase.ExecuteSQL ("create or replace procedure GetClobSize" & _
           "(in_clob IN CLOB, clobsize OUT NUMBER) as Begin clobsize" & _ 
           " := DBMS_LOB.GETLENGTH(in_clob); End;") 
 
'create an OraParameter object to represent Clob bind Variable 
OraDatabase.Parameters.Add "CLOB", Null, ORAPARM_INPUT,  ORATYPE_CLOB 
 
'the size will go into this bind variable 
OraDatabase.Parameters.Add "CLOBSIZE", Null, ORAPARM_OUTPUT,  ORATYPE_NUMBER 
 
' create a temporary CLOB 
set OraClob = OraDatabase.CreateTempClob 
 
'Populate the OraClob with some data. Note that no row locks are needed. 
OraClob.Write "This is some test data" 
 
'set the Parameter Value to the temporary Lob 
OraDatabase.Parameters("CLOB").Value = OraClob 
 
'execute the sql statement which updates Address in the person_tab 
OraDatabase.ExecuteSQL ("Begin GetClobSize(:CLOB, :CLOBSIZE); end;") 
 
'Display the size 
MsgBox OraDatabase.Parameters("CLOBSize").Value 
 
'these two lines force the temporary clob to be freed immediately 
OraDatabase.Parameters.Remove "CLOB" 
Set OraClob = nothing 
PK "~PKY2%@OEBPS/serprop130.htmr TotalDays Property

TotalDays Property

Applies To

OraIntervalDS Object

Description

Gets and sets the total number of days that this OraIntervalDS object represents.

Usage

totalDays = OraIntervalDSObj.TotalDays
OraIntervalDSObj.TotalDays = totalDays

Arguments

ArgumentsDescription
[in] totalDaysA Variant type of any numeric value or an OraNumber object specifying the OraIntervalDS object as the total number of days.

Data Type

Double

Examples

Dim oraIDS   as OraIntervalDS 
'Create an OraIntervalDS using a string which represents 1 day and 12 hours 
Set oraIDS = oo4oSession.CreateOraIntervalDS("1 12:0:0.0") 
 
'totalDays is set to 1.5 which represents an interval of 1.5 days
totalDays = oraIDS.TotalDays 

See Also:

OraNumber Object

PK 6wrPKY2%@OEBPS/sermthod145.htmi Put_Value Method

Put_Value Method

Applies To

OraParamArray Object

Description

Inserts values into the table parameter.

Usage

OraParamArray.Put_Value(value, index)

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant representing the value to insert.
[in] indexAn Integer representing the index value of the object.

Remarks

This method should be used to insert a value before accessing a row in a table. A row does not contain a valid value until a row is assigned a value. Any reference to an unassigned row in the table raises an OLE Automation error.

The value argument can be an Oracle Database 10g object, such as an OraBLOB. For Put_Value, a copy of the object is made at that point in time, and Get_Value must be accessed to obtain a new object that refers to that index value. For example, if iotype is ORATYPE_BOTH and an OraBLOB obtained from a dynaset is passed in as the input value, Get_Value needs to be called after the SQL has been executed to obtain the newly updated output value of the ParamaterArray.

Similar to a dynaset, the object obtained from ParamaterArray Get_Value method always refers to the latest value for that ParamaterArray index. The Visual Basic value Null can also be passed as a value. The Visual Basic value EMPTY can be used for BLOB and CLOB to indicate an empty LOB, and for OBJECT, VARRAY and NESTED TABLE to indicate an object whose attributes are all Null.

When binding to RAW columns (ServerType ORATYPE_RAW_BIN) value should be a byte array.

PK3nSniPKY2%@OEBPS/serprop040.htme EditOption (OraRef) Property

EditOption (OraRef) Property

Applies To

OraRef Object

Description

Specifies whether the object is to be locked during the pin operation.

Usage

edit_option = OraRef.EditOption
OraRef.EditOption = edit_option

Arguments

ArgumentsDescription
[in] [out] edit_optionAn Integer representing the edit option.

Data Type

Integer

Remarks

This property should be called before a pin operation on a Ref value, before accessing an attribute for the first time on the OraRef object. This option is useful if the object attributes are modified immediately after the pin operation. Locking the object instance during the pin operation saves the round-trip to the database during the Edit (OraRef) operation.

Possible values of edit_option are:

ConstantValueDescription
ORAREF_NO_LOCK1Does not lock the object in the database (default).
ORAREF_EXCLUSIVE_LOCK2Maintains an exclusive lock on the object in the database.
ORAREF_NOWAIT_LOCK3Maintains an exclusive lock on the object in the database with the nowait option.

Examples

The following example shows the usage of the EditOption property. Before running the sample code, make sure that you have the necessary data types and tables in the database. See "Schema Objects Used in the OraObject and OraRef Examples".

 
Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Person as OraRef

'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
'create a dynaset object from customers
set OraDynaset = OraDatabase.CreateDynaset("select * from customers", 0&)
 
'retrieve a aperson column from customers. Here Value property of OraField object 
 
'returns Person OraRef
set Person = OraDynaset.Fields("aperson").Value
 
'set the ORAREF_EXCLUSIVE_LOCK EditOption on the Person object. 
Person.EditOption = ORAREF_EXCLUSIVE_LOCK 
 
'pin the Person Ref. This operation also locks the underlying 
'referenceable 'object in the server
MsgBox Person.Name

'call Edit method on Person OraRef. 
'This method does not make any network round-trip

Person.Edit
Person.Name = "Eric"
Person.Age = 35
Person.Update
PKjPKY2%@OEBPS/sermthod122.htm 5 IterPrev Method

IterPrev Method

Applies To

OraCollection Object

Description

Moves the iterator to point to the previous element in the collection.

Usage

OraCollection.IterPrev

Remarks

Using an iterator is faster than using an index when accessing collection elements.

If the iterator is pointing to the first element of the collection prior to executing this function, then calling this method makes the BOC property return True. Also, the iterator is not changed. Check the BOC property when calling this method repetitively.

Examples

See "Example: OraCollection Iterator" .

PKǸ" PKY2%@OEBPS/sermthod003.htm^ Add (OraIntervalDS) Method

Add (OraIntervalDS) Method

Applies To

OraIntervalDS Object

Description

Adds an argument to the OraIntervalDS object.

Usage

OraIntervalDS.Add operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, a numeric value, or an OraIntervalDS object to be added.

Remarks

The result of the operation is stored in an OraIntervalDS object, overwriting any previous value. There is no return value.

If operand is a Variant of type String, it must be in the following format: [+/-]Day HH:MI:SSxFF.

If operand is a numeric value, the value provided should represent the total number of days that the constructed OraIntervalDS object represents.

Examples

Dim oraIDS as OraIntervalDS 
 
'Create an OraIntervalDS using a string which represents 
'1 day and 12 hours 
Set oraIDS = oo4oSession.CreateOraIntervalDS("1 12:0:0.0") 
 
'Add an interval using a string, which represents 2 days 
'and 12 hours, to oraIDS. 
'The resulting oraIDS is an interval which represents 4 days  
oraIDS.Add "2 12:0:0.0" 
PKFPKY2%@OEBPS/serprop124.htm> Status Property

Status Property

Applies To

OraParameter Object

OraParamArray Object

Description

Returns an integer indicating the status of the specified parameter. Not available at design time and read-only at run time.

Usage

parameter_status = oraparameter.Statusparameter_status = oraparamarray.Status

Data Type

Integer

Remarks

The Status property is interpreted as a series of bits, each providing information about the parameter. Parameters can be bound only if they are enabled, and can be enabled only if they are auto-enabled.

The parameter Status property bit values are:

ConstantValueDescription
ORAPSTAT_INPUT&H1&Parameter can be used for input.
ORAPSTAT_OUTPUT&H2&Parameter can be used for output.
ORAPSTAT_AUTOENABLE&H4&Parameter is AutoBindEnabled.
ORAPSTAT_ENABLE&H8&Parameter is Enabled. This bit is always set.

These values are located in the ORACLE_BASE\\ORACLE_HOME\oo4o\oraconst.txt file.

Examples

This example demonstrates the use of parameters and the ExecuteSQL method to call a stored procedure (located in ORAEXAMP.SQL). After calling the stored procedure, the Status property of each parameter is checked. Copy and paste this code into the definition section of a form. Then, press F5.

Sub Form_Load ()
 
 'Declare variables as OLE Objects.
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Add EMPNO as an Input parameter and set its initial value.
 OraDatabase.Parameters.Add "EMPNO", 7369, ORAPARM_INPUT
 
 'Add ENAME as an Output parameter and set its initial value.
 OraDatabase.Parameters.Add "ENAME", 0, ORAPARM_OUTPUT
 
 'Execute the Stored Procedure Employee.GetEmpName to retrieve ENAME.
 ' This Stored Procedure is located in the file ORAEXAMP.SQL.
 OraDatabase.ExecuteSQL ("Begin Employee.GetEmpName (:EMPNO, :ENAME); end;")
 
 If OraDatabase.Parameters("EMPNO").Status & ORAPSTAT_INPUT Then
  MsgBox "Parameter EMPNO used for input."
 End If
 
 If OraDatabase.Parameters("ENAME").Status & ORAPSTAT_OUTPUT Then
  MsgBox "Parameter ENAME used for output."
 End If
 
'Display the employee number and name.
 MsgBox OraDatabase.Parameters("EMPNO").value
 MsgBox OraDatabase.Parameters("ENAME").value
 
 'Remove the Parameters.
 OraDatabase.Parameters.Remove "EMPNO"
 OraDatabase.Parameters.Remove "ENAME"
 
End Sub
PK]PKY2%@OEBPS/dcevents004.htm r MouseDown Event

MouseDown Event

Applies To

Oracle Data Control

Description

This event is fired whenever a mouse button is pressed (MouseDown) and the mouse pointer is over the data control, or has been captured by the data control. The mouse is captured if a mouse button has been pressed previously over the data control until all corresponding MouseUp events have been received.

PKq5 PKY2%@OEBPS/serobjch001.htmm OraAQ Object

OraAQ Object

Description

An OraAQ object is instantiated by invoking the CreateAQ method of the OraDatabase interface. It represents a queue that is present in the database.

Remarks

Oracle Objects for OLE provides interfaces for accessing Oracle Database Advanced Queuing (AQ) feature. It makes AQ accessible from popular COM-based development environments such as Visual Basic.

The OraAQ Automation interface provides methods for enqueuing and dequeuing messages (encapsulated in the OraAQMsg object). It also provides a method for monitoring queues for message arrivals.

Client applications provide a Dispatch interface to the monitor. The monitor checks the queue for messages that meet the application criteria. It then invokes the NotifyMe method of the Dispatch interface when these messages are dequeued.

The following diagram illustrates the OO4O AQ Automation objects and their properties.

Description of o4o00016.gif follows

Properties

Methods

Examples

Example: Enqueuing Messages

Enqueuing messages of type RAW

"Enqueuing Messages of Type RAW"

Enqueuing messages of Oracle object types

"Enqueuing Messages of Oracle Object Types"

Example: Dequeuing messages

NOTE: The following code samples serve as models for dequeuing messages.

A complete AQ sample can be found in \OO4O\VB\SAMPLES\AQ

Dequeuing messages of the RAW type

"Example: Dequeuing Messages of RAW Type"

Dequeuing messages of Oracle object types

"Example: Dequeuing Messages of Oracle Object Types"

Example: Monitoring messages

See "Monitoring Messages" for examples illustrating the use of the MonitorStart and MonitorStop methods.


See Also:


PK{PKY2%@OEBPS/sermthod087.htm  Exist (OraCollection) Method

Exist (OraCollection) Method

Applies To

OraCollection Object

Description

Returns True if an element exists at a given index; otherwise, returns. Valid only for OraCollection of Type ORATYPE_TABLE.

Usage

exists = OraCollection.Exist index

Arguments

The arguments for the method are:

ArgumentsDescription
[out] existsA Boolean value specifying the existence status of the element.
[in] indexAn Integer specifying the index of the element.

Remarks

None.

PKCN6 PKY2%@OEBPS/sermthod030.htm  Clone Method

Clone Method

Applies To

OraDynaset Object

Description

Returns a duplicate dynaset of the specified dynaset.

Usage

Set oradynaset2 = oradynaset1.Clone
Set oradynaset2 = oradynaset1.DbClone  

Remarks

This method creates a duplicate dynaset of the one specified. The original and duplicate dynasets have their own current record. However, the new dynaset is not positioned on any row and has its EOF and BOF conditions set to True. To change this, you must explicitly set a current row on the new duplicate with a Move or Find method.

Using the Clone method has no effect on the original dynaset. You cannot add, update, or remove records from a dynaset clone.

Use the Clone method to perform an operation on a dynaset that requires multiple current records.

A cloned dynaset does not have all the property settings of the original. The CacheBlock, CacheSliceSize, CacheSlicePerBlock, and FetchLimit properties are all set to Null.

Bookmarks of a dynaset and its clone are interchangeable; bookmarks of dynasets created with separate CreateDynaset methods are not interchangeable.

PK; PKY2%@OEBPS/serprop162.htmd Year (OraTimeStamp) Property

Year (OraTimeStamp) Property

Applies To

OraTimeStamp Object

Description

Returns or sets the Year attribute of an OraTimeStamp object.

Usage

year = OraTimeStampObj.YearOraTimeStampObj.Year = year

Arguments

ArgumentsDescription
[in] yearThe Year attribute of an OraTimeStamp object.

Data Type

Integer

PK`i d PKY2%@OEBPS/dcprop001.htm= AllowMoveLast Property

AllowMoveLast Property

Applies To

Oracle Data Control

Description

Determines whether the user can move to the last record using the Data Control's MoveLast button. Read/write at design time and run time.

Usage

oradata1.AllowMoveLast = [True | False]

Remarks

By default, AllowMoveLast is True, in which case the user has no restriction upon record motion, even when moving to the last record may be very time consuming.

When AllowMoveLast is False, the Data Control's MoveLast button is grayed out and disabled. However, once the last record has been encountered (either because the user has navigated to the end of the set, or because code has positioned the record pointer to the last record), the button is enabled. This gives the user visual feedback about whether or not the entire query has been fetched. Setting this property to False does not prevent you from using the MoveLast method.

Changing this property has no effect until a Refresh method is sent to the data control.

Datatype

Integer (Boolean)

PK6B = PKY2%@OEBPS/sermthod039.htm  Close Method

Close Method

Applies To

OraDatabase Object

OraDynaset Object

OraSQLStmt Object

OraServer Object

Description

Does nothing. Added for compatibility with Visual Basic.

Remarks

Neither the OraDatabase nor the OraDynaset object supports this method. Once an OraDatabase or OraDynaset object has gone out of scope and there are no references to it, the object closes automatically.

PK PKY2%@OEBPS/serprop146.htm` Value (OraNumber) Property

Value (OraNumber) Property

Applies To

OraNumber Object

Description

When read, the Value property provides a string representation of the value of the OraNumber object using the current format string. When set, the Value property accepts a Variant of type String, OraNumber, or a numeric value. Read and write at run time.

Usage

string = OraNumber.Value  
OraNumber.Value = variantval 

Arguments

ArgumentsDescription
[in] variantvalA Variant of type String, OraNumber, or a numeric value.

Data Type

Variant

Remarks

If the Value property is set to a numeric type, such as a LONG, it is limited to the maximum precision Visual Basic provides for numerical values.

If the current format cannot be applied successfully to the value, an error is raised. An error is also raised if this property is set to a Variant value that cannot be converted to a number, such as a string of nonnumeric characters.

PK`8e`PKY2%@OEBPS/serprop125.htm: Status (OraLOB/BFILE) Property

Status (OraLOB/BFILE) Property

Applies To

OraBLOB, OraCLOB Objects

OraBFILE Object

Description

Returns the status of the current polling operation.

Read-only.

Usage

status = OraBFile.Status 
status  = OraBlob.Status 
status = OraClob.Status 

Data Type

Integer

Remarks

This value only has meaning when the PollingAmount property is not zero, and a Read operation has occurred. Possible return values are:

  • ORALOB_NEED_DATA

    There is more data to be read or written.

  • ORALOB_NODATA

    There is no data to be read or written, usually due to an error condition.

  • ORALOB_SUCCESS LOB

    The data was read or written successfully.

PKD? : PKY2%@OEBPS/serprop042.htmy EOC Property

EOC Property

Applies To

OraCollection Object

Description

Returns True if the collection iterator moves past the last element of a collection.

Usage

eoc_flag = OraCollection.EOC

Data Type

Boolean

Examples

See "Example: OraCollection Iterator" .

PK%~yPKY2%@OEBPS/sermthod046.htm Copy (OraLOB) Method

Copy (OraLOB) Method

Applies To

OraBLOB, OraCLOB Objects

Description

Copies a portion of the internal LOB value of an input OraBLOB or OraCLOB object to internal LOB value of this instance.

Usage

OraBlob.Copy srcBlob, amount, destOffset, srcOffset 
OraClob.Copy srcClob, amount, destOffset, srcOffset 

Arguments

The arguments for the method are:

ArgumentsDescription
[in] srcLOBAn OraCLob or OraBLOB object whose value is to be copied.
[in] [optional] amountAn Integer specifying number of bytes or characters to copy. Default value is the size of the BLOB or CLOB value of the srcLOB object.
[in] [optional] destOffsetAn Integer specifying the offset in bytes or characters for the value of this object. Default value is 1.
[in] [optional] srcOffsetAn Integer specifying the offset in bytes or characters, for the value of the srcLOB object. Default value is 1.

Remarks

Obtain either a row-level lock or object-level lock before calling this method.

PK-9!PKY2%@OEBPS/sermthod113.htm IsGreater (OraNumber) Method

IsGreater (OraNumber) Method

Applies To

OraNumber Object

Description

Checks if an OraNumber object is greater than an argument value.

Usage

bool  = OraNumber.IsGreater value 

Arguments

The arguments for the method are:

ArgumentsDescription
[in] valueA Variant of type String, OraNumber object, or a numeric value.

Remarks

Returns a Boolean value: The value is True if the OraNumber object is greater than the argument; otherwise, it is False.

PK] PKY2%@OEBPS/sermthod089.htm  FetchOraRef Method

FetchOraRef Method

Applies To

OraDatabase Object

Description

Fetches a referenceable object into the cache and returns the associated OraRef object.

Usage

Set OraRef = OraDatabase.FetchOraRef(hex_value) 

Arguments

The arguments for the method are:

ArgumentsDescription
hex_valueA String containing the hexadecimal value of the REF.

Remarks

The hex_value argument can be obtained through the OraRef.HexValue property or from an XML document generated by the OraDynaset.GetXML method.

PKp  PKY2%@OEBPS/dcprop006.htm , Database Property

Database Property

Applies To

Oracle Data Control

Description

Returns the OraDatabase object associated with the data control. Not available at design time and read-only at run time.

Usage

oradatabase = oradata1.Database

Remarks

If the data control has not been refreshed, any references to this property results in an Object variable not set runtime error.

Changing this property has no effect until a Refresh method is sent to the data control.

Data Type

OLE Object (OraDatabase)

PK1qj PKY2%@OEBPS/dcprop005.htm " Connect Property

Connect Property

Applies To

Oracle Data Control

Description

The username and password to be used when connecting the data control to an Oracle database. Read/write at design time and run time.

Usage

oradata1.Connect = [ username/password 

Remarks

This string is passed to the OpenDatabase method of the OraSession object when the control is refreshed. Changing this property does not take effect until a Refresh method is sent to the data control.

If the data control is refreshed and the Connect property has not been specified, the refresh will fail.

Examples of valid Connect properties include:

"scott/tiger"
"system/manager"

Data Type

String

PK,Z PKY2%@OEBPS/serprop059.htm8 HexValue (OraRef) Property

HexValue (OraRef) Property

Applies To

OraRef Object

Description

Returns the hexidecimal value of the REF.

Usage

hexstring = OraRef.HexValue 

Remarks

The hexidecimal value of the REF can be used by the OraDatabase.FetchOraRef method.


See Also:

FetchOraRef Method

PKatVPKY2%@OEBPS/sermthod163.htm8 Tan (OraNumber) Method

Tan (OraNumber) Method

Applies To

OraNumber Object

Description

Calculates the tangent of an OraNumber object given in radians.

Usage

OraNumber.Tan

Remarks

The result of the operation is stored in the OraNumber object. There is no return value.

PK)y==8PKY2%@OEBPS/sermthod004.html Add (OraIntervalYM) Method

Add (OraIntervalYM) Method

Applies To

OraIntervalYM Object

Description

Adds an argument to the OraIntervalYM object.

Usage

OraIntervalYMObj.Add operand

Arguments

The arguments for the method are:

ArgumentsDescription
[in] operandA Variant of type String, a numeric value, or an OraIntervalYM object to be added.

Remarks

The result of the operation is stored in the OraIntervalYM object, overwriting any previous value. There is no return value.

If operand is a Variant of type String, it must be in the following format: [+/-]YEARS-MONTHS.

If operand is a numeric value, the value provided should represent the total number of years that the constructed OraIntervalYM object represents.

Examples

Dim oraIYM as OraIntervalYM 
 
'Create an OraIntervalYM using a string which represents 1 year and 6 months 
Set oraIYM = oo4oSession.CreateOraIntervalYM("1-6") 
 
'Add an interval using a string, which represents 2 years 
'and 6 months, to oraIYM. 
'The resulting oraIYM is an interval which represents 4 years 
oraIYM.Add "2-6" 
PK ?PKY2%@OEBPS/dcprop023.htmJ ReadOnly Property

ReadOnly Property

Applies To

Oracle Data Control

Description

Determines whether the dynaset will be used for read-only operations. Read/write at design time and run time.

Usage

oradata1.ReadOnly = [ True | False ]

Data Type

Integer (Boolean)

Remarks

By default, ReadOnly is False which means that an attempt will be made to create an updatable dynaset by selecting ROWIDs from the database. If ReadOnly is set to True, a non-updatable dynaset is created (ROWIDs are not selected from the database and cached) and operations will be somewhat faster.

If the SELECT statement contains a LONG or LONG RAW column, ROWIDs are needed whether the dynaset will be updatable or not.

Changing this property does not take effect until a Refresh method is sent to the data control.

PKI O J PKY2%@OEBPS/img/exsheet.gif-5GIF89a<Z???iiittt~~~NNN:::]]],<ZH*\ȰÇ#JHŋ3jȱǏ C6@ɓ(S\ɲ˗0cʜI͛8sɳϟ@ RH*]ʴӧPJTj]ztׯ`ÊKٳhӪ]Ѷpb:jܬ]˷߿}+pS 5 /ǐ#KL/ʖ$رҔH=ڴ+h̨S^_#^礷C;hӬ N|pz&)xڝ"?soܿCνV\q3.޼N.gt(7{I5lGr^{HQ!$h\{~9gA^-H!p!w})Lnf騤hQꪬ*무$뮼+k&6F+ZfvZ[֐+ k[wF\;V]YQnoTo  Kp[C.̰COPۋqml"DruUQ!S!G'[e2H( @ 3%%@G?GGEt,=Uzr@IC343@, @'PHSoM]lͷ&k 5}J @ b? 4@9B_l!>{O-P/z&'oS@^uG7F[@ܘG|I 97eܮzUtv%TzozG;LUPji7KwPd)k,+=ܬZUh:njHv<.$ч.t0O/Lԛ].ЏV~ ɖw`5ȣbY+X,NJzXOw_0ꍊ|T-׃|] 3G47Vvs'zQ( 2~}e6s+{*_{YQRұ~lrvgʶikV%Eig|he`{"1xF2b3Cp%iڶ&uՀ^j1_( xpbF2ϳF!W#[7'xW)lX7"Ks/HY X8k5X }:xf!VSkbVf[`lQh{ UmFV"RJu#h>i7|6 K"YHghh)}X^f[X~(~XsH hv_fvX+8p׆o!7mI8qh8Dgh\$}P(YmcHf̨8X"3DLhV.Vc8U.GwU~ȏ1">6{^v'n{l|"Wdy&Ahx[׊t)Phȑ5wxB,9's*3yTcyד>@B1SO7tW0dmsLxbsPGJt\N07IlT|VmeVpo9{W{uYzY|t旂RnmɖY7 6kh'Xט؅,wg*(~@ȂqYm9%&tՙi(c|VPg{#&ȉaf8~X,6m Zi9hHki߈\l,8n0{mj}9Y%Ɏor/<#lAY؏Xhv2hdijgI)e6gA6yp)I蟏 j3#ß\FherfLj}g/gaYz ٢?֙ɟi}RH'4 gNsbȤʞؐd8b/&YFXuOʡXSYIzGY ~hs]ʋ:bqEg*K"8w(NY,炥VFaiooXب7.ةڌg5sJ4ڝ)%j4nK(Y2gաPEV׬ ItIq<*dQ 9a_ :w ҮxCr_y" WVO呔"iUyQ28JC:1;[[E2]Gy; y[ P% (+/;Q-:CiazzZUe6 9k֣mؗ麮U!*7V 6fxsQb!iiŜ֦j~Mkle[ZJ|2SP٪\r9eWrjڟj[~[[.I:_k|8$Kjy9fAڹ ؈HމvZ 6˫$(Cza*^^frZ+=a泥&웧]KU8*ztk(r~Bڏj] [fz:!uёQj 6p+FjaK6sF ۻz~0zx۩\?8ꍰz$D{[~&ؚϘhwǷZ ɖKԩ,*m\-ۜ9՘8Sff|ͦ5M5cD<[-Y}:JInf}Mk-ɍǞKѽȅ/<8-*$ :elY#7$hڤ8;pglŪO[RK^hϟgp-ՍG=lFؗށ֯LQM9=>- 80{H6K} S9ON0ȹ܏6+ 7O@O%Aө90LP:L(Dzϩ@H$1O;ѥ0wPG{B<#Et2!\p*+ob)p $T![Zs/LsD.4/q3:D/=@=̚J@dKN4D7K<ι$1ݎ쑡BkԔ99>sW?]t= )` VY]JSI A=Ul4uaNW nI, L"؍Dؒ$ SJWAiWD2U-PrZ\-8X@彸z%aTu).lalsI='>vqn0یY&9^vsQҒ3uebCلZ/mn`-S7bBqe0xy$ZȻ97uթ 憵&jl.b[o;[VwU=4wm1vW7<;;j]=V`ouMtwvڑowvq>yZy>+z駧z>{瞫Z]y7C*|ƎG|qǗgܗ~W7}!1rIDXY@ՙֳYu[dU\ֱ$^me \UpOCT^ 7]tϺnv]v׻b+貥#y#2^*z[6~EX^jl[4˽Ѫ&+iaȞ獰\dHZjÙ2- Njׁ̰ b>s*fSڀ@̥J*^8=*X _;;W'YZq4M}csX)Iz:J6\[iXȉKO[2:ZM|S\vS}'()auHC:f6W-q&z:gӾG].CFQcȪ&HUބsG5฾E߶ʭ )._f"E3{Kvuw 3ZSS:ʖ3ېF NjzF:~he}iȶ[Gмsr=m>h,ͨKÌGzwd^w,X[X1>b':Z .܂-7r5)6o|." %:6gmu7i[+s:bOI5;A{īt޿N;eXu}Meͻe7BK]~|5yc>i|_"пs#]C?W&DvSp. .wCʈ;Ϭ+g~ֺ' "99KCC$1Ba-Ks5(ڤ‹8KB4G15@6k<)4Z& @#s8e?ɘz`6IK9Bh(*z66¤{ ۿCd?tHBBΪ4);C+A+6Jz+:;&Ǒ 8!De8$*ܳ<4>k5Uۿs@at@T9EѢC( I$Z83C,+@NdAw? \$*z"1 A@Z7E5Sj6Vu:;l+tl/h  Es>l(Gʵ5|fգ[3/,Iȥ=ɑK|t(lĕ$4H<{ʡ$ʢ4ʣ$˷=$A|gdJԡbItJVI:ɡ`@=J[ɲ,nJߣ;d Lk7 6TH\;1ðB4DEcT#?c!>j"L>`a;aH;;#C>@,z#A)E04v4?C:)ԥ~9|7Z ̱ԫd3@ RFi(P*ͰEϬD*L|zE4?UdFZM;!<(;35I32Nu(knIB"ǺbN9jIϟD:?qO],|:YeD1RstВŇ?5DŽKĭ:̩s9E| E,;O.BEkP0>c7C3Rt2 y6 §'T"e,/NP Lt+B,ѧR4E%xsE4"!mBLQ|3$QckE85)5P=2 pNdN!O`t;-bP٥*-D K0uכ]VY>oe̽U+ȥXW H1cY+ݣ'I3UUyφcYT@']BJQMZU< ,=NI?\)xQM3< k򸌋غ|VU IEKSsY$;68 ^TW`&KEBEVXl#1ȍʽܿHY_}LiSyfm \4Vme0V(|:'ܽT:T%,Q-ڕX5*-Q Zr[[s*%ܪ[mR>1/Z^\(CM$u7Utx_mUSs3>˫<tP à_R-Bu]^sHuOU݀=(_۪Ԡ7:3U$a\BZ4ڥyMUbgZݠϟ Hf5QDªL^z0 Ƣ:\qL7㖽ʛĭ}Hn\c B:5Y~ud3dJLa5rQ&R6S.ǐm]z=dڻKndVX}e޳e(bEN-٦~<81-TD0 Z,C 5funיȌ崻Zڷ4!f[*m&dgV&[&gBڗb[]wN}UM{gΔ.lSsZ-XD^νB|Ye7MqD]HBe8PDbSc3V^W<;{elj#'Pr5c1iW$֧Ki2тjKi-"Uj =%[b_pq_!QsMF慪Tj_%lVkk(]V9FS ƈ"ZRl&iQ`c<%VNV\t$|.ʆˎͧ6mV^UWݱ ߂6gY$fTf]}t^L;ngnB7omc=qN,?l+9g_&a k\oB,fћeWa>p fddv_4jPeA  UM.g?;!qMwgKK6p?o[q.eA;LN.d-d5dPZn6$rVn>tSfi.Lc\ 5Z CjWl=G9[M膪 o*^f+&P ]64ShUᕥmVX0OtTP4N{ϷU6F?>޾H6% "L6tNLO ujH$4f[DgmhV5 XY&0U?o\tKq,@cU:F(UA\iu^VmZ2tMmhMm^Uc?%S>oĆ Yu.q}߳0Tms?%U#Fb%_xNhxon?Zo>k1T/c^y42#VyA T8֊Onzi.^b&QE#,&/zT|v۝ #7Arl¡tt7I z>' {{ _ ʷwXJHVu^XLO?FB|oϽW }X a7l(`("Z{'g'atnm)Ooe=?>vW%[?w[q?\Zn,5/i^ߕ}Gov9 B"d`Ä!FpC%ZFG,Yɔ)E|X"J$zdRbțcgG sihJHHT`PZ A(pjULgrfChj2[jGڄؼtR5ݖ]kVh`q' 4E% .8Tah``Rt΍sl| lŒk7alك.]7aۅ|tw\w 7q_JǘΪkwm=7m6as-}u[w]^tEF}xhTyքaGVp^kFer8EH .h_G/"Ubj 9URqg)^uٔLw!%h|;-#Y]Ti zǀga|B٥=#{ζ>GXm^^6`"(SJEqvW[)yN$[{,|1٪{ zjH1៘j c|ꮅ+)yIj&{,TBFx-Ive(뷳ҸZxnR+xKOboufo[opD K[\k1{1!<2%|2)2-쮐zi+ Bi\5+3_<3@HMc5)ղ2>m]AG}JoPd$ @ YٶQt6Uz׀  klwq; w܄˶xcEgc[uh8^cn9Uu5sTb;,EWxj➸ mm  >w﹗3s۾;~;g߳i=|=U{o۷>`o j待!05! eR)"D̆2t D#Fg%L 3VEDSSaŕND5uq'ca?Ɣg$:@L"X* .(GBqࢤ ;qfp>lT&wJ\"T<WyVL"㥸^F6l("ULZrG 0Q'KNH䵚?>sdѬ\7=͆eդg[&Ҕᄦ6Q2P4IL /Ș.i,jx-'UORKdBOys3&h9gzf3Z*FSBX)=Gc'L?.+)*M'tTLzSNEJYv쪾jLY*բRuc)<Ш;eeWu'Iq#UW@wXVJլn}kSպҿuhHw@谱L}'%Ӷ;-lMُqEZZ]bNoIj_׍ vc,Y_K*u];:Xޖ=.`;Z<,ĭQVަtShpV3Eg_v#/ӲTc1#ZWqeZ}avu%edgڽx c S< ʪT?-#Kfx4poSXEnxc'a [8h+̇f`_8A[b n1|\-7w rq"|-"UT>[Uu= d6P2!jY˹ ۜ2˙h#$W :cΉkL>ֲa9sNoW Ӟ4C-QԦ> }Tծ~UKY]D]C-a3njwd?[ǖಓ>6msVE; ;PK25-5PKY2%@OEBPS/img/oradcemp.gif"GIF89a-,-H*\ȰÇ#JHŋ3jXP@ CIɓ(S\ɲ˗0cʜI͛8s$ǟ@ JѣH#`ӧPJJիXjʵׯ`ÊKٳ۷pʝKݻ[l$޿ L֖eB Hl˘3k~!Oj6,t ȳᶆJ2͸sk8v\iS}ks>Wytӧ>L^{F]9__>y}z}pWogyjft׵Euu!ne#F)(#h`&A#GHT/HߒL颊OR'eP2y-~$u[neM(fe9XPP@ eM^b_|mq"Jyj]Yc&cG;fzj{G{wZgt_甆**!d~ꥢ (cjNf|U56N_\;}6vmSӛߴçjyי2zk;.jx#i n2N^M X=p,voGe-҃>un%W:Mr:PwSg&gW^v(ݷgj:!rڲăN;nfƵxKO;񐏼'OyʿTIݽt~&8c^zmڶo x}3lkOܼށ{QՓ.y.pm^gVS NMFVEj/r3w??gJz{o7k hq&oF8gsvo@~'HeӖ5h&\ٓho u7Eo hq`&=\G<Ev|5{vosF_b@XsG׀h~m|f188)j~DnvfזƂBW3Sxl5~pxZ]T5W sk(v1^sgm8EWqu^Xo 7v` W|Wmg8mwy(w2QhFng8s7xs{ʦ=~j&kHYh>փ7zj1]#z}XKT'z7u8p؇}w8|v(xSyy ِIx昍yw؏Zxhirwḑ%Yԃw;v|ͷ"8}tLjǓZc$X}(S`׉2I~^NJ񇑻(qg*dw~1Y!Gжk(~tgVH^9ey,A%(d3x}}}yjWɖkIIWKٕ3iv~An ؆4znQhG闛 i虑)eń4(SIiom2iy-\8.]iiXrx9oםũnnj芍(Iu ٙww fyItX ɘ9IytEiR|`Di晚ʕys҈b" }O֗Ƞ^؍'i9,H)⃢9|Xۣ)y3xR:TZVҩLg8"똤Jj=LBɣ?:KZ)N'׋߇HsV露|i&wzr:wDڕM99*{ )~mih {JyJ{:f+X`ɉv 5ɪ%MpsI' l:pzƊWp1&ꛒHnIh&j%`ǛڤԹlyH9~ Iq(r5vŃi*FOY*[:tVH9۰!yeĊ۪H豻di١ګɩ*mj*Pt:K(}I)|FF`A;DYHKk3X֩k1ꦞwٴTV7nۣp\jtkUOkDz@ i?Pzku^`jmq+d-jڹv}+WI{J襘J@Ȭ^8e::R󸸐JoJ*sahYwEkm1[ʼ몶za +"s(:z˾jȋ:[!bS bȀKiwKdٺ~XZ:Jة r窌lj)[Јr0YVʚպj۹o@ x 9I3l*[iH:íA| ;ڗ{9>r,KIȮ>|q7 sz˺>YmJqw.KcvLh_l<{ȫ˦_z;lP̶4LKjʪv̕<|Sܸ{ȜʌYꓹw;,K̺LʾʜW5̀Ü \2AΣ6,`٦ڧpe՘l0 |^)!݌ kܶ-{,bͯ\¬|k ݏd˜My[v ]}~J-/}ܻX`+jEXvL\_=J-sk:ݡ m]Фi$J]R u^j=֛8}wY [ΝI-+K&g_YQNj%JMULd}늻U}tW5kςZ5>8͉ SƟ?lnMРr1B|8^"I;_KᓬWZ ׉ݜ_ -^諨qjE|Ѕ.&Dkَj\߆߈|n|:#ȴħ#ɾHןlոž^:˦ -~[mL枑6^~N㮹힄=_@=oG:a]c[mn|%+9>34NxĻ9.O\}:˶HY)ӽ>؞ l!=@\s)X"%5ph!T> $Dgлjg\Mgak' zOO;?x)\yM^Zc,m@D80 >l( D-Z$ El1H%M 4xRʓ)Y\&L3mɲJ=!RhƆB~4zcNv6Ω&VŚU>2 "Qb- @VڵܾW\uśW^}X`o~],E\\)oLrf4g">qc:yf[d4kښmv(z1O/N YG뚸@ FZǁFzNUV<ٻ7N6˻oo~Ԟw/N P,O:/3#&O!Ē4IJo Pйǃ<"Ц/!'@`0&@ A]4ѸQ{QG+Q,Fj+cGt *#Z%$,1.{PLKɼDCPkҬoM\iGB;J( djDIIM .]PK[3IҥTBekq6EL%IUT To1-W$=DS1.AJcKdoDE/T+/\[mVCGceڐ5I8;MMߖ}>{aMh+EU|6$z'#e8tyec$3Ê;Y;Y y/dyuzYyYS_g5梆d+ ci:jO({EYh+[XhbpF:ckKrH5V1S<ыoDCu3Wظpl>k*lMgNA Sj>ùo;NP> D 5hmop`nC7 PZ:XhW.Azz* ˠg;]ӹTr5挀Xeɩy+Ǻ11U6"kjeRֻF(1O[;]=[Z\bC0 64D_2Eo2q$E až2U I\562JN"$cg$S3b]d;Z)ʙ nX #*EiDKդ9MjVӚל& CZ˘^f)N_j3Dyp̊tG3RW~.q HA}N0h,?G>fӌt-jrw,_=ϕ/ɑ7ٳu{:Ԗ6MZx/$u@ҍ#i|zFq~<`GGNQ1lz>5>O8]O(GN9U UPzê<`oId8?BotM9$6W(GF? - phη$j]IsàzL*""65G3)QJ?M}뒉!Y**%UiOhڭ> MIJ/u VÏVaVrIF( tp I6CEȋ8:v{\*ߑ5k%$jO)Ă{ ؖng2,-dTDSw}x>|&6Ub fZ: R #l4Xx%,v d98o?{E+չ${ ZAYs-&]Kî$13+d걋SlkBXJ-fbnօU_T.&H95a{D@$BDD
&HܟDtjt'!-Ѐ t[k` n(GNaЀ&JD+H/8BІ@ s(aؑ!"F|D&ZщOtHa@V"X1*h|h5v/pTx/71x阩-$&;B\!˨{!"wI@J$/LjE$$MC?7,gyJZ2'.sK[򲗳%0_)aĤ+3fkKX̼a$s5)RMI-\f(1rB#mx6qYO}Zۜ[ߠf7Y?jTb'7ݭp C 7Pь:T1B-JOusp#iLz-dRt!ݤ)l:8ft($*Nl]Ԧ:uGժZ %,=JjG}cWdru*+^02њH*"ݫc(E$j=fXz.Є$_XVcOH+b+Ta7+)QVf&@r6]G{X¢v+RJmQ1C֭ P  W-k*7~`^t:odĮwc,wj.\zoYBwG+|򴿸/i'îN38p}pPc9ph^3cya`#NGUR̽cFq7De(}ֶ #Ξ>N &|,iZYnRhI),.[3zNLv7L/ӹ`vgm"ײ4諾| \D+V{ًiiymgY^ZmKW 2PM5V[WϕuhYྶu ƽҰkk Ll[ZcGh޸ϳ)-]v:殻q.`|gz'Q|<%V.>w Ooq}O܍e+ކL8u&WS.2^.b.s9ιE󝓫>Ѓs=_C?F;Pԧ#b=Pzud$[gW]]HIru1=yQdnRFSwwhze߁w|Sx;y>y`Fe wnec߼;!Žϼ׀&S8O1JN/io39Vd9N5R10~2H3Nh}P48ǃN26gmC9ZcCd~SW9g7S$!d{=G %S<)Ee1vik8OWa85YE3G8~{ȍ߈|~ȎԷӌrs~'(G '灲{3Mzw{w8wOXӐȈYɐJ饘 iivz⦞*jcG$\75v\#lyJ*Ae+Ex+Kd /_E3k,1C :>S (bJ <)H71I04[59Duя&ʣ"YsN"@O0#CeC3rz(:)R0(MJWҖb%r(Ӛ6BӞz2mPJԢU0fhæ:; *Ok՘VT*bZWկtHSǺZ&OpK]5Zo^4P=O^7ӊ:k\`_c6 ' ,ddlY6Ҙ\iNUz6se٨YJdioNr"ԑ[`V<'IwkR9(m,>Y\< I}1̜rZVtX-y]iwq@R߻.ͯ~~PLt",cJS |DR }_taJevQ'2i F,i fWFX;MTcFS9n^<|ԖN;.QcAs2%isI8}||"XatYZsZIdQz\;H"5zs873^zROfb(櫙ӿ }t6n}*퉸Lݥ%7N%ֺ}4/meޙ?fzf^rsw7k白m۝. 6<+wяn-!} T\d9:MB=C^w|}+4vYu:!.>_xa?3Qs>YձGtA-yJ6gc[?1>Z=B+=En#\a?b,'Mˣ=]&7]ߥ|^*6{O˙y3~Be?ͯ?r`ą $W"أuLpR>kC|WFVu\G&=Wg8'h(hQiWe(Ef6y<:y"@CQBX8a?Az(pNrGeㆅaEF}Dž4wYfGGog姆f'1m7HDewG}phA#3RSNg7}/NH"X;(wƇ-'HdGN(I؅rU%0'"h}SW\}|F8U ]㋮g#fcY!HNy=_>E5؍Nč:(DLxْF(ŒŨc{SȆ|(2w3uCX8x7?c$/w/f}%]zEfq6=yX8tXd}h I27Gg\~QY8Re5\)jiuVXLL`aӒitJETx"֓-y{;gFȊQy{+ƕQgqQBY9[sN;j=ssX&)gs:oToWJ , ,ɘ$?1Q@"♔ə!d׸_9UB䚲ٚYGYA$9@>ĹUyxYYٜ\*չ*/& %ߩ 99=9b !ygPPki99y !_J_Z#:y *y *!R% LR:%_z#_!R#=N%R'z -tG4<*19PAIڃ?JG"Td@MoQm`$m4`]W: h@W7qmdJP=q s*l h:k17zڨꤌj  "BpZ0o,mq wZz:z~j*:ZNfZjӊ}*Vjѐjtr0ĺޚZ#ΪК**:̪*_j ڬ:1ۮɺʠ [  + K9+ձ&:4[3:$jK8>ٳ;jڱ P;Z{k4J+:Ȋ+ ˰ۥ|jfz: Rīi{Ի-;+kڭ7[ڿ < LNd& iM| #njLCn+욽K\u!O\&!Ȏ|WȐ|LT,+ȋ Kkʾl *̢k̑Ž뻱;˴ƶ|Ǹ ̹ʬ<02+q \{0lӢ|N%A;zCMs| ] С#]EѼ m# i"]#rg\aIŒ ҼZ\Ӌ[!l8 یFx7L;.he]\&"^,n/+21^;B:=[7BD^irH~0JN"PFT<~Cn+p@-'4bs8[,=mVrt^_uyNXJ%_Mتԁc"AB蚫|\teg"ڕלԼʨȝܮ۩ټ^dA^nq>]Ȳ볽مLn~ƍύƣ ܳ}굎n^ڣ7ޅz9^n؞HJSm-2D-2oTo N^`(Z"$&T,/.01N^6O;W=ߵ:K"?FVKMoR?TlpXZ\^o@<__fhjlnpr?t_;PKsl>PKY2%@OEBPS/img/o4o00004.gifBgGIF89a$BDbd|̄4RTrDBD "dl6tڔ|LjTr*t|DZLn2||,J섂DbԌ *lt6|.t\z,F4V<^tTv,NdDf:|2t,Fd &lLj|Čl,BDhr 6.(ȓ JQ₺J(D (Ҡx2ň#IZFP}5_CJ )u0?H?`qxx`dpH4; C2x`2<Т 2D@2 &D:  C *p/ m R"Fb`ن/[ _0lр0 ' $ z@{!  $ 6 2Fk wPAB!ijjv0TBYU1@W%8@C cE04+l[)0C]3G\ Qm^U&Df(b.:f jܰ aGn ڽ9~@mp h$ 70@@\r9SНvJ2=y-0( |]0~wR' :?GxMGqd4ݡO7!P"2`#Qtu9dI$h6l7y/\t́`b01hCjx|ɂrLnV,wсc^:w|Zj:%UTeUW1${`VY4V3@ C<\CPw G|mV`}`FPOfB+|}pZjCkN&| o t(&< ՁN @N% URڽvAT+\Rx di̠-R బg=ZuV -+( L 4s ; ^z5e6$Xp 6acr8p:>O=#3X'0#g?5rv 9|Pь IH$5'EHbk@)يt6m$Yn[[$ǿ NM;ܚHNO} 0?jO}(T*w$ANS'TUŠ\rW^Y-q:.^d=@2Ӏ.tƚ Ph`5Amj7 օ8S=3A F':`w>4|PViAe XP̡_ A D!J42D'"(FOQK}dE+4b$'Im.o_RG1M$\ z'BB$XH!Qt$1J]>)T !mU&P*t-+J\J‹Z[RlVeD/y)* p.Ǥ]W6M|ݫ__\K0v" g<@ < X?4 iy P .c ypf؏ ԧ'JkÉڨJr .s* e-ZEx"W$, Fk$iKI ,T${HBcZ 3ːY]fl (7S}s_3i0SN61KOFJ!S\%u2"SiQ,PPx2Qu] CV4fj?RE!LCRwwD)rRz5[k06S[$65lM%oslmSSB&llt$GE%8b'Tr8xU9S(ZUH`>z}{I){WoJcoSQ|@V"y($C"|(} ,"1"("ڇ(YU2.r7`YUZ=pZs/!@y0$@h@g1@O\q2"sB2Z]U.Q% b ۥv rG]HDb!t^!"0B_2";ERkxX46ZDS/`p3%i[r\`^ry7&ԖyGa0y H4z'2(B}PbbcE{-F)1nbcq(J×vhw|5|7ɇ|hX,(w&WF}-La&fSrf4/.mMg"g gzV|}V1KHh1!EB25@a'3|y3$ A34xPFD‚#K"0X5b.2YS1k8(6dk?lv) Tgylul{TTTFH(V9\a(fV3:Vƒ㒲S5Y;6||X?98i#pBЈeW-$aArarS~4r0>Ȋ5w?0(tA'C0h}ttOp1t%#2u_BP1`i]⍢v4D2IDRsR&"w3Bk5R_7$Xx_Lx)HWp7wc&%da8wT8nr'ܦ''Ibwbb9{fSIc{,)|C1;yH8 7hJy{,KWBL ޗ^D~~dMrg?s]Z$0ggqgVOtՑ hc\!hu2#@Hi5B 5]|uC35 jjYj;QjL4R^ _0r_+E#4R_c56Ճ)%lWlAy&obUx8qmQmVU^U`8n_"Y{n4Vc) m5/ $$ч)##X#q3;V-!S 8?Z;s@0u@@:t`h߱$B"3 pBgv!5C(JC7Ӎ9$-C/C!d0""Z"M"y5PwUdB^E$$f`uYr%yӄG0xGTaTz9b$ziJb>bBÙnzJJsJs\q+Dvd8)KHV,ƒ,) P&Ϣq[-YeMٔN9fQTiڴfXi/fg0cu&x0ey.y`1@oIA2(h&<Br{!&CCQ4Ij QGj#łGk_R~w#e#l$;7LlAEGzvTy8nmPa ˅Uahaa0I:*iImVco@JZJfhhpW,2X{eԛ|Q=٣ew=;Yi@KȄYRrr1L[???=GAwBg@ʡ!1sAq̘ h&4o!48D&"&R&P$>$$>`Or$b4x&A×Fe8B|8LE'wҺ' {s(2Ig(঑Rc :s_ ?Hca"?$_& *,.)2?4_66:AKR? AZ\W@8Ab_H0#ȋ/HReĒKSL5męSN=}tiЗ1hRiҤ/]ȆH"MubŢfejئbb Vѧ?ݾW\u$ZhU}G{Y)~+ԭyF*0f[2ZhҥMXjWB^:$GmϪ7ݭΐW ڧ?ݡe.9ÓR-ֻv=.<ݿ5knMyme? J3dS$0[J> '9JϺ*n'*ԩC6DO‹2Ci1'g1G U4n/@CrH#,(,E!I('%Sc K/3L1$L3D3M5dM7߄3N9礓KМ*O?D O,PCET1QG4R/I/4L)CM?5>9STSOEDR-MUW_}nUBaV[cs>VoW_Z XcE6YeeYg6ZiZkVF3qBY=Mq%\sE7]ue]w߅7^y祷^{PFUs0iNF8aJݗX.Ȁ b#nnw8Bac*aG&dL+fcyb`ncE;Qld&h4![~b+iovşlA̮h5E3ߞ91k. ڛl2  |˿ / R$/%{71kZf۶9jѥtg{I36|G|k\\ivˇѕGØc; l~>no;yfNiWoiw%ƅ=}W|?uwx.\f̔EnbCԚwG랗O}} 7 v/.3m2 Ϊv5sapAo r["JqPT:%m-\ 81B 9PM/G9l"7ą u?c'=ёn˸61oj<0}o}ԣI1Ol_G@&4BɄm;bH3R~ayMrqT\(+X#}S[ IhVR|WfNH5r9З&6+Y4*MM|6x %1fdzNSy R?~%gEqTA f>'@Se.yH2o$D5=N7ũ٘,5N.%NwVժ&G2feW I:DwUϫխ+H\$WH$M;Xi@9sLyX:oElb4Wҕ3QR)f`c .bE;-5ִuI@NfV{1DŜj:٦%i룩ͶmqcK[7nIuMhBMцFֹcdy{\VH`^B?}_&TWceG*^zYk=ª=&yM%'C_ر$0rӛ^`)ƗKl(HApL $vx Y40_f4n(dJbsh)/OQD"d7IuGbks,2p(.:UVg:r/`ys۪uuBYxQ-ԑqXґ Υ6/yZb^/z>c v6ZIxȨU"uͺN&vGgsox-PlXcʆs~7u⮲C#>UTyB^1H#bbn{xgǖE)h6aZDxVe6)o[>=1yCaJ*6gL=?֧θi0˱50O#%V!Ts.Q<6hI(??@-%0" 3CC3/C;ü,/钾p4cA "2 C;R4BSDs@,䛶@ <-Ӵ4&4?S0 2:1$5(,SA,48ܡzMmCޑ&3`jfsbC.ZwA,.)79<(AH9ǻA9B.6=N7l5R4I`tFtBGEH7\8\cEftgFFCDcLXF\FotG2GFrttTF_ 7M|g ŘlG'-|u<=ÃYC`Gj H6̼Fvܳ^D'C?A&kz C`ɵ͋6'{Da'iP$DMǔKǐ'EPNW64ΐϕFH б5j8NiJ$R/MmQLD4Ô2&}K; ҡQM.R/ݫWSJ+ k̽ M U29:;<=>?@AB%C5DEEU:-JqT0T0MJrL:ӌ5 "3$$pRR=US-U5UUSeXmUV}ZmW\QTTU\`%V`5]EcMVdVemVf-VhU(śIRJ<غ;H ,E-嬱eUWUue]UZMxuW_u]eVyV[~؀؁%؂x7ӆmT O:S']PJ"J`.b dPQ.b^eT~` >WeCv.vC4  ]e`N&fc5bmeFfd>eikEDv;Mz8^ _ t%{Uufvvwxyz{|}g._eof!g0v$懆Bp\dJ5 g2aruSC&6银UZGk-ŀl13K2iTF6,=́hߤJv/+ Rc94cB+w4j=lfMTNѧ @LI\VX=d;ɓNtQu3F$DŽe4| 5DS|νl/Gjkk6lXh`P.C2k8di>X RRC?$\첆 KF4n Djp\lҺlŦ.KMD@21ɛbm(mlChZĆc@O!#!gM+Col<3Z("o̮nڦ.5CtM4/B C%Ӯֶp:jY+p _kJd^NQ* o1SqL\r/' ,l0Wp\ 鼎2k1L?}2pԦD4IVE‰kZr\'7XDA+ܒ:#*t@ɦZ2f}Z}lJ?_Z.HW%%ZtriVQI#Jtc^2Rn3ibwFajvPu^Mvo4vQ㲤y‚P5kaluvWݜ/Ty1'Z"pxt"miY#G,x,1٫CÄ#rtrEE޹ HycT7&>8lBd&G5kvFE,غfr4/'#kDCȃ^twiSmNmnr 2I'o繋\>M&y7y;*qjJ{$<DsfJSa{wgl:!g3qg#m_ҫk_M|C%"2B܆N{#Dr'LvF^qdѷAL&3l|Qnq4k~'=?72 `Р@.$C6$`‚5NT80Ď/V,i$ʔ* N˘0_Ni& \vN'P.= 9(ҠG&mʳRRj j)eV[-kʊӲm-JkᾝKݙ2{UӟL$l0RX3nlԮ~oN*Z7s+s[G7k՜J^ju`ׅ+vlvX^)cJ7‡{:5t͇m:dV|8ǓGyˣ.:_8Sk^? z{)ނDgy\_7 jyǩǜS58bS<!߁6Y1n8#5!X-֤Z AE)'$~.nŢcV%)ሜU<7OG"@YbwB&Ւm:"wQ8%FFhvtJ%mb9`AhFkh5TdFvB\3}(X;cZfiO([MeXR)FR4lH~lHکE$lG J~$+\)b2$Ejq: FKm)I^ʛ*""dґT+Ph);)oZZi2@Rkq'ӌQr3=LdG=DI UnBj&GqUJ'vo+wu[,[ݬ`^uih{K9FGp7{dRJ} 5h5Aa';,6 Hʚ؍N1W ߧ>vY -~k6F.sr68@ ~wg:G-;vW5"h|\DwwP;x+S8UESgt@@t:ۂ9iO[@™MC(+ӳRB)\?m3@wn6[Ȱ`aTW &9dwᰉN4I V)NHͮhX =8ᩨ(FHW\ XC,^|#h鍱ϧ1w##ȜyKUQߓH!2rL,qaZ6 Q9v<%k(Iv1d}ĚR5M q F0T*%F>Z^t\ze?̓#.Rʩބ]$W9!J$Y5 [v,cS_6UHHqt@ fbҘӊ'׮LgrWDYL3pfDM_" piB3ec$ѳ-k)<}#iʼnJ } 5gCwgvJ ih@.3ԩx=Zҫŋr'<ִY҄CNu X=}Uo'PYh]՝d#+բ1lx,{׼BɎB ~5-iOԲ-dc(ٔ&4v򶷾m*iќ=.!yi"2}n;IVҸȽnyp+ur.x;\W lë^8ƨ}0z輬m5Ėdod_t'׫>eYwE03 ) ] zKޗ3bx~1[cLfJU Z1]*Hn،_; %JF*%GcN*iP|cdRui'Sod 3tҵ֌2Eoj&=Y)p̌53#8m1j:@Mg.Gόuq3ݘAC!F+n*8ZRRcC%cGrT\*Mw;&:Z5[:59m݂Q1 mcezM`6Q>8[N[$ѽmi-ozK}n~;!a-p&l#$>{Kn8kvLx[<Ws}|e3Į胿&wods󝓼f>J= ӶTYY"*k|TqݡUS$g0#֭)j/JDžŖC5WѓmN00OJOw;~k#6K0ӣөh ^`ˮtx+>N/BQ4_&j~>ty:Rۏx/vί]i{.>å֋Gyqyϱ%lf~g;mݾOme~*Fүퟆ>_t >29" I _u[ZS_yi酆G ˵ZY)` Z  bѱ_፛}e21݂e![9Wm%詟״1!nKc,`zۓMۚ)3ݟUUѡqJy  2Q""!N 1b ׽a.aŠ `z"#YЉbѕ& &D*+NbR/"+B0#w% Πmmdc4Jc-#^MS5ʢ7[0_JTcM =ƣ@#96#xYm`aC⤹\)_-@2`RnZvߞ "]T"݌pa\$FX^je%D]lNHTif[f_EA_N f>%Y$;6ck kv^^^&@m]^q3&M ]DT)_=\R|rp-(6>YL&M%RpMN}(((ceumJHdžg­|nrIbV#}#VHJXV5ZfcxJ=ɐ vPemh"2c:ۘ—o@~"_]i#dx*iJ֩lijNq'ԓi! ]2*eW)vם¤< gR)>f*: jdΗ`Œp~nQvd 'j|jxjN)I`>P5+,(+ kq**-kwW.ct%<)R)J.KZjxbd%rJ*+kO+Uqe*WFңWV;zB+AQ眦T"l+JiÖHF$,Q,$Xl*$P l&ɺI* כlVQc#eQJm,^Ȇom-ٖٞ-ڢѦG؆i>RmjnmΦYJ..&ni)˺2-mN~%V-kj +ڪfĊ%edVdR֬-rǖV 4.~o}#fol>.N/2kfobvr漣ooƯq¯֯'ү/ /pp}(v)/b#rA0k/,^w;kg^mꢰƮ粮XbK0ɞ\mvn̆kR011'/17_n- cpF,qY %p1Yz1mװ 'ZD1N. Qq[n _n qq cH e־.00O-0""+jv2)r)Ԝ2ຈ*, +r~,2#.2072kr0|kr*#3C /Kq32'3Sq5os+ss3s8Ӳ7_ooP857b/s:*4/S0Cq3D3=γ>3 ,?m?}416cu K>uXgCCI7S<&njtCqJ2ʴn$~%cMjr>3IsV Cq&;F$idFzq±!nRuT_R+.*@7F~~Ks%NG%pN[uR,FX-E^3ZF350U1NC5aC!F36'_kI7`\GU34]Ou*UkuVG; weuQ95&0޴d;5 eK-źn/MFJ,]0qrPfN4g= tg4Rvub7(ovs/3mywE/45{tj@v|s|Z;G;w7}(Hux:3 -+?3C8* yDiŨZ:H֧z2_:w :d:w:8ث:#Yz[0n0𲣈hD"wC {J;݂u1?ʹSK{+={;{y;%cL0cֶt#t;.U;t!{6i6û{Gg|[kZ/v ;;WY76)/ _vL{[oRv̆: ?;>+η3uz>7 '>k>ro>3T{:JzG:߷>{˷GO?W>go?w?3@@;PK2/bBBPKY2%@OEBPS/img/iissamp.gifD-GIF89a0a᧧MMM|||hhh鲲,0aH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ L0NL,`ㆌ/˘RgȎnv8z̨S,-ytkы'O, mոs];vo&&Yc㖉#||ZqᜟCz۴N߿^=i[_~xhԝ~;kݽ<r\gч~(au|av߄$ᇳg!y ,wa4uw!ۋ0avE'56cH`B 8F܉wmEpe\rIWkJWf&Ljt$gxIӝz'Jj)蠄Z]&袌6裐F*餔Vj饘f馜v駠*ꨤjj 0*무j뭸뮼+k&+:F+Vkfv+k覛a"*+@: Z2k/ABt/ep_CG)gLWML1©sqL י]是<$笒k1:|:7MM<_@Q"b#:2z\;bs^-p5>h7LÇhv܀4[tW6oGe4x)_2A~\Y^u.y΢#պ+zXn{ǤKl5/o'{C*Wog//o觯/o HL.4p^? [7UA ^Y٠/}W 'UBUY SUCQTd$%MqRqf O5EGUшCEmqcŦQbDT-%/pYDH2.q/1j(H=ʑ~b!Dj\I+6"<Se(HFLe(hINA%*eJHirG"%SYVR) KVFz%2kHaJ<.s2GP64$-M`"Ә2x^R4oR*p~t3Mrzs$YK&1CչΚsD(:)Pw{\#ƉMҢt$hAƩyǔ>Ge>!r4FcIGgNGSUrE+̖43./ Ps2%("Ng<OJSWͤL*/*ݪ JV5yh2w˶#WjC5%x\W׿$3, kX V]ckeY]fWʎD] mh$nyMjWֺlgKͭnw pK{r:,Dr7N~Օ@6z xK7X{׺Յ|K׉ac//.XQozK3W~0f#] KXVV ࠄ+'>IX - cر4&Cc#8=ȍ*83N&K!)81d#wYXvf9#g^I/xM.A)@Àn4b]h@@14. !͘E/Ӊ9tA-T+`0[d\NZ&tӶ ;@uAMZ]`kʤZ&dMZg1wc;bKr5ipm4W! Z ~  pp 7pvb[ 8 w g8M#q[|@rD7i/<c.e;{# ^3LCzCK#:;)wpc1!v9 9v|-' rZח.{c;q8Mzi8,ɜ iyi 0ApoXK`<|Q}j%\SѺ'>[9#/'hq}x8 =^핟#9t?q8{p|o[h%g~&Apf~'7'kW$ Q h_WF Cy8n?c }hܗ}&8}ׂԷ,8_lb PW}`6v&GnF2Pf"$yH@hE-TxAo"yQ~!|q=XSvd{_QrPqvrXtz|xyg}$m!hGo8qz/X[ c;gK{m+SKf 9lf FZo &{jf*9Fr尿gbu#p[i}Cu&6xcmvi 8ô)20)i8$D85(7˾s 9C2%Ty; !!M 5ex'/72 'h7)ѾO$-ƒPr>|@:ۓN73,/"T %E .$7K|M\B 2LP2wCϣ9|+ň3.\@R8L\5>'X<56,x3+q9\!lLc#J|+Q{ǿSK]|s#yS&S1]:lgƗ,2W1 }L|{\5NȌ^6d< 9$ɸ\\aC !l]k{ͳ|?"<Ljf*OBV|Ь5<ȫDR޼ȎlV3|C\ =]< ){v  0=,/!ˤ,Ϝ4Q2!ˏ*2 l/6!- k[P=;E\ م{qjL=P˻g{I<յlКOӲ =[P|y,,`&ٚL~+1a<ׄڄ}π 'kɯ` 2]"cmcyۀr&Э+ԍaU݃;`ڄݮR @}ץMgەܟc-%ݤ=TC-NKmybz] g{9Kd6ZM3h,&%0l)ooVkjnp2h͝n<ڜh4~ 쉣Ip&Y7YY .-LЧR>}9^rmF>M̐K«|XLo@ ͬٸE6 V~5.#12`DM쫨]FF*߲lޒ~c5slb]lEž^.窩w.ZBˮ|sͣ.}7\LSˢդ^$km7N~S>^CgGu R'2n81ɋ<Դ\7,¬1&D˲n^y#k^m< 7ҍӊP#-+F쏍L. .3- K@wBV5-^]|)65}/Lꪎm(Yo|y;^&Hr9Nk(^Gڱla-alQdb1AO p>ٽ ~/%{N nOtޏ?4D~_B=$oe@@ PB >A-^Ĉ16:cH%MDRJ-]SL5męSΑSPEETRM[#U^ŚUV]RVXEVmڳkնuW.Ystj^@;doޒ 4|h⢌tcQ) x`͗Fshȣ&u --lW+:7앻Y4ɩL;6T޾);nї7~yf囹k\x $_>N=~Bӷ__ao2O##zp@C0 p@:ď/м4$1D G\)JoB5(;1pLd.G}q %?(!4Cf!%lF) Sr,DE>,*,p5ẅ́M^ܓL3L$P/SBE\MA;F,46LL?']̧Bl4xnTα)N 4HUU"@STRKSɬTXsM;͒I"B\)ERCOSW"#vGE6]O;IXwqdpZcӳTl[ 6XeQFtPHLCqF=DÌIrCWcM %]6=kaS^wz㋁n[-< @uw\Qv3cLwV餹F͚UJ^yV?^C).ZF(UAsXUUbgJD4ffZG+윿%ef+[cӾ]d/L=`.Wq%]3|ؗ [GIIzKrO`efM;]1ۯYrwiUy>ސC1-AGG3߷cJ?.rX ئg SYǸFħf= B5a;>$A&; IҐe:l!c(pc 1/>H, :qPCNJbtش/q!a&&'#oc ,9юoG>$}9HBα#Ȋ;Sd$%9IJV%l%5INvғ96R~eDVJVe+a9˭Ȳi -YE&zх,c$XO4^["4qk$3IiFbt2aSMp3'9@3|8:<(ǜ&&}yg:Ed$ljK :&5L3 .bˆ+`=PWdD#JpQ h)f6J,MmX\o43MkKDb:RpcGmJ5 TBeQw+>Ұ4$ qJq$*uIиFQLd/No(\]Nnk~b%Y&$-D+v9ֱƅYtV\yELcZMYI^V"[d,"aS%c2TN{+@S{;jezRQ]6'C)<hLy3e#\5qnt3,\e[+DxYMkx(KaA;gd2q6L_cVzmdžE[Bv3oۤ^O`KN˔m"I׬OqyqDvyE>r'Gymdr.t[Nse1y[\籼K}G!Gv9xg:FgaͩCI&>p;v}O[;u>|=Ŏ{},דBA_wɢu$Q(.j%E5'WHT< U7iU1?~:d IJ/v>Ӣ8KTܹSƕ{uZEaު j_ k{m>傟@ hAn.};rao{O8V]?+k.%y˾5k @ 5) SIY0.kɗ>;2Ɗ?˲ۣ׊ ,,y/#1 d @ t>*j?"%?0d٬#A?1B01aD 1B.$k= (1=/; ۳i*T@:b=,yd#zD {J&=C3BBڼCy-,BAZ-I*̉"3aӽ$/?AiX E2;$GcYs 1  @\>Ln+ǫw/ydFźB! {3)i]ϻR3p*Q!LW }4䩚,k(g.NܾI{54B;;#=*5y G@J ]HL(H#REۿ7\E`zF$@I. -)~Fz,R'M2MChDS<({$Fb2o;->1`l81/mHE$ ݗ'UHv,ThM3Q8CZ/m03:uϤQs=\T<=H4)N[ՍռUMDaD_^dD1mTW|WGL<;ԯCGA{dSK¢>ƻ~um?MFIłu,TH0I3:WQ|WU~6E0d})EDRy:ֱAHm ZW/YOɁaU**H-fD2+;@ W#lZyƉ eMV X53c]t1dPɘOɗM*\[5P_5Mʄ*Jt(ٴ5OlNoN&J\\mOjcK;˝AX ]֭]$|]5MO^Hmuάd^pe8Δ^Ŵ른D%_lEUb" MuߡMZ- %.KE^]7]rK%`gպL݅KJ-=`.]]` ]]>; neJaZ%a `^;U}k[*ATƃۑbPϛ5FPJ mXE[lŵQ˕-Gk*Hǂ*WQ-M՛stTDU锖M_H=ۺCԤVvC"㥍=E{?)Ś5[R5-}232UTz\@$Zݠ=M^B1UuN.W-eq6Tcb0P=Yų[`U5S M#아DuVl5Tbl5vKg} n`5Vlm`]ݢ\N]|ܾ&nn{Olatmm e^^=bomo{o;oƸ]!_U[b}wp .a&$J6X npp?7n'*^' qqN:J< 헎g_(R;Pΐm.=;&@!] Qe6 b`qPһ^l4^?unUZcd ҳc,hOWzQuEe.ϲvu--k7k6BG[jFTGweHw6Nj ljvV8Dtf-7ncRSYogS4Uh@uXw\/- e]Se.:t~Y1db0&)I:^Vng? gi٤zѢv[{'oGV>rԓVll\dw,?`+ 7Q Z>=6ƞ)1 tgi{j/׋_uNF9J+TVL'DH6mxXT&[(%t:_/sWk=O`۬Mgv<)kO 5wqxê@?ȡ8=֌>ȵǷRu㮝=۶͹y~|PG0;"c;е 2f2gVi@d@CJ 6J~kVƓ%ͫˉS#׬`H 5֡)Keձ^ajջ/@ҵwpBRZ4Pǐ!K U|'_){IBf 2f;aYЬ!ԡۓs{t#-[89z4֙|3/|}..du7J_Դ2Ͽ ~X߁GId 2`%htA!n 3q($h(S,0(4h8<:DiH&L6u8)TViXfI#h`)ZrIhl>Zm)t֙v|g*II&%LFNji>i >Diovyhš)bZ+zi%Ͱu+TЊDn쨮jRf޲jJ:%Zm@pK!Nkk*:4+fk(MX.\k\cKpb/R n#{T[(K ^/\i (T%kp  sͶͻP_}03ljl <447k26K W_,4\@71H'4#Qn9<3Y۝cׂ5mqm-xCNw]s偷 ω{.$ӝ {:̳TKյ/n ;¸󿖣mpÊm6,BL:GFI{ϸDD$r B@G61 | " l 2 .s"$y". Wȫ~I[ a qvzʑ^}ȐWB"PHDDI"D'P"%H*Ĉ2MG(E-]6ұU1"`цdG ͱdF# yC8r_T;2|(61"%M(-YJG2- Q4.'H a\/YWRK/)4HmMsGR63u :f‰qʧd:ҩN~gz3v|%61Z;TU5QLhj:ʢф?% j S:& uL*BY3iI(MN4e,YFX.g#X.;;yJhBLIԞ/AeP)ˣ^s4lJTJ.Q]'Li R*G)bSvpjXLP^5[YTxFzӱK<"1eֶ2ԍpŗ\ )RٚXi6`)+UF><^IB*ѱU%jYɒ6Z Ah[R4`o)[*atPnkOX\4 p [)%7Pv])Oh^7ƌ }U)ez[mf@+#VFt;E}'Yȍ7 N,2cS@4vRW+< GZςDm]bu)a2kRAW.ߎ_㚒AfH}Ș"؎VfI̤.!̗#V];' n;fVbSzg9]>Kv-'эh*IS-\^ŽVP8~zI,o;<)suS+IquhQ['I]j:M'yU쁺>D}B Hb}m-;]-\V<67Pmo57wVx7Zc-jvғ8t}o{oSa}w=dk{ؖv8p!nXU9%Nw#A]Ǔ4,]nPOSܼ:kECu1&}KkvGM(qs[<sNbњun=Wuەe}G OSg_]s7r}FZڛXxL`WE^wXy]^;uLLao5/]JO\NxvF{ Fo}mo}^윲 K?GҒɧ9YS߹ y`=wwnwV)6Ruwrto X|G{wրǁb灘BW Gч7T+'}7G}׃33gNGDgㆃ'('h﵂7|~N(nǂgJWyTnXL(U87Xx lHnhp~k~DžFZpEX)xq|HxBsv8zH !Xw Ȉs8}>xwj^9PGKȉX-85%؈'2PxvHwx(T2r8Hh8嘇rxmM(q؅`؇8(r(xhxZԐy<YJBIjiM9֑"9w*$*6Y+*ɍp0Y(C6Շ࣓<ByEcHٔ:wRy}&iWSyÔXٕSb(9h*Z6\nA`IWo9JӖt@U^z# M|~Yyfhט}-iVy*yҙ 2 X6i!y/2,y?9Y- ߖ)V ֗9 -yعh9(yל蹞;A97VydEiw:)z y:r"zѧjT :$$zg(Rb,&0:&4zrd8Ӂm.4➆6h'הԨ"NebQ <*.$nu^(9nU NyB~ 1c9fC+ u]֡59{3b~{K-7}<^8x-o>}q^M7uct 2Temn4;-s]i75]-ꕽm>+a'=N!>N많+9!nM0_Ǎ}=,NS펞n~ՉN_ߢ<ݝO ߝ_-_ƾWW~(*T< /0_/):<+##(Q1^~1H6O8T_VU;PKUQfaPKY2%@OEBPS/img/dcprops.gifGIF89a,H*\ȰÇ#JHŋȱǏ CIɓ(S\ɲ˗. dp͛8ssL= Jќ?iӧPJJիXjʵׯ` L*0ٳhӪ]˶-ڱ3˺Kݻx.ХL=cSN Yy#UjPfdYΊA'x*gҥZk ZWaԅ?]2oR[W~4d 3_zc`׫o&\7ԩs9ubU˙?mVw!j'aawt%1 {ۀ'E8]ބ0nE_}pf ؠz݋XȣHBbLrV\KdE^٢i%r襀IzVz!$etixؽ#z۩hgC頉o栉`衇>7fZH裐Xߤ(WFg.駠ZբGjꩨjQfjj ͊뮼jf+k&6F+Kfv+kL0+vЍ PoQIZ'p&T.,1GMl$5&lѤqQ$|&Q}! "nj28A(,@2qxe5KNQ4r5Ą l6 ?~mx_n;/߼xr.>awV=Oֲ+o*lop\`;}9=:S@:1Z T<'= z |a_@fnC gHÅ誆8̡ oXB갆<fhOxVOaثYEVWl"MhE_eVS}E!&dR DxFq*BF"Qy%qWr$=VH!O}r'-r̉$YF^X"G9!$'9RBIc*WyIL*LeF&9IJ:-$PQ)IyXnn\s%`)KU3tf4%_RЄ.l{T橘yJjrJ$%0Y<ߌ'ٷ}n>6}U.nF`EM%OFv ܁'|_/v[u؀̫'_h ,՛~ H .)cf8et<N>u\c$7ĔS[f7x\k;t/kl]Ýc;]Y]|^^gogٽDod^No![AzfeEoV:Ӫ"BE[ iy&>oeUm^Z:ը-,3kzB-U^˯uS٪.6wFS˾ $#Z;ڞ4`=X0oC[ڗwH#8;ӣd{ONwlhЭYsD&3(S+nޥ1Y=񠻿 #?{B<T nNz HnjXTq)E|;P/H/pn<W}FW;Io;̓ΟvOAld17p+m BBgw_w1M;'gzڍ}wїWNg~oWq=iȡSoO{[ٿ9o-vTJXi ez[%2lηO~j|xƙ߻bF/{ mNoi>෼le74f7zoc&