Catalog Method for LCConnection
This method returns information about the data sources, metadata objects, stored procedures and fields available through a connection. Some connectors do not support all object types.
The information is returned using the result set of the connection. Any active result set for this connection will be replaced. The format of the result set produced is returned in the supplied fieldlist, and the result set contents can be retrieved with LCConnection.Fetch. For instance, if you catalog Metadata information, each Fetch will return information about one metadata object.
In general, you must connect to the data source (Connect method) before using Catalog. However, some connectors enable you to catalog servers and databases without an active connection.
Use the properties of the LCConnection to provide the context for the information you're looking for. For instance, to catalog databases on a server, you must first set the Server property of the connection, but you don't need to set the Database or Metadata property. The table lists the required context for each type of object you can catalog.
Defined In
LCConnection
Syntax
count =lcConnection.Catalog(objectType, destFieldlist)
Parameters
Parameter |
Description |
---|---|
objectType |
Long. Type of metadata information to be cataloged. Use an LCOBJECT_XXX constant to define the metadata type. The following list gives the required context and the resulting metadata format for each catalog type. The general fields, Name, Owner, and Comment, are produced for all objects, but only the first output field(name) is guaranteed to have data. All output fields are data type Text, unless otherwise specified. Field cataloging adds a fourth element, data type. |
LCOBJECT_SERVER |
|
Context: None |
|
Output Fields: Server Name, Server Owner, Server Comment |
|
LCOBJECT_DATABASE |
|
Context: SERVER property (if supported by this connector) |
|
Output Fields: Database Name, Database Owner, Database Comment |
|
LCOBJECT_METADATA |
|
Context: Current® connection, ALTERNATE METADATA property |
|
Output Fields: Metadata Name, Metadata Owner, Metadata Comment |
|
LCOBJECT_INDEX |
|
Context: Current® connection |
|
Output Fields: Index Name, Index Owner, Index Comment |
|
LCOBJECT_PROCEDURE |
|
Context: Current® connection |
|
Output Fields: Procedure Name, Procedure Schema, Remarks |
|
LCOBJECT_FIELD |
|
Context: Current® connection, METADATA property, ALTERNATE METADATA property |
|
Output Fields: Field Name, Field Owner, Field Comment, Field Datatype Constant. |
The Field Datatype Constant gives the data type of the field using one of the following values: Note: More
detailed information about the field, such as the maximum length of
a stream field, can be obtained by using Select on the metadata object. |
|||
---|---|---|---|
Value |
Constant |
Type |
|
0.00 |
LCTYPE_INVALID |
Overview |
|
1.00 |
LCTYPE_INT |
Integer |
|
2.00 |
LCTYPE_FLOAT |
Float |
|
3.00 |
LCTYPE_CURRENCY |
Currency |
|
4.00 |
LCTYPE_NUMERIC |
Numeric |
|
5.00 |
LCTYPE_DATETIME |
Datetime |
|
6.00 |
LCTYPE_TEXT |
Text |
|
7.00 |
LCTYPE_BINARY |
Binary |
|
8.00 |
LCTYPE_FIELDLIST |
Fieldlist |
|
9.00 |
LCTYPE_CONNECTION |
Connection |
destFieldlist |
LCFieldlist. Output. Fieldlist to contain the metadata of the catalog result set. The fields in the result set will be appended to this fieldlist. If the result set metadata is not required, use Nothing. |
Return Value
Value |
Description |
---|---|
count |
Long. Number of catalog records available in the result set produced. This value is LCCOUNT_UNKNOWN if the number of records cannot be determined by the connector. |
Example
Option Public
Uselsx "*lsxlc"
Sub Initialize
Dim connect As New LCConnection ("db2")
Dim conFldLst As New LCFieldList
' this section assigns the appropriate properties to connect to DB2
connect.Database = "Gold"
connect.Userid = "JDoe"
connect.Password = "xyzzy"
connect.Metadata = "customer"
' connect to DB2
connect.Connect
' now perform the catalog action -- in this case,
' for fields in the 'customer' table.
If (connect.Catalog (LCOBJECT_FIELD, conFldLst) = 0) Then
Print "No tables were found (table does not exist)."
Else
' fetch the results
Dim nameField As LCField, typeField as LCField
Set nameField = conFldLst.GetField(1)
Set typeField = conFldLst.GetField(2)
Print "The list of columns in the '" & _
connect.Metadata & "' table include:"
While (connect.Fetch (conFldLst) > 0)
Print " " & field.text(0)
Wend
End If
End Sub
Example Output
The list of columns in the 'CUSTOMER' table include:
ACCOUNTMANAGER
CONTACTNAME
COMPANYNAME
COMPANYADDRESS
COMPANYCITY
COMPANYSTATE
COMPANYPHONE
Catalog Method for LCConnection using Connector for DB2®
This method produces a result set containing requested information. The information is determined by the ObjectType parameter. Not all object types are supported.
Parameter |
Description |
---|---|
LCOBJECT_SERVER |
Is not supported for DB2®. |
LCOBJECT_DATABASE |
Returns database name, database owner, and a comment. |
LCOBJECT_METADATA |
Returns metadata name, metadata owner, and a comment. |
LCOBJECT_INDEX |
Is not supported for DB2®. |
LCOBJECT_FIELD |
Returns the field name, field owner, a comment, field type * and native data type name. * This ObjectType returns the input and output parameters of a procedure. A call to LCXCatalog with this ObjectType is in error if a procedure name does not exist. |
LCOBJECT_PROCEDURE |
Returns the procedure name, and procedure owner (used with stored procedures). |
LCOBJECT_PARAMETER |
Returns the input and output parameters of a procedure. A call to LCXCatalog with this ObjectType is in error if a procedure name does not exist. |