SAP Adaptive Server Enterprise 16.0
SAP Adaptive Server Enterprise 16.0 (Japanese)
SAP Adaptive Server Enterprise 16.0 (Simplified Chinese)
Adaptive Server Enterprise 15.7 SP121
Adaptive Server Enterprise 15.7 SP110
Adaptive Server Enterprise 15.7 SP100
Adaptive Server Enterprise 15.7 SP60
Adaptive Server Enterprise 15.7 SP50
Adaptive Server Enterprise 15.7 ESD #4
Adaptive Server Enterprise 15.7 ESD #3
Adaptive Server Enterprise 15.7 ESD #2
Adaptive Server Enterprise 15.7 ESD #2 (Japanese)
Adaptive Server Enterprise 15.7 ESD #2 (Simplified Chinese)
Adaptive Server Enterprise 15.7
Adaptive Server Enterprise 15.7 (Japanese)
Adaptive Server Enterprise 15.7 (Simplified Chinese)
Adaptive Server Enterprise 15.5
Adaptive Server Enterprise 15.5 - Simplified Chinese
Adaptive Server Enterprise 15.5 (Japanese)
Adaptive Server Enterprise 12.5.4
Adaptive Server Enterprise 12.5.4 (Simplified Chinese)
Adaptive Server Enterprise 12.5.4 (French)
Adaptive Server Enterprise 12.5.4 (Japanese)
Adaptive Server Enterprise 12.5.3
Adaptive Server Enterprise 12.5.2
Adaptive Server Enterprise 12.5.1
AppBuilder 1.0
Appeon 6.5.1 for PowerBuilder
Appeon 6.5 for PowerBuilder
Appeon 6.2 for PowerBuilder
Appeon 6.1 for PowerBuilder
Appeon 6.0 for PowerBuilder
Appeon 6.0 for PowerBuilder (Japanese)
Avaki EII 7.1
Avaki EII 7.0
Avaki EII 6.2
DataWindow .NET 2.5
DataWindow .NET 2.0.1
DataWindow .NET 2.0
EAServer 6.3.1
EAServer 6.3
EAServer 6.2
EAServer 6.1
EAServer 6.0.2
EAServer 6.0
EAServer 5.5
EAServer 5.3
EAServer 5.2.1
EAServer 5.2
EAServer 5.0.1
EDI Products 5.2.2
Enterprise Connect Data Access 15.7
Enterprise Connect Data Access 15.0.1
Enterprise Connect Data Access 15.0
Enterprise Connect Data Access 12.6.1
Enterprise Connect Data Access 12.6
Financial Fusion GlobalFIX 6.0
InfoMaker 12.5.2
InfoMaker 12.5
SAP jConnect for JDBC 16.0
jConnect for JDBC 7.07 SP110
jConnect for JDBC 7.07 SP100
jConnect for JDBC 7.07
jConnect for JDBC 7.0
jConnect for JDBC 6.05
jConnect for JDBC 5.5
M-Business Anywhere 7.0
M-Business Anywhere 6.7
Mainframe Connect 15.0
Mainframe Connect 12.6.1
Mainframe Connect 12.6
SAP Open Server 16.0
SAP Open Server 15.7 SP127
Open Server 15.7 SP121
Open Server 15.7 SP110
Open Server 15.7 SP100
Open Server 15.7
Open Server 15.5
Open Server 15.0, Open Client 15.0, and SDK 15.0
Open Server 12.5.1
Open Server 12.5.1 (Chinese-Simplified)
Open Server 12.5.1 (French)
OpenSwitch 15.1
SAP Sybase PowerAMC 16.5 SP03
SAP Sybase PowerAMC 16.5 SP02
PowerAMC 16.5
PowerAMC 16.1
PowerAMC 16.0
PowerBuilder 12.5.2
PowerBuilder 12.5.1
PowerBuilder 12.5
PowerBuilder Application Server Plug-in 1.1
PowerBuilder Application Server Plugin 1.0
SAP Sybase PowerDesigner 16.5 SP03
SAP Sybase PowerDesigner 16.5 SP02
PowerDesigner 16.5
PowerDesigner 16.1
PowerDesigner 16.0
Real-Time Data Services 4.5
Real Time Data Services 4.0
Real Time Data Services 3.5
Replication Agent 15.0
Replication Agent for DB2 UDB 15.0
SAP Replication Server 15.7.1 SP203
SAP Replication Server 15.7.1 SP202
SAP Replication Server 15.7.1 SP201
SAP Replication Server 15.7.1 SP200
SAP Replication Server 15.7.1 SP200 (Japanese)
SAP Replication Server 15.7.1 SP200 (Simplified Chinese)
Replication Server 15.7.1 SP110
Replication Server 15.7.1 SP100
Replication Server 15.7.1
Replication Server 15.7.1 (Japanese)
Replication Server 15.7.1 (Simplified Chinese)
Replication Server 15.7
Replication Server 15.6
Replication Server 15.5
Replication Server 15.2
Replication Server 15.1
Replication Server 15.0.1
Replication Server 15.0
SAP Replication Server Data Assurance Option 15.7.1 SP202
SAP Replication Server Data Assurance Option 15.7.1 SP200
Replication Server Data Assurance Option 15.7.1 SP110
Replication Server Data Assurance Option 15.7.1 SP100
Replication Server Data Assurance Option 15.7.1
Replication Server - Data Assurance Option 15.7.1 (Japanese)
Replication Server - Data Assurance Option 15.7.1 (Simplified Chinese)
Replication Server Data Assurance Option 15.7
SAP Replication Server, heterogeneous edition 15.7.1 SP200
Replication Server Heterogeneous Edition 15.7.1 SP100
Replication Server Heterogenous Edition 15.7.1
Replication Server Heterogenous Edition 15.7.1 (Japanese)
Replication Server Heterogenous Edition 15.7.1 (Simplified Chinese)
Replication Server Heterogenous Edition 15.6
Replication Server Heterogeneous Edition 15.2
Replication Server Messaging Edition 15.7.1 [SP100]
Replication Server Messaging Edition 15.7.1
Replication Server Messaging Edition 15.2
Replication Server Option for Oracle 15.7.1 ESD #2
SAP Replication Server Options 15.7.1 SP201
SAP Replication Server Options 15.7.1 SP200
Replication Server Options 15.7.1 SP120
Replication Server Options 15.7.1 SP100
Replication Server Options 15.7.1
Replication Server Options 15.7.1 (Japanese)
Replication Server Options 15.7.1 (Simplified Chinese)
Replication Server Options 15.6
Replication Server Options 15.5
Replication Server Options 15.2
Replication Server Options 15.1
Replication Server Options 15.0
Replication Server Real-Time Loading Edition 15.7.1 ESD #2
SAP Mobile Platform SDK 3.0 SP02
SAP Mobile Platform Server 3.0 SP02
SAP Mobile Platform SDK 3.0 and SP01
SAP Mobile Platform 2.3 SP04
SAP Mobile Platform 2.3 SP03
SAP Mobile Platform 2.3 SP02
SAP Mobile Platform 2.3
SAP Sybase RAP 5.0
SDK for SAP ASE 16.0
Software Developers Kit 15.7 SP127
Software Developer's Kit 15.7 SP121
Software Developer's Kit 15.7 SP110
Software Developer's Kit 15.7 SP100
Software Developer's Kit 15.7
Software Developer's Kit Release Bulletin for HP-UX
Accessing current release bulletin information
Product summary
Product components
Availability with 64-bit libraries
Utilities
POSIX threads and pthreads libraries
IPv6 support
Sample files
Special installation and configuration instructions
Installing EBFs
Installing SDK 15.7 on top of SDK 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Changed functionality in this version
Known problems
Adaptive Server Enterprise ODBC Driver issues
Bulk insert routines cannot support in-row LOB columns in APL tables
Use SQLSetDescField to set decimal or numeric datatypes
Installer issues
Installer fails to launch when path to setup.bin contains “..”
Feature names are not validated when installing in silent mode
Product compatibility and interoperability
Interoperability matrix
Guidelines for installing SDK with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library
Programming issues
General issues
Upgrading to a new version
Client-Library issues
ct_poll
Asynchronous operations
Registered procedure notifications
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -p option
Error or warning prevents with select into statements
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Software Developer's Kit Release Bulletin for IBM AIX
Accessing current release bulletin information
Product summary
Product components
Availability with 64-bit libraries
Utilities
POSIX threads and pthreads libraries
IPv6 support
Sample files
Special installation and configuration instructions
Installing EBFs
Installing SDK 15.7 on top of SDK 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Changed functionality in this version
Known problems
ct_poll stops responding on IBM AIX
Adaptive Server Enterprise ODBC Driver issues
Bulk insert routines cannot support in-row LOB columns in APL tables
Use SQLSetDescField to set decimal or numeric datatypes
Installer issues
Installer fails to launch when path to setup.bin contains “..”
Feature names are not validated when installing in silent mode
Product compatibility and interoperability
Interoperability matrix
Guidelines for installing SDK with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library
Programming issues
General issues
Upgrading to a new version
Client-Library issues
ct_poll
Asynchronous operations
Registered procedure notifications
Security sample programs
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -p option
Error or warning prevents with select into statements
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Software Developer's Kit Release Buletin for Linux
Accessing current release bulletin information
Product summary
Product components
Availability with 64-bit libraries
Utilities
Patches
POSIX threads and pthreads libraries
IPv6 support
Sample files
Special installation and configuration instructions
Installing EBFs
Installing SDK 15.7 on top of SDK 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Changed functionality in this version
Known problems
Failure of ESQL/C and ESQL/COBOL compilations on Linux
Adaptive Server Enterprise ODBC Driver issues
Bulk insert routines cannot support in-row LOB columns in APL tables
Use SQLSetDescField to set decimal or numeric datatypes
Unsupported ODBC features
Behavior change when datetime parameter is out of range
Installer issues
Installer fails to launch when path to setup.bin contains “..”
Installer stops responding at the Pre-Installation Summary screen
Feature names are not validated when installing in silent mode
Product compatibility and interoperability
Interoperability matrix
Guidelines for installing SDK with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library
Programming issues
General issues
Upgrading to a new version
Client-Library issues
ct_poll
Asynchronous operations
Registered procedure notifications
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -p option
Error or warning prevents with select into statements
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Software Developer's Kit Release Bulletin Sun Solaris
Accessing current release bulletin information
Product summary
Product components
Availability with 64-bit libraries
Utilities
Patches
POSIX threads and pthreads libraries
IPv6 support
Sample files
Special installation and configuration instructions
Installing EBFs
Installing SDK 15.7 on top of SDK 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Changed functionality in this version
Known problems
Adaptive Server Enterprise ODBC Driver issues
Bulk insert routines cannot support in-row LOB columns in APL tables
Use SQLSetDescField to set decimal or numeric datatypes
Installer issues
Installer fails to launch when path to setup.bin contains “..”
Installer cannot use tar to extract from the SDK suite archive
Installation fails on Solaris
Feature names are not validated when installing in silent mode
Product compatibility and interoperability
Interoperability matrix
Guidelines for installing SDK with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library
Programming issues
General issues
Upgrading to a new version
Compiling sample programs
Generic 64-bit x86
Linking static libraries
Programming with thread-safe libraries
Client-Library issues
ct_poll
Asynchronous operations
Registered procedure notifications
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -p option
Error or warning prevents with select into statements
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Software Developer's Kit Release Bulletin for Microsoft Windows
Accessing current release bulletin information
Product summary
Product components
Availability with 64-bit libraries
Utilities
IPv6 support
Sample files
Special installation and configuration instructions
Installing EBFs
Installing SDK 15.7 on top of SDK 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Running different versions of SDK on Windows
Changed functionality in this version
Known problems
SDK requires components of Microsoft Visual C++ libraries
Adaptive Server Enterprise ODBC Driver issues
Bulk insert routines cannot support in-row LOB columns in APL tables
Use SQLSetDescField to set decimal or numeric datatypes
Unsupported ODBC features
Behavior change when datetime parameter is out of range
Adaptive Server OLE DB Provider issues
Unsupported OLE DB features
Behavior change when datetime parameter is out of range
Adaptive Server ADO.NET Data Provider issues
Limitation on precision for decimal and numeric datatypes
Change in behavior when datetime parameter is out of range
Installer issues
Installer cannot create installer directory on Microsoft Windows 2008
Cannot navigate the Choose Product Features window with a keyboard
Console mode incorrectly displays western character sets
Feature names are not validated when installing in silent mode
Product compatibility and interoperability
Interoperability matrix
Guidelines for installing SDK with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library
Programming issues
General issues
Upgrading to a new version
System path restriction
Client-Library issues
Asynchronous operations
Registered procedure notifications
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -p option
Error or warning prevents with select into statements
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Installation and Release Bulletin Sybase SDK DB-Library Kerberos Authentication Option
Accessing current release bulletin information
Product summary
Product overview
System requirements
Installation instructions
Installing version 15.7 on top of version 15.5
Running InstallAnywhere and InstallShield Multiplatform installers
Installing in GUI mode
Installing in console mode
Installing in silent mode
Creating a response file
Installing in silent mode
Configuration instructions
Enabling SDK DB-Library Kerberos Authentication Option
Uninstallation instructions
Uninstallation procedure
Installer issues
Installer cannot create installer directory on Microsoft Windows 2008
Installer fails to launch when path to setup.bin contains “..”
Installer cannot use tar to extract from the suite archive
Installation fails on Solaris
Cannot navigate the Choose Product Features window
Installer stops responding at the Pre-Installation Summary screen
Console mode incorrectly displays western character sets
Feature names are not validated when installing in silent mode
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
Software Developer's Kit and Open Server Installation Guide for UNIX
About this book
Before You Begin
SDK and Open Server components
SDK components
Open Server components
System requirements for the SDK and Open Server
Hardware and software requirements
Required utility
Disk space requirements
Disk space required for installation
jConnect requirements
Preinstallation instructions
Preinstallation instructions for Linux on POWER 32-bit and 64-bit
Preinstallation instructions on Linux
Installing the SDK and Open Server
Using SDK or Open Server installer
Installing on a remote machine
Installing SDK or Open Server
Installing SDK or Open Server 15.7 into version 15.5 directory
Mount the CD
Installing in GUI mode
Installing in console mode
Installing using a response file
Creating a response file
Installing in silent mode
Uninstalling the SDK or Open Server
Uninstallation procedures
Downgrading SDK or Open Server
Command line options
Postinstallation Tasks
Setting environment variables
Running sample scripts
Configuring the components
Modifying interfaces file entries
jConnect for JDBC postinstallation tasks
Setting JDBC_HOME
Setting the CLASSPATH
Installing stored procedures
Reviewing the installation contents
Packages
Directories and files
JDBC samples and specifications
Testing the jConnect installation
Verifying the jConnect version
Upgrading jConnect
Software Developer's Kit and Open Server Installation Guide for Microsoft Windows
About this book
Before You Begin
SDK and Open Server components
SDK components
Open Server components
System requirements for SDK and Open Server
Hardware and software requirements
Installing data access components from Microsoft
Disk space requirements
Disk space required for the installation
Compiler requirements
Installing compiler runtime libraries
Preinstallation tasks for SDK and Open Server
Installing SDK and Open Server
Using SDK or Open Server installer
Installing SDK or Open Server
Installing SDK or Open Server 15.7 on the same machine as a pre-15.7 Adaptive Server
Starting Adaptive Servers
Installing SDK or Open Server 15.7 into a version 15.5 directory
Installing in GUI mode
Installing in console mode
Installing using a response file
Creating a response file
Installing in silent mode
Uninstalling SDK or Open Server
Uninstallation procedures
Downgrading SDK or Open Server
Command line options
Postinstallation Tasks
Setting environment variables
Running sample script for Python
Configuring the components
jConnect for JDBC postinstallation tasks
Setting JDBC_HOME
Setting the CLASSPATH
Installing stored procedures
Reviewing the installation contents
Packages
Directories and files
JDBC samples and specifications
Testing the jConnect installation
Verifying the jConnect version
Upgrading jConnect
Open Client and Open Server Configuration Guide for UNIX
About this book
Configuration Overview
About Open Client and Open Server
Overview of configuration
The initialization process
The connection process
Configuration tasks
Basic Configuration for Open Client
Overview of configuration for Open Client
Configuration tasks for Open Client
Basic Configuration for Open Server
About Open Server applications
Overview of configuration for Open Server
Configuration tasks
Configuring Open Client for Sybase Failover
Add hafailover line to interfaces file
Client-Library application changes
Using isql with Sybase HA Failover
Using a Directory Service
Overview of directory services
LDAP directory services
LDAP directory services versus the Sybase interfaces file
Server objects and attributes
How applications use a directory service
How applications use LDAP directory services
Authentication
Enabling LDAP directory services
Multiple directory services with LDAP
Importing Microsoft Active Directory schema
Creating a container for Sybase server entries
Connecting to LDAP using SSL/TLS
Using Security Services
Overview of network-based security
Security mechanisms
Security drivers
Security services
How applications use security services
Client-Library and security services
Server-Library and security services
Configuration tasks
Configure Kerberos
Configure libtcl.cfg
Using dscp
About dscp
Starting dscp
Viewing your configuration
Getting help
Using dscp sessions
Adding and modifying server entries
Listing server entries
Viewing a server entry
Adding a server entry
Modifying a server entry
Deleting server entries
Copying server entries
Copying entries within a session
Copying entries between sessions
Copying all entries to a different session
Exiting dscp
Using dsedit
About dsedit
Starting dsedit
Opening a session
Interfaces file sessions
Adding a server to the directory services
Adding, viewing, and editing server entries
Adding or editing network transport addresses
TCP/IP addresses
Troubleshooting dsedit or dsedit problems
dsedit does not start
Cannot add, modify, or delete server entries
Environment Variables
Environment variables used for connection
Environment variables used for localization
Environment variables used for configuration
Setting environment variables
Configuration Files
About configuration files
The libtcl.cfg and libtcl64.cfg files
Dynamic linking of drivers
How libtcl.cfg is used
How libtcl.cfg is structured
DIRECTORY section
For LDAP entries in the DIRECTORY section
SECURITY section
Adding a directory driver
Adding a security driver
The interfaces file
interfaces entries
Standard format
Editing the interfaces file
Standby server addressing
The ocs.cfg file
Localization
Overview of the localization process
Environment variables used during localization
Localization files
The locales directory
The locales.dat file
Localized message files
The charsets directory
Collating sequence files
Unicode conversion files
The config directory
The objectid.dat file
Kerberos Security Services
Supported security services
Configuring CyberSafe Kerberos
Open Server applications and CyberSafe Kerberos
Client-Library applications and CyberSafe Kerberos
Configuring MIT Kerberos
Open Server applications and MIT Kerberos
Client-Library applications and MIT Kerberos
Credential delegation for MIT Kerberos
Configuring Solaris Kerberos
Configuring Kerberos environments and mixed Kerberos environments
Secure Sockets Layer in Open Client and Open Server
SSL description
SSL handshake
SSL security levels in Open Client and Open Server
The SSL filter
Validating a server by its certificate
Common name validation in an SDC environment
The trusted roots file
Obtaining a server certificate
Using third-party tools to request certificates
Using Sybase tools to request and authorize certificates
Description of Sybase tools
The certauth utility
The certreq utility
The certpk12 utility
FIPS 140-2 compliance for password encryption
Open Client and Open Server Configuration Guide for Microsoft Windows
About this book
Configuration Overview
About Open Client and Open Server
Overview of configuration
The initialization process
The connection process
Configuration tasks
Basic Configuration for Open Client
Overview of basic configuration
Configuration tasks
Set environment variables
Configure the drivers
Configure sql.ini
Basic Configuration for Open Server
About Open Server applications
Overview of basic configuration
Configuration tasks
Configure sql.ini or Registry
Set environment variables
Configure the drivers
Configuring Open Client for Sybase Failover
Adding a hafailover line to the sql.ini file
Client-Library application changes
Using isql with Sybase Failover
Using a Directory Service
Overview of directory services
LDAP
LDAP directory services versus the Sybase sql.ini file
Server objects and attributes
Directory drivers
How applications use a directory service
How applications use LDAP directory services
Authentication
Enabling LDAP directory services
Multiple directory services with LDAP
Importing Microsoft Active Directory schema
Creating a container for Sybase server entries
Connecting to LDAP using SSL/TLS
Using Security Services
Overview of network-based security
Security mechanisms
Security drivers
Security services
LAN Manager security services
Kerberos security services
How applications use security services
Client-Library and security services
Server-Library and security services
Configuration tasks
Using ocscfg
About ocscfg
Starting ocscfg
Setting environment variables
Setting the SYBASE environment variables
Setting other environment variables
Clearing environment variables
Configuring a directory driver
Adding a directory driver entry
DIT base syntax
Modifying an existing directory driver entry
Deleting a directory driver entry
Activating a directory driver
Configuring a security driver
Adding a security driver entry
Modifying an existing security driver entry
Deleting a security driver entry
Setting the default security driver
Using dsedit
Using dsedit
Opening a session
Opening additional sessions
Activating sessions
Adding a server to the directory services
Making and modifying server entries
Adding a server entry
Modifying a server entry
Renaming a server entry
Deleting entries
Using the ping command
Copying server entries
Copying entries within a session
Copying entries between sessions
Exiting dsedit
Troubleshooting with dsedit
How dsedit works
Troubleshooting connection failures
If dsedit fails
If dsedit succeeds but other applications fail
Information you need for Sybase Technical Support
Commonly asked questions
Environment Variables
Environment variables used for connection
Environment variables used for localization
Environment variables used for configuration
Configuration Files
About configuration files
The libtcl.cfg and libtcl64.cfg files
Layout of libtcl.cfg
Directory drivers
For LDAP entries in the DIRECTORY section
Security drivers
libtcl.cfg example
The sql.ini file
sql.ini entries
sql.ini examples
Multiple connection service entries
Servers listening over multiple networks
Clients connecting over multiple networks
The ocs.cfg file
Localization
Overview of the localization process
Environment variables used during localization
Localization files
The locales directory
The locales.dat file
How locales.dat is used
locales.dat sections and entries
locales.dat example
Editing locales.dat
Localized message files
The charsets directory
Collating sequence files
Unicode conversion files
The ini directory
The objectid.dat file
Location of objectid.dat
objectid.dat sections and entries
objectid.dat example
Secure Sockets Layer in Open Client and Open Server
SSL handshake
SSL security levels and security mechanisms
Validating a server by its certificate
Common name validation in an SDC environment
The trusted roots file
Obtaining a certificate
Using third-party tools to obtain a certificate
Using Sybase tools to request and authorize certificates
certauth
certreq
certpk12
FIPS 140-2 compliance for password encryption
Open Client and Open Server Programmers Supplement for UNIX
About this book
Open Client Client-Library/C
General instructions
Building a Client-Library executable
Native thread support
Kerberos support
Compile-and-link lines
Compile-and-link lines for non-threaded applications
Compile-and-link lines for multithreaded applications
Compile-and-link lines for Kerberos-supported applications
Bulk-copy routines
Performance considerations
Header files
Using Client-Library sample programs
makefile and sample programs
Purpose of the sample programs
The sybopts.sh script and building applications
Location
Header file
Utility routines for the sample programs
Sample program summaries
arraybind.c sample program
batch_lang.c sample program
batch_dynamic.c sample program
blktxt.c sample program
compute.c sample program
csr_disp.c sample program
csr_disp_scrollcurs.c sample program
csr_disp_scrollcurs2.c sample program
csr_disp_implicit.c sample program
ex_alib.c and ex_amain.c sample programs
exconfig.c sample program
firstapp.c sample program
getsend.c sample program
i18n.c sample program
multthrd.c and thrdfunc.c sample programs
rpc.c sample program
secct.c sample program
uni_blktxt.c sample program
uni_compute.c sample program
uni_csr_disp.c sample program
uni_firstapp.c sample program
uni_rpc.c sample program
usedir.c sample program
wide_compute.c sample program
wide_curupd.c sample program
wide_dynamic.c sample program
wide_rpc.c sample program
Open Client DB-Library/C
General instructions
Building a DB-Library executable
Libraries
Compile-and-link lines
Performance considerations
Header files
Using DB-Library sample programs
Purpose of the sample programs
Location
Header file
Sample program summaries
example1.c sample program
example2.c sample program
example3.c sample program
example4.c sample program
example5.c sample program
example6.c sample program
example7.c sample program
example8.c sample program
example9.c sample program
example10.c sample program
example11.c sample program
example12.c sample program
bulkcopy.c sample program
twophase.c sample program
Open Server Server-Library/C
General instructions
Building a Server-Library executable
Libraries
Compile-and-link line commands
Kerberos support
Bulk copy routines
Performance considerations
Header files
Using Server-Library sample programs
Purpose of the sample programs
Location
Sample program summaries
ctos.c sample program
dynlisten.c sample program
exfds.c sample program
fullpass.c sample program
halang.c sample program
intlchar.c sample program
lang.c sample program
multthrd.c sample program
osintro.c sample program
mqueue.c sample program
paramreader.c sample program
redirect.c sample program
regproc.c sample program
secsrv.c sample program
sendrpc.c sample program
sigalarm.c sample program
timedsleep.c sample program
updtext.c sample program
Open Client Embedded SQL/C
General instructions
Building an Embedded SQL/C executable
Precompiling the application
Compiling and linking the application
Additional considerations
Loading stored procedures
Using Embedded SQL/C sample programs
Purpose of the sample programs
Location
Header file
example1.cp sample program
example2.cp sample program
exampleHA.cp sample program
uni_example1.cp sample program
uni_example2.cp sample program
Open Client Embedded SQL/COBOL
General instructions
Building an Embedded SQL/COBOL executable
Libraries
Precompiling the application
Compiling and linking the application
Additional considerations
Data alignment on a 64-bit architecture
Loading stored procedures
Using Embedded SQL/COBOL sample programs
Purpose of the sample programs
Location
example1.pco sample program
example2.pco sample program
Utility Commands Reference
bcp
cpre
cobpre
defncopy
isql
Environment Variables
Utility Messages
bcp messages
Message 1: Memory allocation failure
Message 5: Unable to open input file
Message 6: Unable to open output file
Message 7: Bad arguments
Message 8: Invalid first row
Message 9: Invalid rows
Message 10: Invalid last row
Message 11: Invalid direction
Message 12: Invalid integer
Message 13: Duplicate flags
Message 14: Overriding arguments
Message 15: Invalid prefix length
Message 21: Retry
Message 23: Starting message
Message 24: N rows copied
Message 25: Total time
Message 26: File save
Message 27: Host file
Message 28: Invalid column type
Message 29: Invalid column type
Message 30: Average Time
Message 31: Copy failure
Message 32: Partial copy failure
Message 33: Invalid precision
Message 34: Invalid scale
Message 35: Unexpected result type
Message 36: Unexpected result
Message 37: Write error
Message 39: Invalid rows
Message 40: Row transfer error
Message 41: Invalid datatype
Message 42: Input read file error
Message 43: Error file write error
Message 44: Unable to open error file
Message 45: Unexpected end-of-file
Message 46: Negative-length prefix
Message 48: Cannot read specified number of rows
Message 49: Length prefix or terminator required
Message 50: Text/image data truncated
Message 51: Max errors exceeded
Message 52: Unable to open discard file
Message 53: Discard file write error
Message 54: Unable to close file
Message 55: Batch size adjusted
Message 56: Max rows reached
defncopy messages
Message 1: Memory allocation failure
Message 2: Insufficient read space
Message 3: Unable to open input file
Message 4: Unable to open output file
Message 5: Bad argument
Message 6: File not flushed
Message 7: Unexpected object definition
Message 8: Abend
Message 9: Invalid direction
Message 10: No object name
isql messages
Message 1: Memory allocation failure
Message 8: Database name length
Message 9: CS-Lib message callback routine installation
Message 10: CT-Lib initialization
Message 11: CT-Lib message callback routine installation
Message 12: Unsupported datatype
Message 13: Buffer overflow
Message 15: Invalid memory block size
Message 16: Invalid memory handle
Message 17: Internal memory allocation error
Message 18: Editor command too long
Message 19: Uninitialized application context
Message 20: Connection failure
Message 21: Unavailable command handle
Message 23: File position reset failure
Message 24: Command buffer not cleared
Message 25: Command not initiated
Message 26: Command handle not cleared
Message 28: Command argument too long
Message 29: Filename missing
Message 30: Prompt label too long
Message 31: Prompt input mismatch
Message 32: Missing quote
Message 33: Directory creation failure
Message 34: Unexpected argument type
Message 35: Unable to open history file
Message 36: Temporary file deletion failure
Open Client and Open Server Programmers Supplement for Microsoft Windows
About this book
Building Open Client and Open Server Applications
Open Client and Open Server requirements
C compilers
Environment variables and header files
Header files
Import libraries and dynamic link libraries (DLLs)
Import libraries
Dynamic link libraries (DLLs)
Configuration requirements
Platform-specific default values
Client-Library programming issues
ct_callback
Using the debug DLLs
Multithreaded support
Example compile-and-link operations
DB-Library programming issue
Compile-and-link example
Server-Library programming issues
srv_callback
Scheduling modes
Preemptive mode programming
srv_sleep
srv_wakeup
Example of compile-and-link operations
Client-Library/C Sample Programs
Using Client-Library sample programs
Location of the sample programs
Header files
example.h file
Sample program summaries
Utility routines for the sample programs
firstapp.c sample program
uni_firstapp.c sample program
arraybind.c sample program
Asynchronous sample program
blktxt.c sample program
compute.c sample program
usedir.c sample program
exconfig.c sample program
csr_disp_implicit.c sample program
il8n.c sample program
Multithreaded sample program
batch_lang.c sample program
batch_dynamic.c sample program
csr_disp.c sample program
uni_csr_disp.c sample program
rpc.c command sample program
uni_rpc.c sample program
secct.c sample program
csr_disp_scrollcurs.c sample program
csr_disp_scrollcurs2.c sample program
getsend.c sample program
twophase.c sample program
uni_blktxt.c sample program
uni_compute.c sample program
wide_compute.c sample program
wide_curupd.c sample program
wide_dynamic.c sample program
wide_rpc.c sample program
Open Client DB-Library/C Sample Programs
Using DB-Library sample programs
Location of the sample programs
Header files
sybdbex.h header file
Sample program summaries
example1.c sample program
example2.c sample program
example3.c sample program
example4.c sample program
example5.c sample program
example6.c sample program
example7.c sample program
example8.c sample program
example9.c sample program
exampl10.c sample program
exampl11.c sample program
exampl12.c sample program
bulkcopy.c sample program
twophase.c sample program
Open Server Server-Library/C Sample Programs
Using Server-Library sample programs
Location and content
Tracing
Header files
Sample program summaries
Testing sample programs
osintro.c sample program
ctos.c sample program
dynlisten.c sample program
lang.c sample program
fullpass.c sample program
regproc.c sample program
halang.c sample program
intlchar.c sample program
mqueue.c sample program
multthrd.c sample program
paramreader.c sample program
redirect.c sample program
secsrv.c sample program
sendrpc.c sample program
timedsleep.c sample program
updtext.c sample program
Open Client Embedded SQL/C
Building an Embedded SQL/C executable
Precompiling the application
Compiling and linking the application
Link libraries
Loading stored procedures
Using Embedded SQL/C sample programs
Header file
example1.cp sample program
example2.cp sample program
exampleHA.cp sample program
uni_example1.cp sample program
uni_example2.cp sample program
Open Client Embedded SQL/COBOL
Building an Embedded SQL/COBOL executable
Precompiling the application
Compiling and linking the application
Link libraries
Loading stored procedures
Using Embedded SQL/COBOL sample programs
Environment variables for Micro Focus COBOL
example1.pco sample program
example2.pco sample program
Utility Commands Reference
bcp
cpre
cobpre
defncopy
isql
Utility Messages
bcp messages
Message 1: Memory allocation failure
Message 5: Unable to open input file
Message 6: Unable to open output file
Message 7: Bad arguments
Message 8: Invalid first row
Message 9: Invalid rows
Message 10: Invalid last row
Message 11: Invalid direction
Message 12: Invalid integer
Message 13: Duplicate flags
Message 14: Overriding arguments
Message 15: Invalid prefix length
Message 21: Retry
Message 23: Starting message
Message 24: N rows copied
Message 25: Total time
Message 26: File save
Message 27: Host file
Message 28: Invalid column type
Message 29: Invalid column type
Message 30: Average Time
Message 31: Copy failure
Message 32: Partial copy failure
Message 33: Invalid precision
Message 34: Invalid scale
Message 35: Unexpected result type
Message 36: Unexpected result
Message 37: Write error
Message 39: Invalid rows
Message 40: Row transfer error
Message 41: Invalid datatype
Message 42: Input read file error
Message 43: Error file write error
Message 44: Unable to open error file
Message 45: Unexpected end-of-file
Message 46: Negative-length prefix
Message 48: Cannot read specified number of rows
Message 49: Length prefix or terminator required
Message 50: Text/image data truncated
Message 51: Max errors exceeded
Message 52: Unable to open discard file
Message 53: Discard file write error
Message 54: Unable to close file
Message 55: Batch size adjusted
Message 56: Max rows reached
defncopy messages
Message 1: Memory allocation failure
Message 2: Insufficient read space
Message 3: Unable to open input file
Message 4: Unable to open output file
Message 5: Bad argument
Message 6: File not flushed
Message 7: Unexpected object definition
Message 8: Abend
Message 9: Invalid direction
Message 10: No object name
isql messages
Message 1: Memory allocation failure
Message 8: Database name length
Message 9: CS-Lib message callback routine installation
Message 10: CT-Lib initialization
Message 11: CT-Lib message callback routine installation
Message 12: Unsupported datatype
Message 13: Buffer overflow
Message 15: Invalid memory block size
Message 16: Invalid memory handle
Message 17: Internal memory allocation error
Message 18: Editor command too long
Message 19: Uninitialized application context
Message 20: Connection failure
Message 21: Unavailable command handle
Message 23: File position reset failure
Message 24: Command buffer not cleared
Message 25: Command not initiated
Message 26: Command handle not cleared
Message 28: Command argument too long
Message 29: Filename missing
Message 30: Prompt label too long
Message 31: Prompt input mismatch
Message 32: Missing quote
Message 33: Directory creation failure
Message 34: Unexpected argument type
Message 35: Unable to open history file
Message 36: Temporary file deletion failure
New Features Bulletin Open Server and SDK for Windows, Linux, and UNIX
Product platforms and compatibilities
Solaris SPARC 64-bit patch level
Product components
Open Server
Software Developer’s Kit
SDK DB-Library Kerberos Authentication Option
New features for ESD #7
Open Client 15.7 and Open Server 15.7 features
Client-Library supports connection string properties
Remote password encryption
libsybsspiwrapper64.dll for Windows 64-bit
SDK 15.7 features for Adaptive Server Enterprise Drivers and Providers
New CancelQueryOnFreeStmt connection property for Adaptive Server ODBC Driver
New efficient method to set client connection attributes
Enhanced support for data-at-exec feature in Adaptive Server ODBC Driver
New -n command line option in Ribo utility
Adaptive Server Enterprise extension module for Python
Support for DSN-style connection string properties
New sample programs
blklib support
Adaptive Server Enterprise extension module for PHP
Support for DSN-style connection properties
New features for ESD #6
Open Client 15.7 and Open Server 15.7 features
Bulk-copy-in with LOB datatype
New SYBOCS_IFILE environment variable
LDAP and SSL version support
Parameter format suppression
Open Server support for extended plus encrypted password
BCP --quoted-fname option
Adaptive Server Enterprise extension module for Python
Support for DSN style connection properties
Adaptive Server Enterprise extension module for Perl
Support for DSN style connection properties
Currently supported database handle attributes
Perl supported datatypes
Using multiple statements
Supported character lengths
Configuring locale and charsets
Dynamic SQL support, placeholders, and bind parameters
Stored procedure support for placeholders
Supported private driver methods
Default date conversion and display format
Text and image data handling
Error handling
Configuring security services
Examples
New features for ESD #5
Adaptive Server ADO.NET Data Provider support for Transact-SQL queries with COMPUTE clause
New SSIS Custom Data Flow Destination component for faster data transfers to Adaptive Server
jConnect dynamic logging levels
Package name changed in jConnect for converter classes
Increased PreparedStatement parameter limit in jConnect
New SkipRowCountResults connection property for Adaptive Server ODBC Driver
Support for AF_UNIX sockets in Adaptive Server ODBC Driver
AdjustLargePrecisionAndScale connection property for Adaptive Server ODBC Driver
New features for ESD #4
Open Client 15.7 and Open Server 15.7 features in ESD #4
Stricter permissions for Open Client and Open Server files (UNIX only)
New SYBOCS_TCL_CFG environment variable for setting alternate path to libtcl*.cfg files
New isql command line option --URP to set universal remote password
New linux64 and nthread_linux64 settings for SYBPLATFORM
LAN Manager driver for Microsoft Windows 64-bit
Support for batched parameters
New CS-Library string handling routines
SDK 15.7 features for jConnect and Adaptive Server Drivers and Providers in ESD #4
Granular and predicated permissions
alter table drop column without datacopy
Fast logged bulk insert
Dynamic logging
Dynamic client information setting
Dynamic connection property setting
Exception handling
New jConnect connection properties for performance improvement
New jConnect connection properties
Notes on Hibernate support for JDBC
Support for SQL_ATTR_OUTPUT_NTS=SQL_FALSE
Support for SQLLEN datatype of length 8-byte (Linux 64-bit only)
ODBC deferred array binding
Bulk insert support for ODBC data batching
Dynamic logging support without ODBC driver manager tracing
Dynamic control of TDS protocol capture
Replication Server connection support
Comprehensive ADO.NET provider assembly files
ADO.NET support for larger decimal precision/scale
Visual Studio DDEX Connection dialog enhancement for additional connection properties (Doc CR 705592)
New connection strings for OLE DB applications
Adaptive Server Enterprise extension module for Python in ESD #4
New parameter datatype support for dynamic statements and stored procedures
Adaptive Server Enterprise extension module for PHP in ESD #4
Adaptive Server Enterprise database driver for Perl in ESD #4
New features for ESD #3
Skipping installation of samples, documentation, and debug files
Open Client 15.7 and Open Server 15.7 features in ESD #3
CyberSafe Kerberos driver on 64-bit Microsoft Windows
UNIX named sockets
Logging rows rejected by the client
Increased bcp maximum rows handling capacity
Parameter format suppression
Adaptive Server Enterprise extension module for Python in ESD #3
Accessing stored procedures using Python
Compute rows using Python
Localized error messages
New features for ESD #1
Open Client 15.7 and Open Server 15.7 features in ESD #1
FIPS-certified SSL filter
ASE database driver for Perl and ASE extension module for PHP supported on 64-bit Windows
SDK 15.7 features for jConnect and Adaptive Server Drivers and Providers in ESD #1
Suppressing parameter format metadata to improve prepared statement performance
Suppressing row format metadata to improve query performance
SuppressRowFormat2 and SQLBulkOperations
Adaptive Server Enterprise extension module for Python in ESD #1
Configuring Adaptive Server Enterprise extension module for Python
Open Client 15.7 and Open Server 15.7 features
Large object locator support
Client-Library changes
Open Server support for large object locators
Large object locator support
In-row and off-row LOB support
Bulk-Library select into logging
BLK_CUSTOM_CLAUSE
Bulk-Library and bcp handling of nonmaterialized columns
Support for preserving trailing zeros
New DB-Library overflow errors
New nameless application configuration settings handling
TCP socket buffer size configuration
Properties
isql64 and bcp64 for all 64-bit products
Support for expanded variable-length rows
Row format caching
Support for releasing locks at cursor close
Client-Library usage
Open Server usage
ESQL/C and ESQL/COBOL usage
Large objects as stored procedure parameters
Sending small amounts of LOB data as parameters
Sending large amounts of LOB data as parameters
Retrieving LOB parameters in Open Server
srv_get_data
SDK 15.7 features for jConnect and Adaptive Server Enterprise Drivers and Providers
ODBC driver version information utility
SupressRowFormat2 connection string property
Enhancement to UseCursor Property
Logging without ODBC Driver Manager tracing
Log configuration file
jConnect setMaxRows enhancement
TDS ProtocolCapture
ODBC data batching without binding parameter arrays
Managing data batches
Examples
Considerations
Optimized batching in jConnect
Homogeneous batching with LOB columns
jConnect parameter batching without row accumulation
jConnect batch update enhancement to execute past errors
Support for releasing locks at cursor close
select for update support
Support for expanded variable-length rows
Support for nonmaterialized columns
In-row and off-row LOB storage support
Large objects as stored procedure parameters
Large object locator support
jConnect for JDBC support
Adaptive Server Enterprise ODBC Driver support
Adaptive Server Enterprise extension module for Python
Adaptive Server Enterprise extension module for PHP
Adaptive Server Enterprise database driver for Perl
Deprecated features
DCE service libraries
dsedit_dce utility files
Unsupported platforms
Accessibility features
Open Client DB-Library/C Reference Manual
About this book
Introducing DB-Library
Client/server architecture
Types of clients
Types of servers
The Open Client and Open Server products
Open Client
Open Server
Open Client libraries
What is in DB-Library/C?
Comparing the library approach to Embedded SQL
Data structures for communicating with servers
DB-Library/C programming
DB-Library/C datatypes
DB-Library/C routines
Initialization
Initializing DB-Library/C
Setting up the LOGINREC
Establishing a server connection
Command processing
Building the command batch
Accessing the command batch
Executing the command batch
Setting and clearing command options
Results processing
Setting up the results
Getting result data
Reading result rows
Canceling results
Handling stored procedure results
Setting results timeouts
Message and error handling
Information retrieval
Regular result column information
Compute result column information
Row buffer information
Command state information
Browse mode
Text and image handling
Datatype conversion
Process control flow
Remote procedure call processing
Registered procedure call processing
Gateway passthrough routines
Datetime and money
Cleanup
Secure support
Miscellaneous routines
Two-phase commit service special library
MIT Kerberos on DB-Library
Sample programs
Routines
db12hour
dbadata
dbadlen
dbaltbind
dbaltbind_ps
dbaltcolid
dbaltlen
dbaltop
dbalttype
dbaltutype
dbanullbind
dbbind
dbbind_ps
dbbufsize
dbbylist
dbcancel
dbcanquery
dbchange
dbcharsetconv
dbclose
dbclrbuf
dbclropt
dbcmd
DBCMDROW
dbcolbrowse
dbcollen
dbcolname
dbcolsource
dbcoltype
dbcoltypeinfo
dbcolutype
dbconvert
dbconvert_ps
DBCOUNT
DBCURCMD
DBCURROW
dbcursor
dbcursorbind
dbcursorclose
dbcursorcolinfo
dbcursorfetch
dbcursorinfo
dbcursoropen
dbdata
dbdate4cmp
dbdate4zero
dbdatechar
dbdatecmp
dbdatecrack
dbdatename
dbdateorder
dbdatepart
dbdatezero
dbdatlen
dbdayname
DBDEAD
dberrhandle
dbexit
dbfcmd
DBFIRSTROW
dbfree_xlate
dbfreebuf
dbfreequal
dbfreesort
dbgetchar
dbgetcharset
dbgetloginfo
dbgetlusername
dbgetmaxprocs
dbgetnatlang
dbgetoff
dbgetpacket
dbgetrow
DBGETTIME
dbgetuserdata
dbhasretstat
dbinit
DBIORDESC
DBIOWDESC
DBISAVAIL
dbisopt
DBLASTROW
dbload_xlate
dbloadsort
dblogin
dbloginfree
dbmny4add
dbmny4cmp
dbmny4copy
dbmny4divide
dbmny4minus
dbmny4mul
dbmny4sub
dbmny4zero
dbmnyadd
dbmnycmp
dbmnycopy
dbmnydec
dbmnydivide
dbmnydown
dbmnyinc
dbmnyinit
dbmnymaxneg
dbmnymaxpos
dbmnyminus
dbmnymul
dbmnyndigit
dbmnyscale
dbmnysub
dbmnyzero
dbmonthname
DBMORECMDS
dbmoretext
dbmsghandle
dbname
dbnextrow
dbnpcreate
dbnpdefine
dbnullbind
dbnumalts
dbnumcols
dbnumcompute
DBNUMORDERS
dbnumrets
dbopen
dbordercol
dbpoll
dbprhead
dbprrow
dbprtype
dbqual
DBRBUF
dbreadpage
dbreadtext
dbrecftos
dbrecvpassthru
dbregdrop
dbregexec
dbreghandle
dbreginit
dbreglist
dbregnowatch
dbregparam
dbregwatch
dbregwatchlist
dbresults
dbretdata
dbretlen
dbretname
dbretstatus
dbrettype
DBROWS
DBROWTYPE
dbrpcinit
dbrpcparam
dbrpcsend
dbrpwclr
dbrpwset
dbsafestr
dbsechandle
dbsendpassthru
dbservcharset
dbsetavail
dbsetbusy
dbsetconnect
dbsetdefcharset
dbsetdeflang
dbsetidle
dbsetifile
dbsetinterrupt
DBSETLAPP
DBSETLCHARSET
DBSETLENCRYPT
DBSETLHOST
DBSETLMUTUALAUTH
DBSETLNATLANG
DBSETLNETWORKAUTH
dbsetloginfo
dbsetlogintime
DBSETLPACKET
DBSETLPWD
DBSETLSERVERPRINCIPAL
DBSETLUSER
dbsetmaxprocs
dbsetnull
dbsetopt
dbsetrow
dbsettime
dbsetuserdata
dbsetversion
dbspid
dbspr1row
dbspr1rowlen
dbsprhead
dbsprline
dbsqlexec
dbsqlok
dbsqlsend
dbstrbuild
dbstrcmp
dbstrcpy
dbstrlen
dbstrsort
dbtabbrowse
dbtabcount
dbtabname
dbtabsource
DBTDS
dbtextsize
dbtsnewlen
dbtsnewval
dbtsput
dbtxptr
dbtxtimestamp
dbtxtsnewval
dbtxtsput
dbuse
dbvarylen
dbversion
dbwillconvert
dbwritepage
dbwritetext
dbxlate
Errors
Options
Types
Bulk Copy Routines
Introduction to bulk copy
Transferring data into the database
Transferring data out of the database to a flat file
List of bulk copy routines
bcp_batch
bcp_bind
bcp_colfmt
bcp_colfmt_ps
bcp_collen
bcp_colptr
bcp_columns
bcp_control
bcp_done
bcp_exec
bcp_getl
bcp_init
bcp_moretext
bcp_options
bcp_readfmt
bcp_sendrow
BCP_SETL
bcp_setxlate
bcp_writefmt
Two-Phase Commit Service
Programming distributed transactions
The commit service and the application program
The probe process
Two-phase commit routines
Specifying the commit server
Two-phase commit sample program
Program notes
Program note 1
Program note 2
Program note 3
Program note 4
Program note 5
Program note 6
Program note 7
Program note 8
abort_xact
build_xact_string
close_commit
commit_xact
open_commit
remove_xact
scan_xact
start_xact
stat_xact
Cursors
Cursor overview
DB-Library cursor capability
Differences between DB-Library cursors and browse mode
Differences between DB-Library and Client-Library cursors
Sensitivity to change
Static cursor
Keyset-driven cursor
Dynamic cursor
Concurrency control
DB-Library cursor functions
Holding locks
Stored procedures used by DB-Library cursors
DB-Library Error Messages
20001
20002
20003
20004
20005
20006
20008
20009
20010
20011
20012
20013
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
20140
20141
20142
20143
20144
20145
20146
20147
20148
20149
20150
20151
20152
20153
20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
20186
20187
20188
20189
20190
20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
20253
20254
20255
20256
20257
20258
20259
20260
20261
20262
20263
20264
20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278
20279
20280
20282
20283
20284
20285
20286
20287
20288
20289
20290
20291
20292
20293
20294
20295
20296
20297
20298
20299
20300
20301
20302
Open Client Client-Library/C Programmers Guide
About this book
Getting Started with Client-Library
Client-Library overview
Types of Client-Library applications
Adaptive Server Enterprise client applications
Open Server client or gateway applications
A simple sample program
Building programs
Steps in the example
Source listing
Step 1: Set up the Client-Library programming environment
Header files
Allocating a context structure
Setting CS-Library context properties
Initializing Client-Library
Setting Client-Library context properties
External configuration
Step 2: Define error handling
Step 3: Connect to a server
Allocating a connection structure
Setting connection structure properties
Required connection properties
Logging in to a server
Step 4: Send commands to the server
Allocating a command structure
Setting command structure properties
Executing a command
Step 5: Process the results of the command
Step 6: Finish
Deallocating command structures
Closing and deallocating connections
Exiting Client-Library
Deallocating a context structure
Understanding Structures, Constants, and Conventions
Hidden structures
CS_CONTEXT
CS_CONNECTION
CS_COMMAND
Control structure hierarchy
Connection and command rules
CS_LOGINFO
CS_DS_OBJECT
CS_BLKDESC
CS_LOCALE
Exposed structures
CS_BROWSEDESC
CS_CLIENTMSG
CS_DATAFMT
CS_DATEREC
CS_IODESC
CS_PROP_SSL_LOCALID
CS_SERVERMSG
SQLCA, SQLCODE, and SQLSTATE
SQLDA
Constants
Type constants
Format constants
Other symbolic constants
Conventions
NULL and unused parameters
Pointer parameters
Non-pointer parameters
Input parameter strings
Output parameter strings
Pointers to basic structures
Item numbers
action, buffer, buflen, and outlen
Using Open Client and Server Datatypes
Types and type constants
Where are datatypes declared?
Why use Open Client and Open Server datatypes?
unichar datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
unitext datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
xml datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
What are type constants?
Datatype summary
Binary types
Bit types
Character types
Datetime types
Numeric types
Large object locator types
Money types
Text and image types
Null substitution values
Open Client user-defined datatypes
Handling Errors and Messages
About messages
How to identify messages
Client-Library messages and Client-Library return codes
Server messages and message results
Two methods for handling messages
Combining the methods
Handling messages with callback routines
Defining a client-message callback
Defining a server-message callback
Installing callbacks
Handling messages inline
The CS_EXTRA_INF property
The CS_DIAG_TIMEOUT_FAIL property
Sequencing long messages
Extended error data
Uses of extended error data
Server transaction states
Choosing Command Types
Command overview
Types of commands
Executing commands
Initiating a command
Defining parameters for a command
Processing results
Resending a command
Language commands
Building language commands
Results-handling for language commands
When to use language commands
When not to use language commands
RPC commands
Building RPC commands
RPC command results handling
Return parameter values
Return status values
When to use RPC commands
RPCs versus execute language commands
Client-Library cursor commands
Building Client-Library cursor commands
When to use Client-Library cursors
When not to use Client-Library cursors
Dynamic SQL commands
Building Dynamic SQL commands
When to use dynamic SQL commands
When not to use dynamic SQL
Message commands
When to use message commands
When not to use message commands
Package commands
Send-data commands
When to use send-data commands
When not to use send-data commands
Writing Results-Handling Code
Types of results
Structure of the basic loop
Processing regular row results
Processing cursor results
Processing scrollable cursor results
Processing parameter results
Processing return status results
Processing compute results
Processing message results
Processing describe results
Processing format results
Row format caching
Values of result_type that indicate command status
Logical commands
ct_results final return code
Using Client-Library Cursors
Cursor overview
Language cursors versus Client-Library cursors
Language cursors
Client-Library cursors
When to use Client-Library cursors
Benefits of Client-Library cursors
Nested cursor commands
Commands executed using a different command structure
Performance issues when using Client-Library cursors
Using Client-Library cursors
Step 1: Declare the cursor
Declaring a cursor to directly execute a select statement
Declaring a cursor to execute a stored procedure
Declaring a cursor to execute a prepared dynamic SQL statement
Step 2: Set cursor rows
Step 3: Open the cursor
Cursor command batching
Reopening a cursor
Step 4: Process cursor rows
Nested cursor-update or cursor-delete commands
Nested cursor-close commands
Sending commands on a different command structure
Step 5: Close the cursor
Step 6: Deallocate the cursor
Client-Library cursor properties
Using Dynamic SQL Commands
Dynamic SQL overview
Benefits of dynamic SQL
Limitations of dynamic SQL
Performance of dynamic SQL commands
Adaptive Server Enterprise restrictions and database requirements
Alternatives to dynamic SQL
Using the execute-immediate method
When to use the execute-immediate method
Coding an execute-immediate command
Using the prepare-and-execute method
When to use prepare-and-execute method
Program structure for the prepare-and-execute method
Step 1: Prepare the statement
Step 2: Get a description of command inputs
Initiating a describe-input command
Processing parameter descriptions
Step 3: Get a description of command outputs
Initiating a describe-output command
Processing column descriptions
Step 4: Execute the prepared statement
Step 5: Deallocate the prepared statement
Dynamic SQL versus stored procedures
Using Directory Services
Directory service overview
How do applications use a directory service?
Searching the directory
Example code
Program structure
Step 1: Starting the search
Initialize data structures
Setting directory service properties
Installing the directory callback
Calling ct_ds_lookup
Example code to start a directory search
Step 2: Collecting search results in the directory callback
Defining the directory callback
Directory callback example
Step 3: Inspecting directory objects
Attribute data structures
Example code to inspect a directory object
Retrieving an attributes value
Processing attribute values
Step 4: Cleaning up
Logical Sequence of Calls
Client-Library state machines
Command-level sequence of calls
Commands state table
Initiated-commands state table
Result-types state table
Summary
Command states
Command-level routines
Callable routines in each command state
Initiated commands
Initiated command routines
Callable routines for initiated commands
Result types
Result type processing routines
Callable routines for each result type
Pending results
Open Client Client-Library/C Reference Manual
About this book
Introducing Client-Library
Sybase client/server architecture
Types of clients
Types of servers
Open Client and Open Server products
Open Client
Open Server
Shared common libraries
CS-Library
Bulk-Library
Client-Library is a generic interface
Comparing the library approach to Embedded SQL
What an application developer needs to know
Programming interfaces
Getting started
Client-Library Topics
Asynchronous programming
Asynchronous applications
Asynchronous routines
The CS_BUSY return code
Completions
Deferred asynchronous completions
Fully asynchronous completions
Client-Library’s interrupt-level memory requirements
Layered applications
Using ct_wakeup and CS_DISABLE_POLL
An example
Browse mode
Using Browse mode
The Browse mode where clause
Browse mode conditions
Callbacks
Callback types
Callbacks are not always supported
Installing a callback routine
When a callback event occurs
Retrieving and replacing callback routines
Restrictions on Client-Library calls in callbacks
Declaring callbacks with CS_PUBLIC
Client message callbacks
Defining a client message callback
Client message callback example
Completion callbacks
Defining a completion callback
Directory callbacks
Defining a directory callback
Directory search results processing
Callback invocation sequence
Directory callback example
Encryption callbacks
Defining an encryption callback
Negotiation callbacks
Challenge/response security handshakes
Defining a negotiation callback
Notification callbacks
Defining a notification callback
Retrieving notification parameters
Security session callbacks
Establishing a direct security session
Defining a security session callback
Server message callbacks
Defining a server message callback
Server message callback example
Handling specific messages
Signal callbacks
Defining a signal callback
Installing a signal callback
SSL validation callbacks
Defining an SSL validation callback
SSL validation callback example
Capabilities
Wide tables and larger page size
Page size
Wide tables
unichar datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
unitext datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
xml datatype
Datatypes and capabilities
isql and bcp utilities
Limitations
Capabilities and the connection’s TDS level
Setting and retrieving capabilities
Setting and retrieving multiple capabilities
Client-Library and SQL Structures
Exposed and hidden structures
Exposed structures
Hidden structures
CS_BROWSEDESC structure
CS_CLIENTMSG structure
Client-Library message numbers
CS_DATAFMT structure
CS_IODESC structure
CS_OID structure
Encoding of object identifiers
Definition of the CS_OID structure
Using predefined OID strings
CS_SERVERMSG structure
SQLCA structure
SQLCODE structure
Mapping server messages to SQLCODE
Mapping Client-Library messages to SQLCODE
SQLSTATE structure
Commands
Sending commands
Initiating a command
Defining parameters for a command
Sending a command
Resending a command
Deciding which type of command to use
Connection migration
Debugging
Enabling debugging
Directory services
Directory service providers and drivers
Network-based directory services
LDAP
OpenLDAP
SSL/TLS
LDAP Directory Server lookup time limit
LDAP for Microsoft Active Directory
Use of the directory by applications
Directory organization
Directory entry name formats
Name syntax for DCE CDS
Name syntax for Windows Registry
Name syntax for LDAP directory services
Name syntax for the Interfaces file
Locating entries with a DIT base
Viewing directory entries
Directory objects
Properties for directory services
Error handling
Error reporting during initialization
cs_ctx_alloc and cs_ctx_global
ct_init
Error and message handling
Two methods of handling messages
Using callbacks to handle messages
Inline message handling
Client-Library message structures
The CS_EXTRA_INF property
Sequencing long messages
Message structure fields for sequenced messages
Sequenced messages and extended error data
Sequenced messages and ct_diag
Extended error data
Uses for extended error data
Retrieving extended error data
Server message callbacks and extended error data
Inline error handling and extended error data
Server transaction states
Retrieving transaction states in mainline code
Retrieving transaction states in a server message callback
Sample programs
Client-Library routines in sample programs
Header files
High-availability failover
Add hafailover line to interfaces file
Client-Library application changes
Using isql with Sybase Failover
Interfaces file
Overview of Interfaces file entries
Server objects from the Interfaces file
International Support
When an application needs to use a CS_LOCALE structure
Using a CS_LOCALE structure
Context-level localization
Connection-level localization
Data-element level localization
Locating localization information
The locales file
Locales file entries
cs_locale and the locales file
Large objects as stored procedure parameters
Sending small amounts of LOB data as parameters
Sending large amounts of LOB data as parameters
Macros
Decoding a message number
Manipulating bits in a CS_CAP_TYPE structure
Using the sizeof operator
Prototyping functions
Multithreaded applications: signal handling
Basic concepts
Signal handling in nonthreaded environments
Types of signals
Signal handlers
Signal masking
Signal delivery
Using sigwait to handle asynchronous signals
Special Sybase signal handlers
SIGTRAP signal
Using Sun’s ALARM and SETITIMER routines
Multithreaded programming
What is a thread
Benefits of multiple threads
Types of threads
Write thread-safe code
Serializing access to shared data and shared resources
Synchronizing dependent actions
Calling thread-unsafe system routines
Avoiding deadlock
Client-Library restrictions for multithreaded programs
Calling context-level routines
Context initialization and cleanup
CS-Library error handling
Calling connection-level routines
Using CS_LOCALE structures
Coding thread-safe callback routines
Threads and fully asynchronous mode
Multithreaded programming models for Client-Library
One-thread, one-connection model
Worker-thread model
Other thread models
Options
Setting options externally
Parameters
Batched parameters
Rebinding using ct_setparam
Properties
Comparing properties, options, and capabilities
Login properties
Setting and retrieving properties
Three kinds of context properties
Checking whether a property is supported
Copying login properties
Setting properties externally
Properties quick reference table
About the properties
ANSI-style binds
Application name
Asynchronous notifications
Bulk copy operations
Character set conversion
Communications session block
Connection status
Configure by server name
Configuration file name
Connection migration
Cursor ID
Cursor name
Cursor rowcount
Cursor status
Diagnostic timeout fail
Disable poll
Directory service properties
Extended error data command structure
Extended failover
Endpoint polling
Expose formats
External configuration
Extra information
Have bindings
Have resendable command
Have restorable cursor-open command
Hidden keys
Host name
Location of the interfaces file
Locale information
Login status
Login timeout
Loop delay
Login redirection
Maximum number of connections
Memory pool
Network I/O
No truncate
No API checking
No character conversion required
No interrupt
Packet size
Parent structure
Partial updates to text and image data
Password
Persistent result bindings
Retry count
Security properties
Server name
TCP socket buffer size configuration
TDS version
Text and image limit
Timeout
Transaction name
User allocation function
User free function
User data
User name
Version string for Client-Library
Version of Client-Library
Registered procedures
When Client-Library receives a notification
Receiving notifications asynchronously
Finding out about notifications
Results
Regular row results
Cursor row results
Parameter results
Stored procedure return status results
Compute row results
Message results
Describe results
Format results
Program structure for processing results
Retrieving an item’s value
Keeping result bindings for batch processing
Selecting multiple rows of variable length data into an array
Security features
Network-based security
Security mechanisms and security drivers
Choosing a network security mechanism
Requesting network security services
Secure Sockets Layer in Open Client and Open Server
Internet communications overview
Public-key cryptography
SSL overview
SSL handshake
SSL in Open Client and Open Server
SSL filter
Validating the server by its certificate
The trusted roots file
Obtaining a certificate
Adaptive Server Enterprise security features
Security handshaking: Challenge/Response
Security handshaking: encrypted password
Server directory object
Use of the server directory object
Contents of the server directory object
Format of object attributes
List of attributes
Server entry version
Server name attribute
Service description
Server status
Transport address
Security mechanisms
Server objects from the interfaces file
Server restrictions
Open Server restrictions
Adaptive Server Enterprise restrictions
Supported client/server features
text and image data handling
Retrieving a text or image column
Using ct_get_data to fetch text and image values
Updating a text or image column
Retrieving the I/O descriptor settings
Sending the new column value
Partial updates to text and image data
Populating a table containing text or image columns
Smaller text and image values
Larger text and image values
Server global variables for text and image updates
Using global variables to update a text or image column
Datatypes support
Datatype summary
Routines that manipulate datatypes
Open Client datatypes
Binary types
Bit types
Character types
XML type
Datetime types
Integer types
Real, float, numeric, and decimal types
Money types
Text and image types
LOB locator datatypes
Open Client user-defined datatypes
Using the runtime configuration file
Enabling external configuration
Open Client and Open Server runtime configuration file syntax
Runtime configuration file keywords
Keywords for localization
Keywords for context or connection properties
Keywords for server options
Keywords for server capabilities
Keywords that set properties exclusively
Keywords for ct_debug options
Routines
ct_bind
ct_br_column
ct_br_table
ct_callback
ct_cancel
ct_capability
ct_close
ct_cmd_alloc
ct_cmd_drop
ct_cmd_props
ct_command
ct_compute_info
ct_con_alloc
ct_con_drop
ct_con_props
ct_config
ct_connect
ct_cursor
ct_data_info
ct_debug
ct_describe
ct_diag
ct_ds_dropobj
ct_ds_lookup
ct_ds_objinfo
ct_dynamic
ct_dyndesc
ct_dynsqlda
ct_exit
ct_fetch
ct_get_data
ct_getformat
ct_getloginfo
ct_init
ct_keydata
ct_labels
ct_options
ct_param
ct_poll
ct_recvpassthru
ct_remote_pwd
ct_res_info
ct_results
ct_scroll_fetch
ct_send
ct_send_data
ct_send_params
ct_sendpassthru
ct_setloginfo
ct_setparam
ct_wakeup
Internationalization Library Messages
INTE_NOVAL
INTE_NOENTRY
INTE_OFLOW
INTE_ENTRYOF
INTE_ODDHEX
INTE_BADFILE
INTE_BADLOC
INTE_NOCOM
INTE_BADFFMT
INTE_BADVER
INTE_BADPH
INTE_BADTYPE
INTE_SPECOF
INTE_NOCUST
INTE_BADFMTSTR
INTE_INVALBUF
INTE_NEGBUFLEN
INTE_INVALCS
INTE_BADLFNM
INTE_INVALTEXT
INTE_INVALSRC
INTE_INVALPTR
INTE_BADNSTARS
INTE_MONTHS
INTE_SMONTHS
INTE_DAYS
INTE_PATHOF
INTE_LTLONG
INTE_DUPDF
INTE_BADSECT
INTE_FOPEN
INTE_FCLOSE
INTE_FREAD
INTE_NOSYB
INTE_FINFO
INTE_NOMEM
SSL Error Messages
1: Vendor Call Fail
3: Memory Allocation Fail
6: Bad Pointer
60: SSL Master Context Initialization fail
61: Setting Partial I/O fails
62: Setting SSL protocol version fails
63: Create random number generator fails
64: Initialize random number generator fails
65: Generate entropy for the random number generator fails
69: Could not duplicate context
70: Could not create child SSL/TLS context
71: Could not get protocol version
72: Unknown protocol version
73: Unknown cipher
74: Setting cipher suites fails
75: Load local identity property fail
76: Load or read certification authority file fail
77: Cannot get peer’s certificate information
78: Cannot get peer’s certificate
81: Cannot set certificate reference
84: SSL handshake failed
85: Cannot set SSL to server side
86: Cannot set SSL to client side
87: Cannot get the SSL endpoint information
88: Cannot get SSL context information
89: Read error
90: Write error
91: Cannot get the count of remote certificate’s DN fields
92: Cannot extract Distinguished Name information
93: Cannot get the count of remote certificate’s extensions
94: Cannot extract extension information
95: Cannot get client certificate
Glossary
Open Client Client-Library Migration Guide
About this book
Understanding Client-Library
What is Client-Library?
Comparing the client interfaces
What is unique about Client-Library?
Tight integration with Open Server
Client interface to server-side cursors
Client interface to dynamic SQL
Asynchronous mode
Non-polling (interrupt-driven)
Polling
Multithreaded application support
Support for network-based security and directory services
Security services
Directory services
Where to go for more information
User-defined datatypes and conversion routines
Localization mechanisms
Streamlined interface
Evaluating an Application for Migration
Questions to consider
Will the application benefit from migration?
How much effort will the migration require?
Summary
Planning for Migration
Get software
Learn about Client-Library
Familiarize yourself with sample programs
Isolate DB-Library code
Consider application redesign
Unified results handling
Cursors
Array binding
Asynchronous mode
Multithreading
Review your estimate of the migration effort
Plan for testing
Develop a schedule
Check your environment
Comparing DB-Library and Client-Library Infrastructures
Utility routines
Header files
Control structures
Control structure properties
Inherited property values
Setting property values
The CS_CONTEXT structure
The CS_CONNECTION structure
The CS_COMMAND structure
Connection and command rules
Other structures
CS_DATAFMT
CS_IODESC
CS_LOCALE
CS_BLKDESC
Converting DB-Library Application Code
Conversion steps
Initialization and cleanup code
Comparing call sequences
Example: Client-Library initialization and cleanup
Code that opens a connection
Comparing call sequences
Client-Library enhancements
Migrating LOGINREC code
Example: Opening a Client-Library connection
Error and message handlers
Sequenced messages
Replacing server message handlers
Replacing DB-Library error handlers
Error handler return values
Code that sends commands
Sending language commands
Client-Library enhancements
Example: Sending a Client-Library language command
Sending RPC commands
Client-Library enhancements
Example: sending an RPC command
TDS passthrough
Code that processes results
Program structure for results processing
Comparing dbresults and ct_results return codes
Handling command-processing errors
Comparing ct_results’ result_type to DB-Library program logic
Retrieving data values
ct_bind versus dbbind
ct_get_data versus dbdata
Getting descriptions of result data
Obtaining Results Statistics
Obtaining the Command Number (DBCURCMD)
Obtaining the Number of Rows Affected
Obtaining the number of the current row
Canceling results
CS_CANCEL_ATTN
CS_CANCEL_ALL
CS_CANCEL_CURRENT
Advanced Topics
Client-Library’s array binding
Using Array Binding
Array Binding Example
Client-Library cursors
Comparing DB-Library and Client-Library cursors
Rules for Processing Cursor Results
Comparing Cursor Routines
DB-Library fetch types and Client-Library cursors
Using ct_keydata
Comparing Client-Library cursors to Browse Mode Updates
Using Array Binding with Cursors
Client-Library cursor example
Asynchronous programming
DB-Library’s Limited Asynchronous Support
Client-Library asynchronous support
Using ct_poll
Using ct_wakeup
Bulk copy interface
Bulk-Library initialization and cleanup
Transfer routines
Other differences from DB-Library bulk copy
Text/Image interface
Retrieving text or image data
DB-Library’s text timestamp
Client-Library’s CS_IODESC structure
Sending text or image data
Text and image examples
Localization
CS_LOCALE Structure
Localization precedence
Mapping DB-Library Routines to Client-Library Routines
Mapping DB-Library routines to Client-Library routines
Open Client Embedded SQL/C Programmers Guide
About this book
Introduction
Embedded SQL overview
Embedded SQL features
Transact-SQL support in Embedded SQL
Getting started
Using the examples
Backward compatibility
Creating and running an Embedded SQL program
How the precompiler processes your applications
Multiple Embedded SQL source files
Precompiler compatibility
Precompiler-generated files
General Information
Five tasks of an Embedded SQL program
Simplified Embedded SQL program
General rules for Embedded SQL
Statement placement
Comments
Identifiers
Quotation marks
Reserved words
Variable naming conventions
Scoping rules
Statement batches
Embedded SQL constructs
Communicating with Adaptive Server Enterprise
Scoping rules: SQLCA, SQLCODE, and SQLSTATE
Declaring SQLCA
Multiple SQLCAs
SQLCA variables
Accessing SQLCA variables
SQLCODE within SQLCA
Declaring SQLCODE as a standalone area
Using SQLSTATE
Obtaining SQLSTATE codes and error messages
Summary
Using Variables
Declaring variables
Using datatypes
Using type definitions
Type Definitions and Limits
Using #define
Declaring an array
Declaring character arrays
Declaring unions and structures
Using host variables
Host input variables
Host result variables
Host status variables
Host output variables
Using indicator variables
Indicator variables and server restrictions
Using host variables with indicator variables
Using indicator variables with host output and result variables
Using indicator variables with host input variables
Host variable conventions
Using arrays
Multiple arrays
Scoping rules
Datatypes and Adaptive Server Enterprise
Converting datatypes
Converting datatypes for result variables
Converting datatypes for input variables
Connecting to Adaptive Server Enterprise
Connecting to a server
user
password
connection_name
server
connect example
Changing the current connection
Establishing multiple connections
Naming a connection
Invalid statements with the at clause
Using Adaptive Server Enterprise connections
Disconnecting from a server
Using Transact-SQL Statements
Transact-SQL statements in Embedded SQL
exec sql syntax
Invalid statements
Transact-SQL statements that differ in Embedded SQL
Selecting rows
Selecting one row
Selecting multiple rows using arrays
select into arrays
Indicators with array fetches
Arrays and structures as indicator variables
fetch into batch arrays
Selecting multiple rows using cursors
Cursor scoping rules
Declaring cursors
Declaring scrollable cursors
Declaring cursors that release locks at cursor close
Opening cursors
Fetching data using cursors
Fetching data using scrollable cursors
Using cursors to update and delete rows
Closing cursors
Cursor example
Using stored procedures
User-defined stored procedures
Precompiler-generated stored procedures
Grouping statements
Grouping statements by batches
Grouping statements by transactions
Transact-SQL transaction mode
Default ANSI/ISO transaction mode
Extended transactions
Using Dynamic SQL
Dynamic SQL overview
Dynamic SQL protocol
Method 1: Using execute immediate
Method 1 examples
Method 2: Using prepare and execute
prepare
execute
Method 2 example
Method 3: Using prepare and fetch with a cursor
prepare
declare
open
fetch and close
Method 3 example
Method 4: Using prepare and fetch with dynamic descriptors
Method 4 dynamic descriptors
Dynamic descriptor statements
About SQL descriptors
Method 4 example using SQL descriptors
About SQLDAs
Method 4 example using SQLDAs
Summary
Handling Errors
Testing for errors
Using SQLCODE
Testing for warning conditions
Trapping errors with whenever
whenever testing conditions
whenever actions
Using get diagnostics
Writing routines to handle warnings and errors
Precompiler-detected errors
Improving Performance with Persistent Binding
About persistent binding
When binding occurs
Programs that can benefit from persistent binding
Scope of persistent bindings
Precompiler options for persistent binding
The -p option
The -b option
Which option to use: -p, -b, or both
Scope of the -p and -b precompiler options
Overview of rules for persistent binding
Statements that can use persistent binding
Persistent binding in statements without a cursor
Persistent binding in statements with a cursor
Preventing persistent binding for all cursor host variables
Requesting persistent binding for all cursor host variables
Requesting persistent binding for cursor output variables only
Requesting persistent binding for cursor input variables only
Persistent binding, cursors, and multiple source files
Persistent binding and cursor fetch statements
Guidelines for using persistent binding
Notes on the binding of host variables
Subscripted arrays
Scope of host variables
Embedded SQL Statements: Reference Pages
allocate descriptor
begin declare section
begin transaction
close
commit
connect
deallocate cursor
deallocate descriptor
deallocate prepare
declare cursor (dynamic)
declare cursor (static)
declare cursor (stored procedure)
declare scrollable cursor
delete (positioned cursor)
delete (searched)
describe input (SQL descriptor)
describe input (SQLDA)
describe output (SQL descriptor)
describe output (SQLDA)
disconnect
exec
exec sql
execute
execute immediate
exit
fetch
fetch scrollable cursor
get descriptor
get diagnostics
include "filename"
include sqlca
include sqlda
initialize_application
open (dynamic cursor)
open (static cursor)
prepare
rollback
select
set connection
set descriptor
thread exit
update
whenever
Open Client and Open Server Configuration File
Purpose of the Open Client and Open Server configuration file
Accessing the configuration functionality
Default settings
Syntax for the Open Client and Open Server configuration file
Sample programs
Embedded SQL/C sample makefile on Windows
Embedded SQL/C sample programs
Embedded SQL program version for use with the -x option
Same Embedded SQL program with the -e option
Summary
Precompiler Warning and Error Messages
Sample Code for Handling Large Text and Image Data
Where to find other samples
text_image.sql
text_image.cp
Glossary
Open Client Embedded SQL/COBOL Programmers Guide
About this book
Introduction
Embedded SQL overview
Embedded SQL features
Transact-SQL support in Embedded SQL
Getting started
Using the examples
Backward compatibility
Creating and running an Embedded SQL program
How the precompiler processes your applications
Multiple Embedded SQL source files
Precompiler-generated files
Group element referencing
General Information
Five tasks of an Embedded SQL program
Simplified Embedded SQL program
General rules for Embedded SQL
Statement placement
Comments
Identifiers
Quotation marks
Reserved words
Variable naming conventions
Scoping rules
Statement batches
Embedded SQL constructs
Communicating with Adaptive Server Enterprise
Scoping rules: SQLCA, SQLCODE, and SQLSTATE
Declaring SQLCA
Multiple SQLCAs
SQLCA variables
Accessing SQLCA variables
SQLCODE within SQLCA
Declaring SQLCODE as a standalone area
Using SQLSTATE
Obtaining SQLSTATE codes and error messages
Using Variables
Declaring variables
Declaring a character array
Using host variables
Host input variables
Host result variables
Host status variables
Host output variables
Using indicator variables
Indicator variables and server restrictions
Using host variables with indicator variables
Using indicator variables with host output and result variables
Using indicator variables with host input variables
Host variable conventions
Using arrays
Multiple arrays
Scoping rules
Datatypes
Elementary data items
Group data items
Special data items
Comparing COBOL and Adaptive Server Enterprise datatypes
Converting datatypes
Converting datatypes for result variables
Converting datatypes for input variables
Connecting to Adaptive Server Enterprise
Connecting to a server
user
password
connection_name
server
connect example
Changing the current connection
Establishing multiple connections
Naming a connection
Invalid statements with the at clause
Using Adaptive Server Enterprise connections
Disconnecting from a server
Using Transact-SQL Statements
Transact-SQL statements in Embedded SQL
exec sql syntax
Invalid statements
Transact-SQL statements that differ in Embedded SQL
Selecting rows
Selecting one row
Selecting multiple rows through arrays
select into arrays
Indicator arrays
Arrays and structures as indicator variables
fetch into: batch arrays
Cursors and arrays
Using cursors
Cursor scoping rules
Declaring cursors
Example: Declaring a cursor
Declaring scrollable cursors
Declaring cursors that release locks at cursor close
Opening cursors
Fetching data using cursors
Fetching data using scrollable cursors
Using cursors to update and delete rows
Closing cursors
Cursor example
Using stored procedures
User-defined stored procedures
Precompiler-generated stored procedures
Grouping statements
Grouping statements by batches
Grouping statements by transactions
Transact-SQL transaction mode
Default ANSI/ISO transaction mode
Extended transactions
Including files and directories
Using Dynamic SQL
When to use dynamic SQL
Dynamic SQL protocol
Method 1: Using execute immediate
Method 1 examples
Method 2: Using prepare and execute
prepare
execute
Method 2 example
Method 3: Using prepare and fetch with a cursor
prepare
declare
open
fetch and close
Method 3 example
Method 4: Using prepare and fetch with system descriptors
Method 4 dynamic descriptors
Dynamic descriptor statements
About SQL descriptors
Method 4 example
About SQLDAs
Using SYBSETSQLDA
Syntax
Returns
Method 4 example using SQLDAs
Handling Errors
Testing for errors
Using SQLCODE
Testing for warning conditions
Trapping errors with the whenever statement
whenever testing conditions
whenever actions
Using get diagnostics
Writing routines to handle warnings and errors
Precompiler-detected errors
Embedded SQL Statements: Reference Pages
allocate descriptor
begin declare section
begin transaction
close
commit
connect
deallocate cursor
deallocate descriptor
deallocate prepare
declare cursor (dynamic)
declare cursor (static)
declare cursor (stored procedure)
declare scrollable cursor
delete (positioned cursor)
delete (searched)
describe input (SQL descriptor)
describe input (SQLDA)
describe output (SQL descriptor)
describe output (SQLDA)
disconnect
exec
exec sql
execute
execute immediate
exit
fetch
scroll fetch
get descriptor
get diagnostics
include “filename”
include sqlca
include sqlda
initialize_application
open (dynamic cursor)
open (static cursor)
open scrollable cursor
prepare
rollback
select
set connection
set descriptor
update
whenever
Open Client/Server Configuration File
Purpose of the Open Client/Server configuration file
Accessing the configuration functionality
Default settings
Syntax for the Open Client/Server configuration file
Syntax
Sample programs
Embedded SQL/COBOL sample programs
Embedded SQL program version for use with the -x option
Same Embedded SQL program with the -e option
Precompiler Warning and Error Messages
Understanding the codes in the tables
Glossary
Open Client and Open Server Common Libraries Reference Manual
About this book
Introducing CS-Library
CS-Library overview
Using CS-Library
Open Client and Open Server applications
A standalone CS-Library application
Structures
CS_CONTEXT structure
Datatypes, constants, and conventions
Error handling
Two methods of handling messages
Using a callback to handle messages
Defining a CS-Library message callback
CS-Library message callback example
Inline message handling
CS-Library Routines
cs_calc
cs_cmp
cs_config
cs_conv_mult
cs_convert
cs_ctx_alloc
cs_ctx_drop
cs_ctx_global
cs_diag
cs_dt_crack
cs_dt_info
cs_loc_alloc
cs_loc_drop
cs_locale
cs_locator
cs_locator_alloc
cs_locator_drop
cs_manage_convert
cs_objects
cs_prop_ssl_localid
cs_set_convert
cs_setnull
cs_snprintf
cs_strbuild
cs_strcmp
cs_strlcat
cs_strlcpy
cs_time
cs_validate_cb
cs_will_convert
Bulk-Library
Overview of Bulk-Library
Client-side and server-side routines
Client-side Bulk-Library routines
Server-side Bulk-Library routines
Header files
Linking with Bulk-Library
The CS_BLKDESC structure
Bulk-Library client programming
Bulk-copy-in operations
The bulk-copy-in process
Program structure for bulk-copy-in operations
Bulk-copy-out operations
The bulk-copy-out process
Program structure for bulk-copy-out operations
Copying to and from Secure Adaptive Server Enterprise
Bulk-Library gateway programming
Inside the SRV_LANGUAGE event handler
“Insert Bulk” requests
“Writetext Bulk” requests
Inside the SRV_BULK event handler
Example
Topics
Expanded variable-length rows
In-row and off-row LOB support
Nonmaterialized columns
Bulk-Library Routines
blk_alloc
blk_bind
blk_colval
blk_default
blk_describe
blk_done
blk_drop
blk_getrow
blk_gettext
blk_init
blk_props
blk_rowalloc
blk_rowdrop
blk_rowxfer
blk_rowxfer_mult
blk_sendrow
blk_sendtext
blk_srvinit
blk_textxfer
Error Messages
Memory allocation failed
Unable to open configuration file
Configuration has been dropped
Configuration file name too long
File format error
Configuration section not found
Configuration file syntax error
Configuration was dropped while still in use
Open Client and Open Server International Developers Guide
About this book
Understanding Internationalization and Localization
Internationalization and localization
Advantages of internationalized applications
International systems
Open Client and Open Server support for international systems
How Localization Works
Deciding what localization values to use
Using initial localization values
Setting up an application to use initial localization values
Using custom localization values
Localization mechanism details
The locales file
Environment variables
Platforms not using environment variables
The CS_LOCALE structure
The cs_locale routine
Example: Calling cs_locale to Load a CS_LOCALE structure
Writing Internationalized Open Client and Open Server Applications
Writing internationalized Client-Library applications
Client-Library applications using initial values
Client-Library applications using custom values
Customizing at the context level
Example
Defining custom localization values for a context
Customizing at the connection level
Example
Defining custom localization values for a connection
Customizing at the data element level
Example
Defining custom localization values at the data element level
Client-Library localization value precedence
Client-Library localization properties
Writing internationalized Open Server applications
Localizing the application
Open Server applications using initial values
Open Server applications using custom values
Supporting localized clients
Automatic support for localized clients
Additional support for localized clients
Responding to requests to change language and character set
Server-Library localization properties
Writing internationalized DB-Library applications
Internationalizing with Embedded SQL
Localizing the precompiler
How default values are determined
Specifying custom localization values
Localizing an Embedded SQL application
Localizing standalone utilities
Tips
Make sure required files are installed
Using CS_NULLTERM with Open Client and Open Server routines
Coded Character Set Conversion Support
Definitions
Supported character sets
Understanding coded character set conversion
Establishing the language and character set for a connection
Disabling character set conversion
Using Open Server as a conversion gateway
Files used during character set conversion
Unilib library
Using custom coded character set conversion
Why install custom conversion routines?
Writing a custom conversion routine
Installing a custom conversion routine
Character set conversion in Adaptive Server Enterprise releases prior to 4.9
Mainframe support
Editing the Locales File
Quick start
When to edit the locales file
Locales file sections and entries
Locale definition entries
Locales file example
Editing the locales file
Adding or changing entries
Deleting entries
Creating or Changing Collating Sequences
Quick start
About collating sequences
Definitions
Types of sorts
Determining case sensitivity
When to create a custom collating sequence file
About collating sequence files
Collating sequence file sections and entries
Writing characters in a collating sequence file
The preference keyword and the order by clause
Creating a custom collating sequence file
Collating sequence file example
Directories and Files Related to Internationalization
Overview
The locales directory
The locales file
Localized message files
language_name subdirectories
Unicode directory
The charsets directory
Collating sequence files
Unicode conversion files
The config and ini directories
The global object identifiers file
Object identifiers file sections and entries
Object identifiers file example
Editing object identifiers file
External Localization File Syntax
Localization file syntax rules
Localization file sections
Example localization file
Glossary
Adaptive Server Enterprise ADO.NET Data Provider Users Guide for Microsoft Windows
About this book
Understanding and Deploying Adaptive Server Enterprise ADO.NET Data Provider
What is Adaptive Server ADO.NET Data Provider?
Deploying Adaptive Server ADO.NET Data Provider
System requirements
Required files
Deploying Adaptive Server ADO.NET Data Provider assembly into the global assembly cache
Removing the assembly from GAC
Deploying applications that use Adaptive Server ADO.NET Data Provider
Updating to a newer version of ADO.NET Data Provider
Redirecting the Common Language Runtime
Using application configuration files
Using publisher policy files
Deploying updates to the Data Provider
Deploying Data Provider into the GAC
Deploying Data Provider when it is not in the GAC
Running the sample projects
Using the Sample Applications
Tutorial: Using the Simple code sample
Understanding the Simple sample project
Tutorial: Using the Table Viewer code sample
Understanding the Table Viewer sample project
Tutorial: Using the Advanced code sample
Understanding the Advanced sample project
Developing Applications
Using Data Provider in a Visual Studio .NET project
Adding a reference to the Data Provider assembly
Referencing Adaptive Server ADO.NET Data Provider classes
Connecting to a database
Connection pooling
Checking the connection state
Character set
DDEX Provider for Adaptive Server
Supported Adaptive Server objects
Enhanced DDEX Provider for Adaptive Server
Adaptive Server ADO.NET Data Provider support for SSIS
Accessing and manipulating data
Using AseCommand to retrieve and manipulate data
Getting data using the AseCommand object
Inserting, updating, and deleting rows using the AseCommand object
Obtaining DataReader schema information
Using AseDataAdapter to access and manipulate data
Getting data using the AseDataAdapter object
Inserting, updating, and deleting rows using the AseDataAdapter object
Obtaining AseDataAdapter schema information
Bulk-load support in Adaptive Server ADO.NET Data Provider
Obtaining primary key values
Handling BLOBs
Obtaining time values
Using stored procedures
Transaction processing
Error handling
Performance consideration
DbType.String vs. DbType.AnsiString
Adaptive Server Advanced Features
Supported Adaptive Server Cluster Edition features
Login redirection
Connection migration
Connection failover
Enabling Cluster Edition connection failover
Using Distributed Transactions
Programming using Enterprise Services
Connection properties for Distributed Transaction support
Directory services
LDAP as a directory service
Using directory services
Microsecond granularity for time data
Password encryption
Enabling password encryption
Password expiration handling
Using SSL
SSL in Adaptive Server ADO.NET Data Provider
Validating the server by its certificate
Enabling SSL connections
Using failover in a high-availability system
Using Kerberos authentication
Process overview
Requirements
Enabling Kerberos authentication
Obtaining an initial ticket from the Key Distribution Center
SECURECONNECTIONSTRING property
Supported Microsoft ADO.NET features
Supported Microsoft ADO.NET 2.0, 3.0, 3.5 and 4.0 features
Microsoft Enterprise Library Database Access Application Block for Adaptive Server
Microsoft ADO.NET Entity Framework and LINQ
Adaptive Server ADO.NET Data Provider API Reference
AseBulkCopy class
AseBulkCopy constructors
Close method
Dispose method
Finalize method
WriteToServer method
BatchSize property
BulkCopyTimeout property
ColumnMappings property
DestinationTableName property
NotifyAfter property
AseRowsCopied event
AseBulkCopyColumnMapping class
AseBulkCopyColumnMapping constructors
Equals method
DestinationColumn property
DestinationOrdinal property
SourceColumn property
SourceOrdinal property
AseBulkCopyColumnMappingCollection class
AseBulkCopyColumnMappingCollection constructor
Add method
Contains method
IndexOf method
Insert method
Validate method
Remove method
AseBulkCopyOptions enumeration
AseClientFactory class
AseClientFactory constructors
Instance field
CreateCommand method
CreateCommandBuilder method
CreateConnection method
CreateConnectionStringBuilder method
CreateDataAdapter method
CreateDataSourceEnumerator method
CreateParameter method
CreatePermission method
CanCreateDataSourceEnumerator property
AseClientPermission class
AseClientPermission constructors
AseClientPermissionAttribute class
AseClientPermissionAttribute constructor
CreatePermission method
AseCommand class
AseCommand constructors
Cancel method
CommandText property
CommandTimeout property
CommandType property
Connection property
CreateParameter method
ExecuteNonQuery method
ExecuteReader method
ExecuteScalar method
ExecuteXmlReader method
NamedParameters
Parameters property
Prepare method
Transaction property
UpdatedRowSource property
AseCommandBuilder class
AseCommandBuilder constructors
DataAdapter property
DeleteCommand property
DeriveParameters method
Dispose method
GetDeleteCommand method
GetInsertCommand method
GetUpdateCommand method
InsertCommand property
PessimisticUpdate property
QuotePrefix property
QuoteSuffix property
RefreshSchema method
SelectCommand property
UpdateCommand property
AseConnection class
AseConnection constructors
BeginTransaction method
ChangeDatabase method
Close method
ConnectionString property
ConnectionTimeout property
CreateCommand method
Database property
InfoMessage event
NamedParameters
Open method
State property
StateChange event
TraceEnter, TraceExit events
AseConnectionPool class
Available property
Size property
AseConnectionPoolManager class
AseConnectionPoolManager constructor
GetConnectionPool method
NumberOfOpenConnections property
AseDataAdapter class
AseDataAdapter constructors
AcceptChangesDuringFill property
ContinueUpdateOnError property
DeleteCommand property
Fill method
FillError event
FillSchema method
GetFillParameters
InsertCommand property
MissingMappingAction property
MissingSchemaAction property
RowUpdated event
RowUpdating event
SelectCommand property
TableMappings property
Update method
UpdateCommand property
AseDataReader class
Close method
Depth property
Dispose method
FieldCount property
GetBoolean method
GetByte method
GetBytes method
GetChar method
GetChars method
GetDataTypeName method
GetDateTime method
GetDecimal method
GetDouble method
GetFieldType method
GetFloat method
GetInt16 method
GetInt32 method
GetList method
GetName method
GetOrdinal method
GetSchemaTable method
GetString method
GetUInt16 method
GetUInt32 method
GetUInt64 method
GetValue method
GetValues method
IsClosed property
IsDBNull method
Item property
NextResult method
Read method
RecordsAffected property
AseDbType enumeration
AseDecimal structure
AseDecimal constructors
AseDecimal fields
CompareTo method
Equality operator
Equals method
GetHashCode method
GreaterThan operator
GreaterThanOrEqual operator
IsNegative property
IsNull property
IsPositive property
LessThan operator
LessThanorEqual operator
Parse method
Sign method
ToAseDecimal method
ToString method
AseError class
ErrorNumber property
Message property
SqlState property
ToString method
AseErrorCollection class
CopyTo method
Count property
Item property
AseException class
Errors property
Message property
AseFailoverException class
Errors property
Message property
ToString method
AseInfoMessageEventArgs class
Errors property
Message property
AseInfoMessageEventHandler delegate
AseParameter class
AseParameter constructors
AseDbType property
DbType property
Direction property
IsNullable property
ParameterName property
Precision property
Scale property
Size property
SourceColumn property
SourceVersion property
ToString method
Value property
AseParameterCollection class
Add method
Clear method
Contains method
CopyTo method
Count property
IndexOf method
Insert method
Item property
Remove method
RemoveAt method
AseRowsCopiedEventArgs class
AseRowsCopiedEventArgs constructor
Abort property
RowCopied property
AseRowsCopiedEventHandler delegate
AseRowUpdatedEventArgs class
AseRowUpdatedEventArgs constructors
Command property
Errors property
RecordsAffected property
Row property
StatementType property
Status property
TableMapping property
AseRowUpdatingEventArgs class
AseRowUpdatingEventArgs constructors
Command property
Errors property
Row property
StatementType property
Status property
TableMapping property
AseRowUpdatedEventHandler delegate
AseRowUpdatingEventHandler delegate
AseTransaction class
Commit method
Connection property
IsolationLevel property
Rollback method
TraceEnterEventHandler delegate
TraceExitEventHandler delegate
Glossary
Adaptive Server Enterprise ODBC Driver by Sybase Users Guide for Microsoft Windows and UNIX
About this book
Introduction to ODBC Programming
Introduction to ODBC
ODBC conformance
ODBC Driver Manager
Building applications using an ODBC Driver Manager
Building applications without using an ODBC Driver Manager
Using the Adaptive Server ODBC Driver samples
Defining ODBC handles
Allocating ODBC handles
Connecting to a datasource
Choosing an ODBC connection function
Establishing a connection
Using threads and connections in ODBC applications
Executing SQL statements
Executing statements directly
Executing statements with bound parameters
Executing prepared statements
Working with result sets
Choosing cursor characteristics
UseCursor connection property
Retrieving data
Updating and deleting rows through a cursor
Using scrollable cursors
Setting the UseCursor connection property
Support for the Static Insensitive scrollable cursor
Setting scrollable cursor attributes
Executing scrollable cursors
Looking at results
Implicit setting of scrolling cursor attributes
Calling stored procedures
Handling errors
Datatype mappings
Connecting to a Database
Introduction to connections
Installing ODBC MetaData stored procedures
How connection parameters work
Character sets
Configuring the Adaptive Server ODBC Driver
Microsoft Windows
Registering the Adaptive Server ODBC Driver
Configuring a datasource
UNIX
Installing the Adaptive Server ODBC Driver
Configuring a datasource
ODBC ini files
Microsoft Windows
UNIX
Connecting using a datasource
Using connection parameters
ODBC driver version information utility
Supported Adaptive Server Features
Microsecond granularity for time data
Asynchronous execution for ODBC
Supported Adaptive Server Cluster Edition features
Login redirection
Connection migration
Connection failover in Cluster Edition
Enabling Cluster Edition connection failover
Using distributed transactions
Programming for MS DTC
Programming components deployed in Sybase EAServer, MTS, or COM+
Connection properties for distributed transaction support
Using directory services
LDAP as a directory service
Using directory services
Enabling directory services
Microsoft Windows
Linux
Bookmark and bulk support
Bulk-load support
Support for Mainframe Connect and DirectConnect for z/OS Option
ServiceName configuration property
BackEndType configuration property
Replication Server connection support
DSN Migration tool
Using the migration tool
Conversion switches
Password encryption
Enabling password encryption
Password encryption on Microsoft Windows
Password encryption on UNIX
Password expiration handling
Using SSL
SSL security levels in Adaptive Server ODBC Driver
Validating the server by its certificate
Enabling SSL connections
Microsoft Windows
UNIX
Using failover in high availability systems
Microsoft Windows
UNIX
Kerberos authentication
Process overview
Requirements
Enabling Kerberos authentication
Microsoft Windows
UNIX
Obtaining an initial ticket from the key distribution center
Logging without ODBC Driver Manager tracing
Log configuration file
Dynamic logging support without ODBC driver manager tracing
TDS protocol capture
Dynamic control of TDS protocol capture
ODBC data batching without binding parameter arrays
Managing data batches
Examples
Considerations
Bulk insert support for ODBC data batching
ODBC deferred array binding
SQLBindColumnDA()
SQLBindParameterDA()
Usage
Sample program
Suppressing additional row format information
Suppressing row format metadata
Suppressing parameter format metadata
Releasing locks at cursor close
select for update support
Variable-length rows in data-only locked tables
Nonmaterialized columns
Large Object (LOB) support
Large Object (LOB) locator support
Enabling LOB locator support
ODBC datatype mapping for locator support
Supported conversions
ODBC API methods that support LOB locators
Implicit conversion of prefetched LOB data
Accessing and manipulating LOBs using locators
Initializing a text locator
Initializing a unitext locator
Initializing an image locator
Obtaining complete text value from a text locator
Obtaining complete unitext value from a unitext locator
Obtaining complete image value from an image locator
Obtaining a substring from a text locator
Obtaining a substring from a unitext locator
Obtaining a substring from an image locator
Inserting text at specified position
Inserting unitext at specified position
Inserting an image at specified position
Inserting text referenced by a locator
Inserting unitext referenced by a locator
Inserting image referenced by a locator
Truncating underlying LOB data
Finding character length of underlying text data
Finding byte length of underlying text data
Finding character length of underlying unitext data
Finding byte length of underlying unitext data
Finding byte length of underlying image data
Finding position of a search string within the text column referenced by a locator
Finding position of a string referenced by a text locator within the text Column referenced by another locator
Finding position of a search string within the unitext column referenced by a locator
Finding position of a string referenced by a unitext locator within the unitext column referenced by another locator
Finding position of a byte sequence within the column referenced by an image locator
Finding position of byte sequence referenced by an image locator within the image column referenced by another locator
Checking if a text_locator reference is valid
Checking if a unitext_locator reference is valid
Checking if an image_locator reference is valid
Freeing or deallocating a LOB locator
Examples
Using server-specified packet size
Glossary
Adaptive Server Enterprise OLE DB Provider by Sybase Users Guide for Microsoft Windows
About this book
Introduction to Adaptive Server OLE DB Provider
Introduction to OLE DB
Supported platforms
ADO programming with Adaptive Server OLE DB Provider
Connecting to a database using the Connection object
Executing statements using the Command object
Querying the database with the Recordset object
Working with the Rowset object
Updating data through a cursor
Using transactions
Supported OLE DB interfaces
OLE DB programming with Adaptive Server OLE DB Provider
Connecting to a data source using OLE DB
Using threads and connections in OLE DB applications
Executing SQL statements
Executing statements directly
Executing statements with bound parameters
Executing prepared statements
Working with result sets
Retrieving data
Using scrollable cursors
Calling stored procedures
Handling errors
Mapping datatypes
Using computed columns
Using large identifiers for database objects
Adaptive Server OLE DB Provider sample
OLE DB DSN Migration
Migrating to Adaptive Server OLE DB Provider by Sybase
Migrating Data Source Names to Sybase drivers
Using the Sybase Adaptive Server Data Source Administrator
Using the DSN migration tool
Connecting to a Database
Introduction to connections
Installing OLE DB MetaData stored procedures
How connection parameters work
Connection parameters passed as connection strings
Saving connection parameters in OLE DB data sources
Connecting using a data source
Using connection parameters
Connecting from ADO
Example
Supported Adaptive Server Features
Microsecond granularity for time data
Supported Adaptive Server Cluster Edition features
Login redirection
Connection migration
Connection failover enhancement
Enabling Cluster Edition connection failover
Directory services
LDAP as a directory service
Using directory services
Interfaces file
Password encryption
Enabling password encryption
Password expiration handling
Data encryption using SSL
SSL security levels in ^ PRODUCT ^
Validating the server by its certificate
Enabling SSL connections
Bookmark and batch operation support for OLE DB
HA failover on Adaptive Server OLE DB Provider
Using failover in HA systems
Confirming a successful failover
Verifying an unsuccessful failover
Sample code for checking failover
Kerberos authentication
Process overview
Requirements
Enabling Kerberos authentication
Obtaining an initial ticket from the Key Distribution Center
Adaptive Server OLE DB Provider participation in distributed transactions
Programming for MS DTC
Programming components deployed in MTS or COM+
Connection properties for Distributed Transaction support
Suppressing additional Row Format information
Large Object (LOB) support
TDS protocol capture
Glossary
Adaptive Server Enterprise XA Interface Integration Guide for CICS, Encina, and TUXEDO
The Sybase XA Environment
Definitions
Overview of the X/Open DTP model
Components of the model
How the components communicate
How the components interact
Recovery
The Sybase XA environment
Components of the Sybase XA environment
Connections in the Sybase XA environment
Identifying connections via LRMs
Where is the connection information stored?
Establishing connections
Distributing work across LRMs
Configuring the XA Environment
Configuring Adaptive Server
Open string parameters for the DTM XA Interface
Open string parameters
dtm_tm_role required for username
Log file and trace flag parameters
Labels for logfile entries
xa_open() function behavior
XA configuration file for DTM XA Interface
Environment variable for specifying the configuration file
[all] section for defining common LRM parameters
Parameter definitions for [all] section
Editing the XA configuration file
Additional capabilities, properties, and options
Using the DTM XA Interface with CICS
Building the switch-load file
Compiling the switch-load file on IBM RISC System/6000 AIX
Compiling the switch-load file on HP9000 Series 800 HP-UX
Compiling the switch-load file on Sun Solaris 2.x (SPARC)
Adding a Sybase stanza to the CICS region XAD definition
Using the DTM XA Interface with Encina
Assigning an open string with monadmin create rm
Initializing LRMs with mon_RegisterRmi
Linking applications with DTM XA Interface libraries
Establishing connections
Using the DTM XA Interface with TUXEDO
Linking
Setting up the UBBCONFIG file
Creating the TUXEDO configuration file
Building the TMS
Building the COBOL runtime environment
Application Programming Guidelines
X/Open DTP versus traditional Sybase transaction processing
Managing transactions and connections
Managing transactions
Managing connections
The current connection
Nontransactional connections
Deallocating cursor function with Client-Library
Dynamic SQL
Obtaining a Client-Library connection handle
Multiple-thread environment issues
Caveats of thread use
Embedded SQL thread-safe code
Tightly coupled transactions
Linking with CT Library
Sample embedded SQL COBOL fragment
Sample embedded SQL C fragment
Programmers Guide Adaptive Server Enterprise Extension Module for Python
Adaptive Server Enterprise Extension Module for Python
Installing the Extension Module for Python
Extension Module for Python Configuration Overview
Developing Python Applications
Loading the Extension Module for Python
Establishing and Closing a Connection to Adaptive Server Using Python
Accessing and Updating Data Using Python
Passing Input and Output Parameters to Stored Procedures
Compute Rows Processing
Parameter Support for Dynamic Statements and Stored Procedures
Extension Module for Python API Reference
Module Interface Methods
Module Interface Constants
Connection Object Methods
Cursor Object Methods
Warning and Error Messages
Glossary
Programmers Guide Adaptive Server Enterprise Extension Module for PHP
Adaptive Server Enterprise Extension Module for PHP
Installing the Extension Module for PHP
Configuration Overview
Sample PHP Script
Extension Module for PHP API Reference
sybase_affected_rows
sybase_close
sybase_connect
sybase_data_seek
sybase_fetch_array
sybase_fetch_assoc
sybase_fetch_field
sybase_fetch_object
sybase_fetch_row
sybase_field_seek
sybase_free_result
sybase_get_last_message
sybase_get_last_status
sybase_next_result
sybase_num_fields
sybase_num_rows
sybase_pconnect
sybase_query
sybase_rpc_bind_param_ex
sybase_rpc_execute
sybase_rpc_init
sybase_select_db
sybase_set_message_handler
sybase_unbuffered_query
sybase_use_result
Security and Directory Services
Additional Resources
Glossary
Programmers Guide Adaptive Server Enterprise Database Driver for Perl
Adaptive Server Enterprise Database Driver for Perl
Perl Driver Module
Installing and Configuring the Driver for Perl
Developing Perl Applications
Perl Supported Datatypes
Using Multiple Statements
Supported Character Lengths
Database Parameter Support
Dynamic SQL Support
Default Date Conversion and Display Format
LONG/BLOB Data Handling
Automatic Key Generation
Parameter Binding
Stored Procedures
Error Handling
Configuring Security Services
Additional Resources
Glossary
jConnect for JDBC 7.07 Release Bulletin
Accessing current release bulletin information
Product summary
Special installation instructions
Check your jConnect version
Special upgrade instructions
Migration
Version setting
JDK 6
Changed functionality in this version
Known problems
Documentation updates and clarifications
Configuring Kerberos
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Accessibility features
jConnect for JDBC 7.07 Programmers Reference
About this book
Introduction
What is JDBC?
What is jConnect?
Programming Information
Setting up jConnect
Setting the jConnect version
Invoking the jConnect driver
Configuring jConnect for J2EE servers
Establishing a connection
Connection properties
Setting connection properties
Listing current connection settings
List of jConnect connection properties
Connecting to Adaptive Server
URL connection property parameters
Using the sql.ini and interfaces file directory services
Connection string for a single DSURL for jConnect
Format of the sql.ini and interfaces file for SSL
Connecting to a server using JNDI
Connection URL for using JNDI
Required directory service information
CONNECTION_FAILOVER connection property
Providing JNDI context information
Handling internationalization and localization
Using jConnect to pass Unicode data
jConnect character-set converters
Selecting a character-set converter
Setting the CHARSET connection property
Improving character-set conversion performance
Supported character sets
European currency symbol support
Working with databases
Implementing high availability failover support
Overview
Requirements, dependencies, and restrictions
Implementing failover in jConnect
Performing server-to-server remote procedure calls
Using wide table support for Adaptive Server
Accessing database metadata
Using cursors with result sets
Creating a cursor
Using JDBC 1.x methods for positioned updates and deletes
Using JDBC 2.0 methods for positioned updates and deletes
Releasing locks at cursor close
select for update support
Using a cursor with a PreparedStatement object
Using TYPE_SCROLL_INSENSITIVE result sets in jConnect
Using Transact-SQL queries with COMPUTE clause
Support for batch updates
Implementation notes
Updating a database from a result set of a stored procedure
Working with datatypes
Sending numeric data
Updating image data in the database
Using text data
Using date and time datatypes
Using char/varchar/text datatypes and getByte
Other Datatypes supported
Variable-length rows in data-only locked tables
Large object (LOB) support
Large object locator support
Implementing advanced features
Using BCP insert
Supported Adaptive Server Cluster Edition features
Login redirection
Connection migration
Connection failover
Using event notification
Event notification example
Handling error messages
Handling numeric errors returned as warnings
Retrieving Sybase-specific error information
Customizing error-message handling
Installing an error-message handler
Error-message-handler example
Using password encryption
Enabling password encryption
Enabling login retry with a clear text password
Setting up the Java Cryptography Extension (JCE) provider
Storing Java objects as column data in a table
Prerequisites for storing java objects as column data
Sending Java objects to a database
Receiving Java objects from the database
Using dynamic class loading
Using DynamicClassLoader
Using deserialization
Preloading .jar files
Advanced features
JDBC 4.0 specifications support
JDBC 3.0 specifications support
Savepoint support
Retrieval of parameter metadata
Retrieval of auto-generated keys
Ability to have multiple open ResultSet objects
Passing parameters to CallableStatement objects by name
Holdable cursor support
JDBC 2.0 optional package extensions support
JNDI for naming databases
Connection pooling
Distributed transaction management support
Restrictions on and interpretations of JDBC standards
Unsupported JDBC 4.0 specification requirements
Using Connection.isClosed and IS_CLOSED_TEST
Using Statement.close with unprocessed results
Making adjustments for multithreading
Using ResultSet.getCursorName
Executing stored procedures
Security
Overview
Restrictions
Implementing custom socket plug-ins
Creating and configuring a custom socket
Example
Kerberos
Configuring jConnect applications for Kerberos
GSSMANAGER_CLASS connection property
Vendor implementations
Setting GSSMANAGER_CLASS
Examples
Setting up the Kerberos environment
CyberSafe
MIT
Microsoft Active Directory
Sample applications
ConnectKerberos.java
The krb5.conf configuration file
CyberSafe or MIT KDC
Active Directory KDC
Interoperability
Encryption types
Troubleshooting
Kerberos
Related documents
Troubleshooting
Debugging with jConnect
Obtaining an instance of the Debug class
Turning on debugging in your application
Turning off debugging in your application
Setting the CLASSPATH for debugging
Using the Debug methods
Dynamic logging
Capturing TDS communication
PROTOCOL_CAPTURE connection property
pause and resume methods in the Capture class
Resolving connection errors
Gateway connection refused
Managing memory in jConnect applications
Resolving stored procedure errors
RPC returns fewer output parameters than registered
Fetch/state errors when output parameters are returned
Stored procedure executed in unchained transaction mode
Resolving a custom socket implementation error
Performance and Tuning
Improving jConnect performance
BigDecimal rescaling
REPEAT_READ connection property
SunIoConverter character-set conversion
Performance tuning for prepared statements in dynamic SQL
Choosing prepared statements and stored procedures
Prepared statements in portable applications
Prepared statements with jConnect extensions
If most dynamic statements are executed infrequently
If most dynamic statements are executed many times in a session
Connection.prepareStatement
DYNAMIC_PREPARE connection property
SybConnection.prepareStatement
ESCAPE_PROCESSING_DEFAULT connection property
Optimized batching in jConnect
Homogeneous batching with large object (LOB) columns
Cursor performance
LANGUAGE_CURSOR connection property
Migrating jConnect Applications
Migrating applications to jConnect 7.x
Changing Sybase extensions
Extension change example
Method names
Debug class
Web Server Gateways
About Web server gateways
Using TDS tunnelling
Configuring jConnect and gateways
Web server and Adaptive Server on one host
Dedicated JDBC Web server and Adaptive Server on one host
Web server and Adaptive Server on separate hosts
Connecting to a server through a firewall
Usage requirements
Reading the index.html file
Running the sample Isql applet
Troubleshooting
Using the TDS-tunnelling servlet
Reviewing requirements
Installing the servlet
Setting servlet arguments
Invoking the servlet
Tracking active TDS sessions
Terminating TDS sessions
Resuming a TDS session
jConnect Sample Programs
Running IsqlApp
Running jConnect sample programs and code
Sample applications
Running the sample applets
Running the sample programs with SQL Anywhere
Sample code
SQL Exception and Warning Messages
Glossary
Ribo 3.0 Users Guide
Introduction to Ribo
Prerequisites
Capture Data
Command Line Options
Translate Data
Capturing and Translating Data Using the GUI
Using Filters
Creating a Customized Filter
Using a Customized Filter
Obtaining Help and Additional Information
Technical Support
Downloading Sybase EBFs and Maintenance Reports
Sybase Product and Component Certifications
Creating a MySybase Profile
Accessibility Features
Software Developer's Kit 15.5
Software Developer Kit 15.0
Software Developer Kit 12.5.1
SQL Anywhere 12.0.1
SQL Anywhere 12.0.0
SQL Anywhere 11.0.1
SQL Anywhere 11.0.0
SQL Anywhere 10.0.1
SQL Anywhere 10.0
Sybase Aleri Streaming Platform 3.1
Sybase Aleri Streaming Platform 3.2
Sybase Brand Mobiliser 1.3
Sybase Brand Mobiliser 1.2
Sybase Brand Mobiliser 1.1
Sybase CEP Option R4
SAP Control Center 3.3
Sybase Control Center 3.2.8 ESD2
Sybase Control Center 3.2.8 ESD1
Sybase Control Center 3.2.8
Sybase Control Center 3.2.7
Sybase Control Center 3.2.6
Sybase Control Center 3.2.5
Sybase Control Center 3.2.4
Sybase Control Center 3.2.3
Sybase Control Center 3.2.1
Sybase Control Center 3.2
Sybase Control Center 3.1.1
Sybase Control Center 3.1
Sybase Control Center 3.0.1
Sybase Control Center 3.0
Sybase ETL 4.9
Sybase ETL 4.9 (Simplified Chinese)
Sybase ETL 4.9 (Japanese)
Sybase ETL 4.8
Sybase ETL 4.8 - Simplified Chinese
Sybase ETL 4.8 - Japanese
SAP Sybase Event Stream Processor 5.1 SP04
SAP Sybase Event Stream Processor 5.1 SP03
SAP Sybase Event Stream Processor 5.1 SP02
Sybase Event Stream Processor 5.1 SP01
Sybase Event Stream Processor 5.1
Sybase Event Stream Processor 5.0
Sybase Event Stream Processor 5.0 (Japanese)
SAP Sybase IQ 16.0 SP04
SAP Sybase IQ 16.0 SP03
SAP Sybase IQ 16.0 SP03 (Japanese)
SAP Sybase IQ 16.0 SP03 (Simplified Chinese)
SAP Sybase IQ 16.0 SP2
SAP Sybase IQ 16.0 SP01
SAP Sybase IQ 16.0
Sybase IQ 15.4
Sybase IQ 15.4 (Japanese)
Sybase IQ 15.4 (Simplified Chinese)
Sybase IQ 15.3
Sybase IQ InfoPrimer 15.3
Sybase IQ 15.3 (Japanese)
Sybase IQ 15.3 (Simplified Chinese)
Sybase IQ 15.2
Sybase IQ 15.2 - (Japanese)
Sybase IQ 15.2 (Simplified Chinese)
Sybase IQ 15.1
Sybase IQ 15.1 (Japanese)
Sybase IQ 15.1 - Simplified Chinese
Sybase IQ 15.0
Sybase mBanking 365 3.0
Sybase mBanking 365 2.1
Sybase mBanking 365 2.0
Sybase Mobile Sales for SAP CRM 1.2.1
Sybase Mobile Sales for SAP CRM 1.2
Sybase Mobile Sales for SAP CRM 1.1
Sybase Mobile Sales for SAP CRM 1.0
Sybase Mobile Workflow for SAP Business Suite 1.2.1
Sybase Mobile Workflow for SAP Business Suite 1.2
Sybase Mobile Workflow for SAP Business Suite 1.1
Sybase Mobiliser Platform 5.1 SP03
Sybase Mobiliser Platform 5.1
Sybase Mobiliser Platform 5.0
Sybase SAP DOE Connector 2.1
Sybase SAP DOE Connector 2.0
Sybase Search 3.1
Sybase Unwired Platform 2.2 SP05
Sybase Unwired Platform 2.2 SP04
Sybase Unwired Platform 2.2 SP03
Sybase Unwired Platform 2.2
Sybase Unwired Platform 2.1 ESD #3
Sybase Unwired Platform 2.1 ESD #2
Sybase Unwired Platform 2.1 ESD #1
Sybase Unwired Platform 2.1
Sybase Unwired Platform 2.0 ESD #1
Sybase Unwired Platform 2.0
Sybase Unwired Platform 1.5.5
Sybase Unwired Platform 1.5.3
Sybase Unwired Platform 1.5.2
Sybase Unwired Platform 1.2.4
Sybase Unwired Platform 1.2.2
Sybase Unwired Platform 1.2.1
Sybase Unwired Platform 1.2
Sybase WorkSpace 2.5
Sybase WorkSpace 2.1.2
Sybase WorkSpace 2.1
Sybase WorkSpace 2.0.2
SyBooks 3.4
SyBooks 3.0.1
SySAM Documentation
SySAM Documentation - Japanese
SySAM Documentation - Simplified Chinese
SyBooks Online Infocenter Help