Uvodbc
Uvodbc
ODBC Guide
Version 5.140.1
March 2013
UNV-51401-ODBC-1
Notices
Edition
Publication date: March 2013
Book number: UNV-51401-ODBC-1
Product version: 5.140.1
Copyright
© Rocket Software, Inc., or its affiliates. 1988-2013. All Rights Reserved.
Trademarks
Rocket is a registered trademark of Rocket Software, Inc. For a list of Rocket registered trademarks
go to: www.rocketsoftware.com/about/legal. All other products or services mentioned in this
document may be covered by the trademarks, service marks, or product names of their respective
owners.
License agreement
This software and the associated documentation are proprietary and confidential to Rocket
Software, Inc., are furnished under license, and may be used and copied only in accordance with
the terms of such license.
Note: This product may contain encryption technology. Many countries prohibit or restrict the
use, import, or export of encryption technologies, and current use, import, and export
regulations should be followed when exporting this product.
Contact information
Website: www.rocketsoftware.com
Rocket Software, Inc. Headquarters
77 4th Avenue, Suite 100
Waltham, MA 02451-1468
USA
Tel: +1.617.614.4321
Fax: +1.617.630.7100
2
Contacting Technical Support
If you have current support and maintenance agreements with Rocket Software, you can access
the Rocket Customer Portal to report and track a problem, to submit an enhancement request or
question, or to find answers in the U2 Knowledgebase. The Rocket Customer Portal is the primary
method of obtaining support.
www.rocketsoftware.com/support
If you do not already have a Rocket Customer Portal account, you can request one by clicking
Need an account? on the Rocket Customer Portal login page.
Alternatively, you can contact Rocket Global Technical Support by email or by telephone:
Email: [email protected]
Telephone:
United Kingdom/France +44 (0) 800 773 771 or +44 (0) 20 8867 3691
3
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Table of
Contents
Table of Contents
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter 5 Troubleshooting
Isolating a Problem . . . . . . . . . . . . . . . . . 5-4
Before Reporting a Problem. . . . . . . . . . . . . . . 5-5
Getting Information About Your System . . . . . . . . . . 5-6
Manual Communications Verification . . . . . . . . . . . 5-10
Verifying a TCP/IP Connection . . . . . . . . . . . . 5-10
Verifying Other Types of Network Connection . . . . . . 5-11
Connection Problems . . . . . . . . . . . . . . . 5-11
Windows Server-Related Problems . . . . . . . . . . . . 5-12
UNIX Server-Related Problems . . . . . . . . . . . . . 5-13
Windows and UNIX Server-Related Problems . . . . . . . . 5-14
Client-Related Problems . . . . . . . . . . . . . . . . 5-15
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter
1-2
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch1.fm
3/28/13
UniVerse
UniVerse
ODBC
Driver
Driver
UniVerse
DBMS
When an application connects to a data source, it reads the uci.config file and
related entries in the ODBC section of the registry on the client system to
determine the host system, user name, and password to use when accessing
a particular UniVerse database server.
Establish communications
Launch a UniVerse database server process
Route query and update requests
UCI Config Editor Tool and Microsoft ODBC Data Source Administration
Tool
The UCI Config Editor tool is contained in the UniVerse ODBC driver. This
tool configures your Windows client system for access to data sources on
UniVerse database servers. It manages UniVerse ODBC data sources. The
UCI Config Editor tool provides an easy way to enter, and edit entries in the
configuration file.
Every UniVerse ODBC data source definition must reference an entry in the
uci.config file.
1-4
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch1.fm
3/28/13
Create or edit a data source. The UCI Config Editor tool can change
an entry in the configuration file even if the data source is relocated
or the network is altered. This shields application programs from
changes in the client/server environment.
To test UniVerse ODBC data sources, run the Microsoft ODBC Data
Source Administrator tool.
For more information about the UCI Config Editor tool, see Administrative
Supplement for Client APIs.
Client/Server Connections
Client/server interactions require either device licenses or connection and
user licenses.
ODBC API
ODBC SQL grammar, including ODBC SQL data types
The following table summarizes ODBC compliance levels for the UniVerse
ODBC driver. For more information about ODBC conformance levels, see
Microsoft ODBC 3.0 Programmer’s Reference and SDK Guide.
The UniVerse ODBC driver also provides connection and statement options
to control additional option values specific to UniVerse ODBC.
SQLExtendedFetch
SQLPrimaryKeys
SQLMoreResults
SQLNativeSql
SQLNumParams
1-6
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch1.fm
3/28/13
SQLBrowseConnect
SQLColumnPrivileges
SQLDescribeParam
SQLForeignKeys
SQLParamOptions
SQLProcedureColumns
SQLProcedures
SQLSetPos
SQLSetScrollOptions
SQLTablePrivileges
Outer joins
UNION clause
SELECT…FOR UPDATE statement
Scalar functions such as SUBSTRING and CONCAT
DATE and TIME data types
Procedure calls
CHAR
DATE
DECIMAL
DOUBLE PRECISION
FLOAT
INTEGER
NUMERIC
REAL
SMALLINT
TIME
VARCHAR
1-8
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch1.fm
3/28/13
Microsoft Office 2000, 2007, and 2010 including Access, Excel, and
Word
Microsoft Visual Basic Enterprise Edition Versions 6.0
Microsoft Query 2000, 2007, and 2010
Cognos Impromptu Version 3.0
The ODBC .NET Data Provider for ODBC using C# and VB.NET
CLR languages
Microsoft Access has the following functional limitations imposed by its use
of the Microsoft Jet database engine:
Only the first 255 columns of an ODBC table are accessible. All other
columns are hidden from the user.
Access does not allow importing or linking ODBC tables with table
or column names longer than 64 characters.
Microsoft Access converts columns defined with a UniVerse SQL data type of
DECIMAL or NUMERIC and a precision greater than 15 digits to text fields.
1-10
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch1.fm
3/28/13
When inserting new rows into a table whose underlying UniVerse represen-
tation is an association or an unassociated multivalued field, be sure to enter
a value for the @ASSOC_ROW pseudocolumn (with name mapping on, this
column is called Z_ASSOC_ROW). Failure to specify a value for
@ASSOC_ROW can cause Microsoft Access to abort with an access violation
error.
When creating a query in Microsoft Access, you can specify an SQL statement
as the basis of the query. Due to a limitation in Access, any SQL statement
containing the UNION keyword fails to execute. Before submitting the query
to ODBC for execution, Microsoft Access rewrites the SQL and puts paren-
theses around each SELECT statement, which is invalid ODBC SQL syntax.
For example, if you submitted the following query to ODBC:
Microsoft Query provides visibility only to the first 255 columns of an ODBC
table. All other columns are hidden from the user.
Microsoft Query does not allow adding tables to a query that have column
names longer than 64 characters. Attempts to do so fail with a “Can’t access
table” message. However, such tables are accessible by building a query
using an SQL statement which SELECTs the table. To execute an SQL
statement, choose “Execute SQL...” from the File menu.
We suggest you use Query Designer with Microsoft Query 2000 (available in
Microsoft Office 2000) rather than Query Wizard. If you use Query Wizard to
create queries having selection criteria, Microsoft Query generates an SQL
statement having invalid syntax, and the query fails to execute. Microsoft has
confirmed that this is a limitation with Query, but is not planning to change
this limitation in any future release.
Visual Basic
Data Access Objects have the following functional limitations imposed by
their use of the Microsoft Jet database engine:
Only the first 255 columns of an ODBC table are accessible. All other columns
are hidden from the user.
ODBC Tables with table names longer than 64 characters are inaccessible.
ODBC Tables with column names longer than 64 characters are accessible for
queries, but attempts to insert, update, or delete rows from the table will fail.
1-12
2Administering UniData on Windows NT or Windows 2000
0
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter
2-4
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch2.fm
3/28/13
Menu Options
The UniVerse Server Administration menu includes the options shown in the
following table.
Option Description
2-6
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch2.fm
3/28/13
Option Description
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter
This chapter describes how to install and configure UniVerse ODBC driver
software. Install the driver software on a Windows platform.
3-3
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
Converting DSNs
If the DSN conversion process fails, or if you need to rerun the process,
execute the following command:
ConvertDsn.exe c:\U2\uvodbc\config.hsc
c:\U2\uv\uvdk\config\uci.config
<localud>
DBMSTYPE = UNIDATA
network = TCP/IP
service = udserver
host = localhost
To access your data from UniVerse ODBC, you may need to increase the
values of two configuration parameters for the UNIVERSE DBMS type.
These parameters are defined in the uci.config file. You may also need to
increase the UCI connection timeout.
3-5
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
Any of your UniVerse files, tables, or views have more than 400 fields
defined in the dictionary (field definitions include D-, A-, I-, and
S-descriptors)
Any queries executed from ODBC client applications through
UniVerse ODBC contain more than 400 columns in the result set
Example
The following UCI configuration file definition sets MAXFETCHCOLS to
1000 and MAXFETCHBUFF to 32000 for all UNIVERSE data sources:
<localuv>
DBMSTYPE = UNIVERSE
network = TCP/IP
service = uvserver
host = localhost
[UNIVERSE]
MAXFETCHCOLS = 1000
MAXFETCHBUFF = 32000
If any query you try to execute has more than MAXFETCHCOLS result
columns or has a result row length greater than MAXFETCHBUFF bytes, the
query fails with a UCI error code of 930122:
[U2][SQL Client][UNIVERSE]UniVerse/SQL: Row length
exceeds buffer size
3-7
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
In the ODBC Data Source Name box, enter the data source
name. ODBC applications use this name to connect to the data
source.
In the Description box, you can enter a description of the data
source if desired.
In the Server field, select the server to which you want to
connect. Choose the server you configured in the uci.config file.
In the Database box, enter the full path to the database to which
you want to connect: for example, c:\U2\uv\HS.SALES.
In the User box, enter the user name.
In the Password box, enter the password for the User.
Click Test Connection to ensure UniVerse ODBC accepts the
connection to the server and database you defined.
4. Click Options to define optional configuration information.
You can select the following Strict Statement Compliance Options:
Enforce ODBC Dates/Times – If you select the Enforce ODBC
Dates/Times check box, UniVerse ODBC checks all date and
time literals for strict adherence to ODBC specifications. You
must specify years with four digits, and months, days, hours,
minutes, and seconds with two digits.
3-9
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
3-11
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
Performance Options
NLS Options
Miscellaneous Options
3-13
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
To use Dr. DeeBee Spy, double-click the Dr. DeeBee Spy icon, pick the data
source to monitor, then run an ODBC-enabled application to monitor. For
more information on using Dr. DeeBee Spy, see Monitoring Your
Configuration.
Install Dr. DeeBee Spy in the Custom installation section of the UniVerse
ODBC driver installation process.
Two common issues that Dr. DeeBee Spy can address are as follows:
Dr. DeeBee Spy is compatible with both ODBC 1.0, 2.0, and 3.0.
3-15
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch3.fm
3/28/13
The left-justified text is the ODBC function called by the application. The total
number of indented lines in the captured information matches the total
number of arguments for that function.
For example:
SQLAllocEnv
0x01000000
SQL_SUCCESS
SQLAllocConnect
0x01000000
0x01010000
SQL_SUCCESS
Dr. DeeBee Spy resides between the Driver Manager and the driver.
Therefore, it captures calls to ODBC functions made by the application and
calls made solely by the Driver Manager. After the Driver Manager loads the
driver, for example, it calls SQLGetInfo to determine which version of
ODBC the driver supports.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter
This chapter describes how to make data in UniVerse tables and files
accessible to ODBC client programs. You need to do three things:
Overview
This section gives a general overview of what you need to do to make
UniVerse data accessible to ODBC applications. Subsequent sections describe
each major step in detail.
You can also make saved select lists that are associated with a table, view, or
file visible to ODBC applications.
4-3
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
For detailed information about making tables, views, files, and select lists
accessible, see Accessing UniVerse Tables, Views, and Files.
Details about these can be found in Modifying UniVerse Data and Data
Definitions for ODBC.
Multivalued Data
ODBC applications expect data to be organized relationally in first normal
form (1NF). Although some UniVerse tables, views, and files may be in first
normal form, with only one value in each column of each row, many
UniVerse tables, views, and files have columns that store multiple values in
the columns of a row.
4-5
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
See Chapter 3, “Installing and Configuring the UniVerse ODBC Driver,” for
how to configure UniVerse ODBC data sources.
For ODBC tables derived from UniVerse tables and views, UniVerse ODBC
reports the UniVerse schema name as the ODBC qualifier.
For ODBC tables derived from UniVerse files, UniVerse ODBC reports the
empty string as the qualifier. To refer explicitly to a UniVerse file in an SQL
statement, qualify the ODBC table name with the empty string qualifier. For
example:
SELECT * FROM "".MYFILE;
Both the current and the local qualifiers are initially set to:
You can change the current qualifier to the name of another schema (or to an
empty string) using the SQL_CURRENT_QUALIFIER option of the
SQLSetConnectOption function. The local qualifier is the name of the
UniVerse account to which the client is connected and remains constant
during the ODBC connection.
4-7
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
UniVerse accounts that are not schemas can contain only UniVerse files that
are not tables or views.
Tables and views are always accessible to ODBC applications, subject to SQL
privileges and operating system permissions. To make files that are not tables
accessible to ODBC applications, you must run the ODBC file access utility.
To do this, choose the Activate Access to Files in an Account option from the
UniVerse ODBC System Administration menu.
When you run the ODBC file access utility, it creates the HS_FILE_ACCESS
file, which lists all UniVerse files referenced by F- and Q-pointers in the VOC
file. This makes all UniVerse files in the account, except system files such as
&DEVICE&, DICT.DICT, APP.PROGS, and so forth, accessible to ODBC
applications. You can edit the HS_FILE_ACCESS file to define exactly which
files should be ODBC-accessible (see File Privileges and Permissions).
4-9
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
To update the UniVerse ODBC file information cache for an account, choose
the Update File Information Cache in an Account option from the UniVerse
Server Administration menu. You can also use the HS.UPDATE.FILEINFO
command to update UniVerse ODBC file access in an account.
UniVerse ODBC uses the HS_FILE_ACCESS file, created by the ODBC file
access utility, to control access to UniVerse files. This file controls UniVerse
ODBC access to UniVerse files defined by F- or Q-pointers in the VOC file.
The IDs of records in the HS_FILE_ACCESS file are the names of the files
whose access you want to control. Each record has one field, ACCESS, which
contains one of the following values:
READ_WRITE
READ
NONE
These values define the type of access to the file referenced by the record ID.
Note: You can circumvent the access control provided by the HS_FILE_ACCESS file
by using the native SQL syntax extension to the ODBC SQL grammar or by
reparsing. These mechanisms allow SQL statements and UniVerse commands to be
passed directly to UniVerse, bypassing UniVerse ODBC. For more information see
Executing UniVerse SQL.
Warning: The file information cache is for UniVerse ODBC internal use only and
should not be modified. Any changes to the cache cause unpredictable behavior and
can make all UniVerse files in the account inaccessible to UniVerse ODBC.
To control how the server uses the file information cache, use the Fast
Connect (Old OTL) or the Refresh OTL on Connect option on the UniVerse
ODBC Data Source Setup menu of the UniVerse ODBC Administrator.
4-11
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Choose Fast Connect (Old OTL) (the default setting) if you want the
server always to use the file information cache to construct the list of
available ODBC tables. If the server cannot access the cache, it
constructs the ODBC table information from scratch at connection
time.
Choose Refresh OTL on Connect if you want the server to construct
the ODBC table list from scratch at connection time, ignoring the
cache. The advantage of this mode is that the list of accessible ODBC
tables is more current. The disadvantage is that initial connection
time can be significantly increased for an account containing many
files. Responses to subsequent requests for dictionary information
are faster.
The following tables illustrate how accounts and files from previous
UniVerse ODBC releases are updated. The next table lists the VOC entries
affected by the upgrade procedure.
The following table lists the dictionary entries affected by the upgrade
procedure.
4-13
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
filename_listname
The select list must be saved in the &SAVEDLISTS& file of the local
account.
The name of the select list must be included in an X-descriptor called
HS.ODBC.LISTS in the dictionary of a table, view, or file.
A table or view associated with the select list must reside in the
local schema.
A file associated with the select list can be local or remote—that
is, it can be referenced by an F- or a Q-pointer in the VOC file.
Choose your lists carefully. If one table, view, or file has n associations,
unassociated multivalued fields, or both, and if it also has m select lists,
ODBC applications see (n + 1) * (m + 1) virtual tables for that one table, view,
or file. For example, if the file MYTABLE has the associations MYASSOC1
and MYASSOC2 and the unassociated multivalued field MV1, and if the
HS.ODBC.LISTS entry has the lists MYLIST1 and MYLIST2 in field 2, the
following ODBC tables would appear in the result set of SQLTables:
MYTABLE
MYTABLE_MYLIST1
MYTABLE_MYLIST2
MYTABLE_MYASSOC1
MYTABLE_MYASSOC1_MYLIST1
MYTABLE_MYASSOC1_MYLIST2
MYTABLE_MYASSOC2
MYTABLE_MYASSOC2_MYLIST1
MYTABLE_MYASSOC2_MYLIST2
MYTABLE_MV1
MYTABLE_MV1_MYLIST1
MYTABLE_MV1_MYLIST2
By default, UniVerse ODBC applies name mapping to the names of select lists
to make them ODBC-compliant. For information about name mapping, see
“ODBC Name Mapping” on page 4-30.
4-15
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
For tables and views, accessible columns are those listed in the @SELECT
phrase, if it exists. If there is no @SELECT phrase, the columns are those listed
in the table’s SICA, as defined by CREATE TABLE or CREATE VIEW, and as
modified by ALTER TABLE.
For files that are not tables, accessible fields are those listed in the @SELECT
phrase, if it exists. If there is no @SELECT phrase, the fields are those listed in
the @ phrase. If neither the @SELECT nor the @ phrase exist, only the
record ID is accessible.
For more information about the @SELECT and @ phrases, see UniVerse SQL
Administration for DBAs.
UniVerse ODBC shows UniVerse tables, views, and files in first normal form.
That is, a table, view, or file containing one or more multivalued columns or
fields is treated as a set of ODBC tables comprising:
Certain ODBC tables are not visible to the SQLTables function, even though
they are accessible through SQL statements. Some ODBC applications
provide limited or no access to ODBC tables that are not visible to
SQLTables. SQLTables can see the following:
4-17
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Example
Consider a UniVerse file MYFILE comprising the following fields:
Single or
Field Name Location Multivalued Associated
@ID 0 S No
CUSTOMER 1 S No
ADDRESS 2 M No
QTY 3 M Yes
DESCRIPTION 4 M Yes
All fields of this file are accessible to ODBC applications. The @ID field is not
included in the @ phrase because it is always accessible unless suppressed by
the ID.SUP keyword.
4-19
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Fix data in data files and dictionaries that cause SQL and ODBC
problems
Define SQL data types for data in UniVerse files
Define the length of character string data in UniVerse files
Modify certain UniVerse conversion codes
@EMPTY.NULL
HS.SCRUB adds an @EMPTY.NULL record to the table or file dictionary if all
the following conditions are met:
1. Such as nonnumeric values in numeric, date, and time fields, which can lead to
adjusting the column type to CHARACTER.
@SELECT
HS.SCRUB adds an @SELECT record to the file dictionary (but not to a table
dictionary) if both of the following conditions are met:
• The dictionary does not already include an @ or @SELECT record
• Modification of the dictionary is enabled (FIX, AUTOFIX, AUTOFIX
DICT)
For information about @SELECT records, see UniVerse SQL Administration
for DBAs.
Running HS.SCRUB
To run the HS.SCRUB utility, enter 5 to choose Run HS.SCRUB on a
File/Table from the UniVerse ODBC System Administration menu, or use the
HS.SCRUB command.
Next UniVerse prompts to enter the name of the table or file you want to
analyze or change. When you enter a file name, UniVerse prompts to enter
the mode of operation. Enter one of the following at the Mode prompt:
4-21
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
For UniVerse files, UniVerse determines a field’s SQL data type by examining
its conversion code and format specifications. The UniVerse database server
reports this SQL data type to ODBC applications. If the UniVerse-generated
SQL data type is inappropriate for the actual data in the field, you can specify
the correct SQL data type in the field’s dictionary entry. For some data types,
the SQL data type syntax is different between dictionary specifications and
UniVerse SQL statements (for example, CREATE TABLE) as noted in the
following table. Square brackets indicate optional parameters.
Note the syntactic differences regarding the use of parentheses and commas.
You can specify the SQL data type for any field, real or virtual, in a UniVerse
file. You need not specify the SQL data type for any column of a table or view
defined by the CREATE TABLE or CREATE VIEW statement, but you may
want to specify the SQL data type for other columns in the table or view (such
as I-descriptors) that are not defined in the SICA. You cannot modify the SQL
data type for columns defined in the SICA, and UniVerse ignores the
dictionary definitions for these columns. For more information about the
SICA and UniVerse SQL tables and views, see UniVerse SQL Administration
for DBAs and UniVerse SQL User Guide.
4-23
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
If your fetch buffer is not big enough to hold all the character data that
UniVerse ODBC retrieves, UniVerse ODBC fills your buffer and generates a
truncation warning.
Your application and data source must agree on a consistent way to treat
trailing spaces in a CHAR(n) column. Generally it is better to treat CHAR(n)
columns as if they were VARCHAR columns with no space padding.
Empty-Null Mapping
UniVerse files use empty strings in much the same way tables use null values.
Unfortunately, empty strings in numeric or date columns cause data
conversion errors in ODBC, making these columns almost inaccessible to
many ODBC applications. To make files with empty values accessible to
ODBC, UniVerse ODBC provides empty-null mapping, converting empty
values in UniVerse files to null values in ODBC application buffers, and vice
versa.
Dirty Data
Dirty data such as nonnumeric or out-of-range values in a numeric column is
unconvertible. Dirty data is tolerated without modifying the data or causing
a run-time error to ODBC applications. When UniVerse ODBC encounters a
dirty data value, it returns it as the null value along with a warning
(SQL_SUCCESS_WITH_INFO).
4-25
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Conversion Codes
When you insert or update a value in a column whose definition specifies a
conversion code, UniVerse inserts the value without converting it, whether or
not the value satisfies the conversion code. Subsequent SELECT statements,
however, may not find such a value because UniVerse applies the conversion
code to it and returns an empty string or some other unexpected value. This
can occur with the following conversion codes among others:
G (Group Extraction)
L (Length)
P (Pattern Match)
R (Range)
S (Substitution)
To avoid this problem, restrict your conversion codes to those that are
essential. To enforce patterns on input values in tables, use a CHECK
constraint.
Association Keys
UniVerse tables and views have primary keys. UniVerse files have
record IDs. Primary keys and record IDs are unique identifiers for each row
(record) of data in a table or file.
You can define one or more association columns as the association key, but
you do not have to. If you do not, UniVerse SQL generates a virtual column
called @ASSOC_ROW containing unique values that, combined with the
primary keys or record IDs of the base table, become the association keys for
the ODBC table generated from the association.
For detailed information about defining association keys, see UniVerse SQL
Administration for DBAs and UniVerse SQL Reference.
4-27
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Client applications can use the encryption key wallet to activate keys for the
entire session. Call the ACTIVATE_WALLET() and
DEACTIVATE_WALLET() subroutines to activate and deactivate encryption
keys contained in the wallet. Each of these subroutines have the following
parameters, which must be supplied in the following order:
For clients that use SQL to access the database, such as UniVerse ODBC and
UniOLEDB, you can add WALLETID and WALLETPASSWORD to the
uci.config file. Adding these parameters enables UniVerse to perform
encryption key activation automatically.
If you are using UniObjects, you can access these methods through the
subroutine method of a session object.
For more information on automatic data encryption, see the UniVerse Security
Features manual.
4-29
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Most UniVerse databases have file names, column names, and field names
that do not conform to ODBC naming rules. Periods ( . ) are the most
commonly used illegal characters. Several key ODBC client applications,
including PowerBuilder and all Microsoft products (such as Access, Visual
Basic, and Visual C++) that use the Jet database engine, reject periods in
identifiers.
_n
4-31
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch4.fm
3/28/13
Subroutines
TOXML statements
CALL statements
The tester’s source code and executable binary code are written in a C#
UVODBC_Tester project, which is located, by default, in the following
directory:
C:\U2\UniDK\UniVerseODBC_32bit\UVODBC_Tester
The UniVerse 32-bit ODBC works in exactly the same way as the UniVerse 64-
bit ODBC Tester, which is described in detail in “UniVerse 64-Bit UVODBC
Tester” on page 9-4. Step-by-step instructions about using the 64-bit tester are
included in this chapter, and all of the features available in the 64-bit tester
are also available in the 32-bit tester, as long as you substitute a 32-bit DSN
for the 64-bit DSN called for in the instructions.
Note: You must have a 32-bit user Database Source Name (DSN) to use the sample
tool. If you have not already created a 32-bit DSN, refer to “Configuring UCI for
UniVerse ODBC Driver” on page 8-7.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Chapter
Troubleshooting
5
Isolating a Problem . . . . . . . . . . . . . . . . . 5-4
Before Reporting a Problem . . . . . . . . . . . . . . 5-5
Getting Information About Your System . . . . . . . . . . 5-6
Manual Communications Verification . . . . . . . . . . . 5-10
Verifying a TCP/IP Connection . . . . . . . . . . . . 5-10
Verifying Other Types of Network Connection . . . . . . 5-11
Connection Problems . . . . . . . . . . . . . . . 5-11
Windows Server-Related Problems . . . . . . . . . . . . 5-12
UNIX Server-Related Problems . . . . . . . . . . . . . 5-13
Windows and UNIX Server-Related Problems . . . . . . . . 5-14
Client-Related Problems. . . . . . . . . . . . . . . . 5-15
5-3
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
Isolating a Problem
Most installation and operation difficulties with UniVerse ODBC fall into one
of the following categories:
In the DOS Command Prompt window, enter the Ping command to verify the
network connection. In UniVerse ODBC Data Source Setup (called by the
Microsoft ODBC Data Source Administrator tool), use the Test button to
verify database access.
If Ping succeeds but Test fails, the problem is most likely on the server or in
the configuration entry. Examine the configuration carefully. Correct any
problems you find, then retry the test.
5-5
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
Item Action
Contents of the unirpc Change directory to the unirpc directory and enter ls –l >
directory, and logfile to write the permissions settings to a file.
permissions on them
Item Action
Windows version Enter WINMSD in the Run dialog box. Click the Version
number tab.
Is UniVerse running? Try to use telnet to reach the Windows host name. From the
Windows Control Panel, choose Services. Verify that
UniVerse is in the list of installed services and the status is
Started.
Is the UniRPC service Choose Services from the Windows Control Panel. Verify
running? that UniVerse UniRPC is in the list of installed services and
the status is Started.
5-7
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
The following table itemizes the Windows client information you may need.
The Action column provides detailed procedures for obtaining each item of
information.
Item Action
PC processor type and Choose System from the Control Panel, then click the
clock speed General tab.
PC main and Choose System from the Control Panel, then click the
extended memory Performance tab.
size
Windows version Choose System from the Control Panel, then click the
General tab.
PATH environment Choose System from the Control Panel, then click the
variable value Environment tab.
Client Information for Windows NT, Windows 2000, or Windows XP
.profile, .login, and .cshrc (or other environment files) files for the user
/etc/services file
/etc/inetd.conf file
/etc/rc* files
\WINNT\SYSTEM32\DRIVERS\etc\HOSTS file
\WINNT\SYSTEM32\DRIVERS\etc\LMHOSTS file
\WINNT\SYSTEM32\DRIVERS\etc\SERVICES file
\WINNT\SYSTEM32\DRIVERS\etc\NETWORKS file
C:\WINNT\VSL.INI file
C:\WINNT\WIN.INI file
The client TCP/IP software HOSTS file (if used)
The contents of the UniVerse ODBC driver installation directory
(usually C:\U2\UVODBC), with file sizes and dates
5-9
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
Ping
Provide the host name. The ping program looks up the host name in the local
hosts file or in a name server and sends one or a series of low-level messages
to the host, which echoes them back.
If using ping with the host name does not work, you can use ping with the IP
address of the host. If the IP address works but the host name does not, either
the local hosts file or the name server in use does not know the host by the
name you are using. Check the spelling and capitalization (host names are
case-sensitive).
If using ping with the IP address does not work to a system that is known to
be available, you may have the wrong IP address, or there may be gateways
in the Ethernet path between your client and the UniVerse database server
that are not passing your requests. In this case, you need to get help from
your system administrator.
If ping works, you have verified that the TCP/IP software has been installed
and configured correctly, and the host name you used is valid (you still do not
know if it is the host you want). Do not proceed until ping works.
Telnet
Provide the host name, then log on with a user name and password to an
interactive host terminal session. For information about how to use the telnet
utility, see your TCP/IP software manual.
When you can log on successfully to the correct host through telnet, you have
verified that your local hosts file or name server has the correct IP address for
that host name, and that the user name and password you used are valid on
that host.
Connection Problems
If your client application does not show the detailed error message, you may
need to create either a client log file or a ubodbc.log file in the working
directory to verify the error.
To create a client log file, use Dr. DeeBee Spy on the ODBC data
source. For more information on Dr. DeeBee Spy, see ODBC
Diagnostic Tool: Dr. DeeBee Spy.
To create a uvodbc.log file, use the Microsoft ODBC Data Source
Administrator tool. Click the Option button in the UVODBC Data
Source Setup dialog box and select the checkbox for enabling a log
file.
For more information on log files, see Appendix D, “Driver Process Log
Files.”
5-11
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
5-13
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March 2013\UVODBC\Ch5.fm
3/28/13
Client-Related Problems
Does the system have the required configuration of memory,
processor type, and operating system?
Is the supported Ethernet card installed correctly?
Is the client TCP/IP software installed correctly, and is it verified to
communicate with this host?
If your client TCP/IP software is configured to use a HOSTS file, is
the HOSTS file accessible by the path (PATH environment variable
on Windows)?
Do the host names in the configuration file uci.config match those in
the HOSTS file (case must match) or the name server?
Do the HOSTS file entries for the host names used contain the correct
IP addresses?
Does the HOSTS file specify the IP address of the first Ethernet
controller when multiple controllers are present?
Was the UniVerse ODBC driver installation completed successfully?
Make sure that other Windows applications do not take up too much
memory.
Are the host names in the configuration file uci.config spelled and
capitalized correctly?
Are you using the correct user names and passwords?
Are the database parameters in the configuration file uci.config
absolute paths?
Is the server parameter in the configuration file uci.config an
absolute path, and does it correspond to the UV account directory?
5-15
Chapter
6-2
API Conformance Levels
ODBC specifies three levels of API conformance:
Core API
Level 1 API
Level 2 API
The following are the definitions of the ODBC API Conformance Levels as
specified in the Microsoft ODBC 3.0 Programmer’s Reference and SDK Guide.
Core API
Allocate and free environment, connection, and statement handles.
Connect to data sources. Use multiple statements on a connection.
Prepare and execute SQL statements. Execute SQL statements
immediately.
Assign storage for parameters in an SQL statement and result
columns.
Retrieve data from a result set. Retrieve information about a result
set.
Commit or roll back transactions.
Retrieve error information.
Level 1 API\Q
Core API functionality.
Connect to data sources with driver-specific dialog boxes.
Set and inquire values of statement and connection options.
Send part or all of a parameter value.
Retrieve part or all of a result column value.
Retrieve catalog information (tables, columns, primary keys, foreign
keys, special columns, statistics, procedures, and procedure
columns).
Level 2 API
Core and Level 1 functionality.
Browse available connections and list available data sources.
Send arrays of parameter values. Retrieve arrays of result column
values.
Retrieve the number of parameters and describe individual
parameters.
Use a scrollable cursor.
Retrieve the native form of an SQL statement.
Retrieve enhanced catalog information (privileges, keys,
procedures).
Call a translation DLL.
6-4
UniVerse ODBC-Supported API Functions
UniVerse ODBC supports the following API functions which are separated
into groups according to the tasks they perform. For more information on the
functions in this section, see Microsoft ODBC 3.0 Programmer’s Reference and
SDK Guide.
SQLAllocHandle [DBC]
SQLConnect
or
SQLDriverConnect
Receive Results
SQLDisconnect
SQLFreeHandle [DBC]
SQLFreeHandle [ENV]
SQLAllocHandle
6-6
SQLBrowseConnect
SQLConnect
SQLConnectAttr
SQLDriverConnect
SQLGetConnectAttr
SQLGetConnectionOption
SQLDisconnect
SQLGetEnvAttr
SQLFreeConnect
SQLFreeEnv
SQLSetConnectAttr
SQLSetConnectionOption
SQLSetEnvAttr
Prepared Execution
Direct Execution
Prepared Execution
An application uses prepared execution if it needs to execute the same SQL
statement more than once, or if it needs information about the result set prior
to execution.
Supporting Parameters
An SQL statement can contain parameter markers to indicate values that are
supplied at execution time. The following three examples show how an
application might use parameter markers in three types of statements:
SELECT, non-SELECT, and procedure calls.
SQLAllocStmnt
SQLAllocHandle
SQLSetStmtOption
SQLSetStmtAttr
SQLGetStmtOption
SQLSetStmtAttr
SQLPrepare
SQLBindParameter
SQLBindParam
SQLNumParams
6-8
SQLParamData
SQLParamOptions
SQLPutData
SQLExecute
SQLExecDirect
SQLTransact
SQLEndTran
SQLCancel
SQLRowCount
SQLFreeStmt
SQLFreeHandle
SQLGetCursorName
SQLSetCursorName
SQLCloseCursor
SQLSetDescRec
SQLSetDescField
SQLGetDescField
Note: The capability of SQLParamOptions to specify multiple values for parameters
is not yet supported. The SQLDescribeParam, SQLBulkOperations, SQLCopyDesc,
and SQLDescRec functions are not supported.
You can process multiple statements simultaneously for a given connection handle.
SELECT Statement
SQLAllocHandle [STMT]
SQLNumResultCols
SQLDescribeCol
SQLBindCol
SQLFetch, SQLFetchScroll
Yes
More Rows?
No
SQLFreeHandle [STMT]
Finished
6-10
SQL UPDATE, INSERT, and DELETE statements do not return result sets.
Instead, your application can query the number of rows affected by an
INSERT, DELETE, or UPDATE statement. The following figure shows a
typical INSERT, DELETE, or UPDATE operation:
INSERT, DELETE or
UPDATE Statement
SQLAllocHandle [STMT]
SQLRowCount
SQLFreeHandle [STMT]
Finished
SQLNumResultCols
SQLDescribeCol
SQLColAttributes
SQLBindCol
SQLGetData
SQLFetch
SQLFetchScroll
SQLRowCount
Note: UniVerse ODBC supports only forward-scrolling capabilities.
SQLColAttribute is not supported.
UniVerse ODBC does not support rowset cursors and positioning within a rowset.
SQLGetInfo
SQLGetTypeInfo
SQLGetFunctions
Error Handling
UniVerse ODBC supports the following error handling functions in this
category:
SQLGetDiagField
SQLGetDiagRec
6-12
SQL Conformance Levels
ODBC specifies three levels of SQL conformance:
Note: CREATE and DROP statements are not supported in this release of UniVerse
ODBC.
Returning Data
The UniVerse ODBC driver returns all data residing in a character-type
attribute (VARCHAR type column), rather than truncating it to the length
specified in the format field of the corresponding attribute definition in the
UniVerse dictionary. For example, if the format specification of a dictionary
attribute is 10L, prior to UniVerse 6.0, UniVerse ODBC truncated the data to
10 characters before returning it to the application. Beginning at this release,
data is no longer truncated.
6-14
UniVerse ODBC-Supported SQL Capabilities
UniVerse ODBC supports the following SQL capabilities.
Data Types
UniVerse ODBC supports the following capabilities in this category:
VARCHAR
INTEGER
FLOAT
Exceptions/Limitations:
UPDATE table-name
SET column-identifier = {expression | NULL}
[, column-identifier = {expression | NULL}]...
[WHERE search-condition]
6-16
Extended SQL support:
ODBC-std-esc-initiator CALL {procedure_name | procedure_name
(procedure_parameter [, procedure_parameter]... ) ODBC-std-esc-
terminator
Scalar Functions
ODBC specifies two types of scalar functions which form a part of the
extended SQL grammar support. The scalar functions are classified into the
following sections:
String functions
Numeric functions
Note: These functions are supported only when the argument you specify is a column
name.
CHAR
CONCAT
INSERT
LCASE
LEFT
ABS
ACOS
ASIN
ATAN
COS
EXP
LOG
MOD
SIGN
SIN
SQRT
TANBeginning at UniVerse 11.1, is fully scalable. if more clients and servers are added t
6-18
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta BetaBeta Beta
Appendix
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
DATE SQL_DATE
INTEGER SQL_INTEGER
REAL SQL_REAL
SMALLINT SQL_SMALLINT
TIME SQL_TIME
For information about specifying UniVerse SQL data types in UniVerse files,
see SQL Data Types.
A-2
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Outer Joins
UniVerse ODBC supports left outer joins in statements such as:
SELECT CODE AS STATE, COMPANY
FROM OJ STATES
LEFT OUTER JOIN
CUSTOMER
ON STATES.CODE = CUSTOMER.STATE;
However, UniVerse ODBC does not support nested left outer joins, such as:
SELECT CODE AS STATE, COMPANY, PRODID
FROM OJ STATES
LEFT OUTER JOIN
CUSTOMER
LEFT OUTER JOIN
CUSTOMER_ORDERS
ON CUSTOMER.CUSTID = CUSTOMER_ORDERS.CUSTID
ON STATES.CODE = CUSTOMER.STATE;
A-4
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
In UniVerse SQL, the table expression on the left side of a left outer join can
itself be a left outer join, but the table expression on the right side cannot. In
ODBC SQL, the reverse is true: only the table expression on the right side can
be a left outer join. Therefore, in UniVerse ODBC SQL, neither the left nor the
right table expression in a left outer join can be a left outer join.
UNION Clause
UniVerse ODBC supports the UNION clause as given in the ODBC grammar.
For example:
SELECT SCHEMA_NAME FROM CATALOG.UV_SCHEMA
UNION
SELECT TABLE_NAME FROM CATALOG.UV_TABLES;
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Scalar Functions
The following table lists UniVerse ODBC support of scalar functions.
Function Supported
String ASCII No
CHAR No
CONCAT Yes
DIFFERENCE No
INSERT1 Yes
LCASE Yes
LEFT Yes
LENGTH Yes
LOCATE No
LTRIM Yes
REPEAT No
REPLACE No
RIGHT1 Yes
RTRIM Yes
SOUNDEX No
SPACE No
SUBSTRING Yes
UCASE Yes
Numeric ABS No
ACOS No
UniVerse ODBC Support of Scalar Functions
A-6
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Function Supported
ASIN No
ATAN No
ATAN2 No
CEILING No
COS No
COT No
DEGREES Yes
EXP No
FLOOR No
LOG No
LOG10 No
MOD No
PI Yes
POWER No
RADIANS Yes
RAND No
ROUND No
SIGN No
SIN No
SQRT No
TAN No
TRUNCATE No
CURTIME No
UniVerse ODBC Support of Scalar Functions (Continued)
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Function Supported
DAYNAME No
DAYOFMONTH No
DAYOFWEEK No
DAYOFYEAR No
HOUR No
MINUTE No
MONTH No
MONTHNAME No
NOW No
QUARTER No
SECOND No
TIMESTAMPADD No
TIMESTAMPDIFF No
WEEK No
YEAR No
IFNULL No
USER Yes
A-8
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
The following extensions are available only when the Reject non-ODBC
SQL Syntax option is off (the default setting):
A-10
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
NOWAIT Keyword
UniVerse ODBC supports the NOWAIT keyword at the end of the following
statements:
NOWAIT prevents users from having to wait if another user or process has a
file or record lock that prevents the database operation from proceeding. For
example:
INSERT INTO SALESMEN
SELECT * FROM EMPS
WHERE DEPTCODE = 'SALES'
NOWAIT;
EXPLAIN Keyword
UniVerse ODBC supports the EXPLAIN keyword for use in SELECT
statements. EXPLAIN returns information about how the statement will be
processed, letting users decide if they want to rewrite the query more
efficiently. The SELECT statement is not executed.
INSERT statements
Parameter markers
DDL
ODBC-compliant names
Column aliases
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
INSERT Statements
UniVerse handles SQL INSERT statements that do not include an explicit
column list as documented in UniVerse SQL Reference. For files, the values
listed in the VALUES clause should match the fields defined in the @INSERT
phrase. For tables, the values should match the columns defined in the SICA.
Parameter Markers
ODBC SQL has certain restrictions on the use of parameter markers.
UniVerse ODBC tolerates some violations of these restrictions, but in the
future it may optionally catch them and give an error message.
No DDL on Files
SQL DDL statements that create, drop, alter, grant, or revoke privileges on
tables are permitted on tables and views only. To use DDL statements on a
file, the file must be converted to a table.
Column Aliases
The UniVerse ODBC interpretation of column aliases is closer to that of
SQL-92 than to that of UniVerse. This interpretation is better suited for the
default behavior of ODBC. UniVerse ODBC permits references to column
aliases only in ORDER BY clauses. As of Release 9, UniVerse permits
references to column aliases in other places.
A-12
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Procedures
All UniVerse procedures are available through UniVerse ODBC as ODBC
procedures. These include, but are not limited to, UniVerse BASIC programs
and paragraphs. For details about UniVerse procedures, see UCI Developer’s
Guide or UniVerse BASIC SQL Client Interface Guide. For details about ODBC
procedures, see Microsoft ODBC 3.0 Programmer's Reference and SDK Guide.
To invoke procedures using UniVerse ODBC, you need to write custom SQL
statements, and, depending on your ODBC application, you may need to
write custom ODBC calls.
Syntax
UniVerse ODBC supports the following ODBC syntax for procedure calls:
You can specify parameters only when calling a UniVerse BASIC subroutine.
When calling other UniVerse procedures, enclose the entire command in
double quotation marks. For example:
{CALL "LIST CUSTOMER WITH CUSTID = 2"}
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Parameters
You can bind a procedure parameter using any SQL type that UniVerse
ODBC supports (see Data Types in SQL). However, the UniVerse engine itself
treats all procedure parameters as character strings. Therefore, binding such
a parameter using an SQL type other than SQL_CHAR or SQL_VARCHAR
makes UniVerse ODBC check that the value of the parameter is compatible
with the SQL type, and generate an error or warning if it is not.
Result Sets
A procedure may or may not return a result set.
The number and types of columns in the result set of a procedure are not
available until the procedure is executed. SQLPrepare immediately followed
by SQLNumResultCols, SQLDescribeCol, or SQLColAttributes gives an
error.
The number and types of columns in the result set of a procedure may change
from execution to execution.
Behavior of SQLRowCount
SQLRowCount returns a value of –1 after a procedure that returns a result
set.
A-14
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
After a procedure which does not return a result set, SQLRowCount returns
what the UCI SQLRowCount function returns. This might not be what you
expect; see UCI Developer’s Guide for more information.
Limitations
UniVerse ODBC does not support the following ODBC procedure
functionality:
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
A-16
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
UniVerse ODBC does not support name mapping or file access control in this
extension.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
When this option is off, UniVerse ODBC always tries to interpret SQL as
ODBC SQL (unless a statement conforms to UniVerse ODBC’s native SQL
extension, in which case, UniVerse ODBC always passes the statement
through). If you want your ODBC application to be portable across multiple
databases, do not activate this option. In addition, you can set one or more of
the options that enforce ODBC syntax. By doing so you ensure that the
application’s SQL statements are portable across databases and provide
uniform error messages when SQL does not meet portability standards.
Retrying statements as UniVerse SQL takes effect only when name mapping
is off. This option bypasses the translation of the client’s SQL statement from
ODBC SQL to UniVerse SQL, in which ODBC names are converted to
UniVerse equivalents. If you want to use UniVerse extensions directly
through this option, you also must use UniVerse native file, table, and
column names in your SQL statements.
UniVerse ODBC does not support file access control in retried statements.
A-18
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Transaction Support
UniVerse ODBC supports two modes of transaction behavior:
Autocommit Mode
In autocommit mode, UniVerse ODBC treats every SQL statement received
from a client as a separate transaction within the data session. It commits
every statement that could have modified the database.
DDL statements such as CREATE TABLE are allowed only when the driver
is in autocommit mode.
Manual Mode
In manual mode the server runs the SQL statements as they come in from the
client, but it defers committing changes to the database until it receives an
explicit commit or rollback command from the client.
A-20
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppA.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Table TABLE
View VIEW
File TABLE
ODBC Table Types
A-22
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta BetaBeta Beta
Appendix
Error Messages
B
This appendix describes the UniVerse ODBC error reporting
system. It also explains how to obtain information about an error.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Message Descriptions
Each message description includes the Error ID, Severity, and Facilities
codes. Because some errors originate in other products such as your database
or TCP/IP product, it is not possible to list every error message. Instead, the
word STRING refers to a portion of the message that varies depending on the
server platform or database. In these cases, you may need to refer to your
product’s documentation for details.
Component Description
Error ID The numeric code that identifies the specific error or warning.
Facility The source of the error, usually the software module from which
the error originated. This information is useful when calling
technical support.
Error Components
B-2
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Messages
A CREATE VIEW statement’s name list did not correspond to the query
defining the view.
Error ID: 10, Severity: ERROR, Facility: DBCAPERR
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-4
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-6
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
This error can also result from a variety of situations, such as the host is shut
down, the host operator force logged out the server process, the host
inactivity time-out expired and logged out the server process, TCP/IP has
failed, or a fatal error occurred to the server process. Retry the connection. If
this fails, reboot your PC and try again. If this fails, check to see if the host and
TCP/IP are running.
Use UCI Config Editor to check the spelling of the host name.
Retry the connection. If this fails, reboot your PC and try again. If this fails,
check to see if the host and TCP/IP are running.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
This error can also occur during the course of normal communications if the
host or client system becomes very heavily loaded or hangs. In this case,
check both the host and the client. If the problem persists, reboot both
systems and try again.
B-8
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Could not make name unique: more than 10 million names with the same
stem.
Could not find a _nnnnnnn suffix for a name, which would make it unique
within a space of names because 9,999,999 suffixes have already been given
out for that name. This is an extremely rare error. Contact U2 Customer
Support.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Database error.
The database encountered an error while performing the operation. See your
database manual for an explanation of the message and external error code.
Database warning.
The database generated warnings while performing the operation. See your
database manual for an explanation of the message and external error code.
B-10
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Data truncated.
All of the data for the specified column, icol, could not be retrieved in a single
call to the function.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Date/Time overflow.
A date/time parameter or literal in an SQL statement overflowed its allowed
range.
Date/Time overflow.
A date/time parameter or literal in an SQL statement overflowed its allowed
range.
B-12
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-14
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-16
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Invalid datatype.
Error ID: 35, Severity: ERROR, Facility: FPSRVERR
B-18
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Invalid number.
A string is not in a recognizable numeric format and cannot be converted to
a number.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-20
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Operation canceled.
Error ID: 44, Severity: ERROR, Facility: DBCAPERR
Out of memory.
The UniVerse ODBC driver has run out memory. Reduce the size of the result
set you request, close other database connections with large query result sets,
or close down other Windows applications that are consuming memory, then
retry the operation. If this message persists, you may need to shut down
Windows and restart it or reboot your PC. If this message occurs frequently,
you need more memory on your PC or more virtual memory on your data
source.
B-22
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Path truncated.
You typed a value that was longer than a valid path plus filename. The value
was truncated to the maximum length defined for the column. This message
is informational only, and requires no further action.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
This error can also happen if the shell configuration scripts on your UNIX
host echo data to the terminal. In this case, you must modify the scripts to
move or remove the terminal-accessing commands.
B-24
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Serialization failure.
The transaction to which the prepared statement belonged was terminated to
prevent deadlock.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-26
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Syntax error.
A syntax error has been discovered at the indicated line and column number
of the SQL statement. Verify that the SQL statement follows proper ODBC
SQL syntax.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Text truncated.
You typed a value that was longer than the space provided by the database
for values in this column. The value was truncated to the maximum length
defined for the column. This message is informational only, and requires no
further action.
The database reported an error when attempting to access this data item.
Error ID: 54, Severity: ERROR, Facility: DBCAPERR
The minutes and seconds parts of this date/time have been set to 0.
You typed a date and hours value for a column that is defined to include both
a date and a complete time. The unspecified time portions have been set to 0.
This message is informational only, and requires no further action.
B-28
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
The number did not fit within the specified precision; it was rounded off.
You typed a value that has more significant digits than the precision specified
for its column. The number you typed was rounded off to fit within the
column’s defined precision. This message is informational only, and requires
no further action.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
The Schema defined by the client does not exist or could not be
accessed.
Error ID: 55, Severity: ERROR, Facility: DBCAPERR
The Table defined by the client does not exist or could not be accessed.
Error ID: 56, Severity: ERROR, Facility: DBCAPERR
B-30
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
The UniVerse ODBC driver or the underlying database do not provide the
requested feature.
Error ID: 33, Severity: ERROR, Facility: DBCAPERR
Exit one or more of the concurrent application sessions and try again. If this
fails, reboot your PC and try again.
B-32
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
UCI Error. Func: SQL Connect(); State: IM002; UniVerse code: 0; Msg:
[U2][SQL Client]The data source is not in configuration file.
Check the uci.config file to verify that the data source entry exists.
UCI Error. Func: STRING; State: STRING; UniVerse code: NUMBER; Msg:
STRING.
A UCI error was encountered. See UniVerse Call Interface Guide to learn more
about this error.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Uni RPC daemon is not running. Startup this daemon from the UniVerse
System Administration menu before attempting to use UV/ODBC.
The UniRPC daemon must be running in order for UniVerse ODBC to
establish a connection with UniVerse. The UniRPC daemon can be started
from the UniVerse System Administration menu in the UV account. The
UniRPC service can be started from the Windows NT Control Panel, the
UniVerse Control Panel, or from an MS-DOS window.
B-34
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppB.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Note: This error message actually describes a warning from a BASIC program, not
an error.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
B-36
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta BetaBeta Beta
Appendix
ODBC Environment
Variables C
UniVerse ODBC provides features you can configure through
environment variables.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
C-2
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta BetaBeta Beta
Appendix
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
uvodbc.log
D-2
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppD.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
D-4
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta BetaBeta Beta
Appendix
Sample Accounts
E
This appendix provides details about the sample UniVerse
accounts that the UniVerse ODBC installation script creates. It
describes where to find them and the information they contain.
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
If you defined HS.SALES and HS.SERVICE as ODBC data sources using UCI
Config Editor, they should be accessible to client products and sample
applications.
E-2
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppE.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Database Definitions
The HS.SALES and HS.SERVICE accounts each contain several files. The
following sections list the files contained in each account, the columns found
in each file, and the relationships among the files.
HS.SALES Account
The HS.SALES account contains information about copiers and fax machines
sold by a fictitious manufacturer. It contains information about sales
prospects, customers who bought machines, details of their purchases, and
the products purchased. This information is typically used by the Sales
department.
FNAME DESCRIPTION
LNAME
COMPANY
ADDR1
ADDR2
CITY
STATE
ZIP
PHONE
PRODID
SER_NUM
HS.SALES Files
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
PRICE
BUY_DATE
PAID_DATE
SVC_PRICE
SVC_START
SVC_END
SVC_PAID_DATE
HS.SALES Files (Continued)
HS.SERVICE Account
The HS.SERVICE account contains information about customer calls,
commonly reported problems, and products under maintenance. This
information is typically used by the Service department.
PHONE STATUS
PROB_NUM FIX
PRODUCT NOTES
VERSION OCCURRENCES
SERIAL
HS.SERVICE Files
E-4
C:\Users\awaite\Documents\U2Doc\Clients\U2 Clients\March
2013\UVODBC\AppE.fm
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
CALLED_ON
CALL_DATE
CALL_TIME
CALL_MINUTES
PROBLEM
RESOLUTION
HS.SERVICE Files (Continued)
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Sample Data
The following files show the sample data contained in the HS.SALES and
HS.SERVICE accounts.
Note: If you update any of these files, the actual data you see can differ from these
samples.
LNAME
FNAME
PHONE
ADDR1
ADDR2
STATE
CITY
SAL
ZIP
1 Mr. Samuel Smith Better 10 Concord NH 02131 (603)
Beer, Inc.Commercial 555-
St 3212
2 Ms. Diana Morris Fast Copy 431 Third Waltham MA 01133 (617)
Center Ave. 555-
9823
3 Mr. David Argonne Fast Copy 75 Great Bedford MA 01182 (617)
Center Road 555-
3468
4 Ms. Jill Kahn Fast Copy 12 School St Boston MA 01103 (617)
Center 555-
7396
5 Mr. Kenneth Williams Ocean 837 Ocean Provi- RI 03171 (401)
State Fish Ave dence 555-
Company 6512
6 Ms. Betty Burke Lightning 400 MS White VT 01644 (802)
Computer Technology 10-27 River 555-
Corp. Path 9854
7 Dr. Martha Gill Central 555 Main Derry NH 04429 (603)
Hospital Street 555-
5437
8 Mr. Steven Holland Copies, 4325 Hill Lowell MA 01386 (508)
Inc. Road 555-
2365
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
COMPANY
CUSTID
LNAME
FNAME
PHONE
ADDR1
ADDR2
STATE
CITY
SAL
ZIP
9 Ms. Nicole Orlando A1 Used 820 Burl- MA 01173
Auto Middlesex ington
Turnpike
10 Dr. Andrew McCaig HGT 999 Hill Road Brattle- VT 03356 (802)
Dental boro 555-
Center 6534
11 Mr. Skip Lewis Skip’s 10 Dock Plym- MA 01382 (508)
Whale Street outh 555-
Watch 2368
12 Mrs. Laurie Patry Rustic 10 Rustic Littleton MA 01142 (508)
Printers Trail 555-
9426
PRODID
PRICE
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
PAID_DATE
BUY_DATE
SER_NUM
CUST_ID
PRODID
PRICE
8 S3000 201399 $900 1991-01-21 1991-02-21
10 M1000 203510 $1990 1991-01-28 1991-02-14
10 M1000 203600 $1900 1991-01-29 1991-02-28
10 C2000 600791 $6500 1991-01-30
SVC_PAID_DATE
SVC_START
SVC_PRICE
SER_NUM
SVC_END
PRODID
CUSTID
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
CALL_MINUTES
RESOLUTION
CALLED_ON
PROB_NUM
CUST_NUM
PRODUCT
PROBLEM
VERSION
L_NAME
F_NAME
SERIAL
PHONE
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
OCCURRENCES
PROB_NUM
PRODUCT
VERSION
STATUS
NOTES
FIX
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta
PROB_DESCRIPTION
OCCURRENCES
PROB_NUM
PRODUCT
VERSION
STATUS
NOTES
FIX
3 M1000 1 Frequent paper fixed Fan paper thor- Rev 2 paper 27
jams oughly, don’t use tray is much
moist paper better
4 C2000 1 Smeared colors doc Make 20 copies The manual 25
after changing of color test sheet now recom-
toner cartridge after changing mends this as
toner standard
procedure
5 M2000 1 Paper jam light fixed Paper is jammed Rev 1A shows 3
indicates loca- between loca- both loca-
tion 10, no tions 9 and 10. tions 9 and 10
paper jammed Turn roller 9 for this kind
there several times to of jam
right and remove
from location 10
6 C3000 1 Smeared colors doc Make 20 copies The manual 17
after changing of color test sheet now recom-
toner cartridge after changing mends this as
toner standard
procedure
7 M3000 2 Frequent pending Feeder needs 0
original jams service. Should
when 2-sided install ver. 2A
copying large feeder long-life
originals upgrade.
8 M1000 2 Wrong paper doc Use only rev2 Explained in 4
size displayed paper trays rev 3 manual,
when using page 10.
8.5x14 paper
tray
Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta