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
Release Bulletin Open Client and Open Server 12.5.1 for HP 9000/800 HP-UX
Accessing current release bulletin information
Product summary
Patches
Version contents
POSIX threads and pthreads libraries
IPV6 support
Sample files
Utilities
Special installation instructions
Installing EBFs
Installation and configuration instructions
Overwriting new versions
Modifying interfaces file entries with dscp or dsedit
Changed functionality in this version
New features for SDK and Open Server version 12.5.1
Date and time datatypes
High Availability Failover in ESQL
SMP - Open Server performance and scalability
Support for Chinese character sets
Identity Update option
BCP support for long char client-side character set conversion
MIT Kerberos
Using pre-12.5 Open Client versions with Adaptive Server
Changes to directory structure and threaded libraries
Known problems
64-bit libraries
File descriptor limit
ESQL/C samples
Open Server threads
Open Server start-up error
InstallShield
Server not responding causing InstallShield to hang
Install fails with a “JVM not found” error
InstallShield overwrites existing Sybase files
Installation using responsefile fails
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
Programming issues
General issues
Upgrading to a new release
Using earlier versions of Client-Library with Open Server 12.5
Client-Library
Net driver libraries
ct_poll
Asynchronous programming
Registered procedure notifications
Open Server
Timeslice property and multithreaded library versions
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Utility issues
Utility messages
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Release Bulletin Open Client and Open Server 12.5.1 for Silicon Graphics IRIX
Accessing current release bulletin information
Product summary
Version contents
POSIX threads and pthreads libraries
IPV6 support
Sample files
Utilities
Special installation instructions
Installing EBFs
Installation and configuration instructions
Overwriting new versions
Makefile for SGI 64-bit
Modifying interfaces file entries with dscp or dsedit
Changed functionality in this version
New features for SDK and Open Server version 12.5.1
Date and time datatypes
High Availability Failover in ESQL
SMP – Open Server performance and scalability
Support for Chinese character sets
Identity Update option
BCP support for long char client-side character set conversion
SSL Plus 3.1.5
Using pre-12.5 Open Client versions with Adaptive Server
Changes to directory structure and threaded libraries
Known problems
File descriptor limit
Loading blktxt.c
Open Server threads
Open Server startup error
InstallShield
Server not responding causing InstallShield to hang
Install fails with a JVM not found error
InstallShield overwrites existing Sybase files
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
Defining a CS-Library message callback
Programming issues
General issues
Upgrading to a new release
Using earlier versions of Client-Library with Open Server 12.5
Client-Library
Net driver libraries
ct_poll
Asynchronous programming
Registered procedure notifications
DB-Library
Sample programs
Open Server
Timeslice property and multithreaded library versions
Embedded SQL
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
Embedded SQL/C sample programs
Utility issues
Utility messages
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software updates
Release Bulletin Open Client and Open Server 12.5.1 for IBM RISC System/6000 AIX
Accessing current release bulletin information
Product summary
Version contents
POSIX threads and pthreads libraries
IPV6 support
Sample files
Utilities
Special installation instructions
Installing EBFs
Installation and configuration instructions
Overwriting new versions
Modifying interfaces file entries with dscp or dsedit
Changed functionality in this version
New features for SDK and Open Server version 12.5.1
Date and time datatypes
High Availability Failover in ESQL
SMP – Open Server performance and scalability
Support for Chinese character sets
Identity Update option
BCP support for long char client-side character set conversion
SSL Plus 3.1.5
Using pre-12.5 Open Client versions with Adaptive Server
Changes to directory structure and threaded libraries
Known problems
64-bit libraries
File descriptor limit
ESQL/C issue
SSL security services and non-reentrant libraries
Open Server threads
Open Server startup error
InstallShield
Server not responding causing InstallShield to hang
Install fails with a JVM not found error
InstallShield overwrites existing Sybase files
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
Defining a CS-Library message callback
Programming issues
General issues
Upgrading to a new release
Using earlier versions of Client-Library with Open Server 12.5
Client-Library
Net driver libraries
ct_poll
Asynchronous programming
Registered procedure notifications
Security sample programs
DB-Library
Sample programs
Open Server
Timeslice property and multithreaded library versions
Embedded SQL
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Utility issues
Utility messages
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software updates
Release Bulletin Open Client and Open Server 12.5.1 for Sun Solaris
Accessing current release bulletin information
Product summary
Version contents
POSIX threads and pthreads libraries
IPV6 support
Sample files
Utilities
Special installation instructions
Installing EBFs
Installation and configuration instructions
Overwriting new versions
Modifying interfaces file entries with dscp or dsedit
Changed functionality in this version
New features for SDK and Open Server version 12.5.1
Date and time datatypes
High Availability Failover in ESQL
SMP - Open Server performance and scalability
Support for Chinese character sets
Identity Update option
BCP support for long char client-side character set conversion
SSL Plus support
MIT Kerberos
Using pre-12.5 Open Client versions with Adaptive Server
Changes to directory structure and threaded libraries
Known problems
Compiler patch required for Sun Solaris 10 x64 (Opteron 64-bit)
Memory leak on Sun Solaris 9 x86 (32-bit) platforms
File descriptor limit
Open Server threads
Open Server start-up error
InstallShield
Server not responding causing InstallShield to hang
Install fails with a “JVM not found” error
InstallShield overwrites existing Sybase files
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
Programming issues
General issues
Upgrading to a new release
Using earlier versions of Client-Library with Open Server 12.5
Compiling sample programs
Link to usr/lib/lwp
Programming with thread-safe libraries
Shared version of bulk-library
Client-Library
Net driver libraries
ct_poll
Asynchronous programming
Registered procedure notifications
DB-Library
Sample programs
Open Server
Timeslice property and multithreaded library versions
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Utility issues
Utility messages
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software maintenance
Release Bulletin Open Client and Open Server 12.5.1 for HP Tru64 UNIX
Accessing current release bulletin information
Product summary
Patches
Version contents
POSIX threads and pthreads libraries
IPV6 support
Sample files
Utilities
Special installation instructions
Installing EBFs
Installation and configuration instructions
Overwriting new versions
Setting HP Tru64 UNIX environment variables for uninstall
Modifying interfaces file entries with dscp or dsedit
Changed functionality in this version
New features for SDK and Open Server version 12.5.1
Date and time datatypes
High Availability Failover in ESQL
SMP – Open Server performance and scalability
Support for Chinese character sets
Identity Update option
BCP support for long char client-side character set conversion
SSL Plus 3.1.5
Using pre-12.5 Open Client versions with Adaptive Server
Changes to directory structure and threaded libraries
Known problems
64-bit libraries
File descriptor limit
Open Server threads
Open Server startup error
InstallShield
Server not responding causing InstallShield to hang
Install fails with a JVM not found error
InstallShield overwrites existing Sybase files
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
Defining a CS-Library message callback
Programming issues
General issues
Upgrading to a new release
Using earlier versions of Client-Library with Open Server 12.5
Client-Library
Net driver libraries
ct_poll
Asynchronous programming
Registered procedure notifications
DB-Library
Sample programs
Open Server
Timeslice property and multithreaded library versions
Embedded SQL
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
Embedded SQL/C sample programs
Embedded SQL/COBOL sample programs
Utility issues
Utility messages
Technical support
Other sources of information
Sybase certifications on the Web
Sybase EBFs and software updates
Release Bulletin Open Client and Open Server 12.5.1 for Microsoft Windows
Accessing current release bulletin information
Product summary
Version contents
Special installation instructions
Installing EBFs
Installing and configuring SDK and Open Server
Overwriting new versions
Running 10.0.x, 11.1.1, 12.0, and 12.5 installations on Windows NT
Changed functionality in this version
Known problems
ESQL/C samples
Open Server start-up error
ASE ODBC Driver by Sybase issues
Unsupported ODBC features
Limitations when used with Adaptive Server 12.x
ASE OLE DB Provider by Sybase issues
Unsupported OLE DB features
Limitations when used with Adaptive Server 12.x
ASE ADO.NET issues
Limitations when used with Adaptive Server 12.x
Limited maximum precision of a decimal variable
InstallShield problems
InstallShield overwrites existing Sybase files
Product compatibilities and interoperability
Open Client and Open Server compatibility
Interoperability matrix
Guidelines for installing SDK or Open Server with other Sybase products
SDK and Open Server compatibility
DB-Library compatibility with Client-Library and Open Server
Documentation updates and clarifications
Common Libraries Reference Manual
ASE ADO.NET Data Provider User’s Guide
Usage of GetDouble method on AseDataReader class
Programming issues
General issues
Upgrading to a new release
Restricting system paths
Migrating to ASE ODBC Driver by Sybase
Migrating to ASE OLE DB Provider by Sybase
Client-Library issues
Asynchronous programming
Registered procedure notifications
DB-Library issues
Sample programs
Open Server issues
Open Server naming conventions on Windows NT
Unsupported Open Server routines
Embedded SQL issues
Sharing Embedded SQL/C objects among multiple threads
Precompiler -b option
Precompiler -p option
Error or warning prevents retrieving all rows from a select into statement
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
Programmer’s 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
Building applications using shared libraries
Purpose of the sample programs
The sybopts.sh script and building applications
Location
Header file
EX_USERNAME
EX_PASSWORD
Utility routines for the sample programs
Sample program summaries
uni_blktxt.c
compute.c
uni_csr_disp.c
ex_alib.c and ex_amain.c
exconfig.c
firstapp.c
getsend.c
i18n.c
multthrd.c and thrdfunc.c
rpc.c
secct.c
uni_blktxt.c
uni_compute.c
uni_csr.c
uni_firstapp.c
uni_rpc.c
usedir.c
wide_compute.c
wide_curupd.c
wide_dynamic.c
wide_rpc.c
Open Client DB-Library/C
General instructions
Building a DB-Library executable
Libraries
Link-and-compile lines
Performance considerations
Header files
Using DB-Library sample programs
Purpose of the sample programs
Location
Header file
Sample program summary
Example 1: Send queries, bind, and print results
Example 2: Insert data into a new table
Example 3: Bind aggregate and compute results
Example 4: Row buffering
Example 5: Data conversion
Example 6: Browse mode updates
Example 7: Browse mode and ad hoc queries
Example 8: Making a remote procedure call (RPC)
Example 9: Text and image routines
Example 10: Inserting an image
Example 11: Retrieving an image
Example 12: International language routines
Example 13: Bulk copy
Example 14: Two-phase commit
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
Server-Library sample programs
Purpose of the sample programs
Location
Sample program summaries
ctosdemo.c
exfds.c
fullpass.c
intlchar.c
lang.c
multthrd.c
osintro.c
regproc.c
secsrv.c
sigalarm.c
Open Client Embedded SQL/COBOL
General instructions
Building an Embedded SQL/COBOL executable
Libraries
Precompiling the application
Compiling and linking the application
New compile-and-link command lines for HP Tru64 UNIX
Loading stored procedures
Embedded SQL/COBOL sample programs
Purpose of the sample programs
Location
Example 1: Using cursors for database query
Example 2: Displaying and editing rows in a table
Open Client Embedded SQL/C
General instructions
Building an Embedded SQL/C executable
Precompiling the application
Compiling and linking the application
New compile-and-link lines for HP Tru64 UNIX
Performance considerations
Loading stored procedures
Embedded SQL/C sample programs
Purpose of the sample programs
Location
Header file
Example 1: Using cursors for database query
Example 2: Displaying and editing rows of a table
Commands and Utilities
bcp
cobpre; cpre
defncopy
isql
Environment Variables
Programmer’s Supplement for Windows
About this book
Building Open Client and Open Server Applications
Open Client and Open Server requirements
C compilers
Client-Library compatibility
Open Server compatibility
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
Online help
Multithreaded support
Example compile-and-link operations
DB-Library programming issues
Compile-and-link line examples
Server-Library programming issues
srv_callback
Scheduling modes
Preemptive mode programming overview
srv_sleep
srv_wakeup
Example of compile-and-link operations
Client Library/C Example Programs
How to use the example programs
Before you begin
Location of the example programs
Header files
example.h file
Client-Library example programs
The sybopts.sh script and building applications
Utility routines for the example programs
firstapp.c example program
exconfig.c example program
Bulk copy example program
Compute rows example program
Read-only cursor example program
Asynchronous example program
text and image example program
Localization and internationalization example program
Multithreaded example program
RPC command example program
Security service example program
Directory service example program
uni_blktxt.c example program
uni_compute.c example program
uni_csr_disp.c example program
uni_firstapp.c example program
uni_rpc.c example program
usedir.c example program
wide_compute.c example program
wide_curupd.c example program
wide_dynamic.c example program
wide_rpc.c example program
Open Client DB-Library/C Example Programs
How to use the example programs
Before you begin
Location of the example programs
Header files
sybdbex.h header file
The DB-Library example programs
Send queries, bind, and print results
Insert data into a new table
Bind aggregate and compute results
Row buffering
Data conversion
Browse mode updates
Browse mode and ad hoc queries
Making an RPC call
Text and image routines
Inserting an image
Retrieving an image
International language routines
Bulk copy example program
Two-phase commit example program
Open Server Server-Library/C Example Programs
How to use the example programs
Before you begin
Location and content
Tracing
Header files
The Server-Library example programs
Testing example programs
Open Server introduction
Gateway Open Server
srv_language event handler
TDS passthrough mode
Registered procedures
International languages and character sets
Multithreaded programming
Security services
Open Client Embedded SQL/C
Building an Embedded SQL/C executable
Precompiling the application
Compiling and linking the application
Link libraries
Loading stored procedures
The Embedded SQL/C example programs
Before you begin
Header file
Using cursors for database query
Displaying and editing rows of a table
Open Client Embedded SQL/COBOL
Building an Embedded SQL/COBOL executable
Precompiling the application
Compiling and linking the application
Link libraries
Loading stored procedures
The Embedded SQL/COBOL example programs
General requirements
Adding environment variable for MicroFocus COBOL
Using cursors for database query
Displaying and editing rows in a table
Utilities
bcp
defncopy
isql
Precompiler Reference
cobpre; cpre
Configuration Guide for 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 interfaces 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 interfaces 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
Configuration tasks for DCE directory service
Using Security Services
Overview of network-based security
Security mechanisms
Security drivers
Security services
LAN Manager security services
Kerberos security services
Configuring CyberSafe Kerberos
Configuring MIT Kerberos
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 Net-Library driver
Adding or modifying a Net-Library driver
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
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
Net-Library 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
ocs.cfg
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
Conversion configuration files
How conversion configuration files are used
Location of the conversion configuration files
Conversion configuration file entries
Conversion configuration file example
Collating sequence files
The ini directory
The objectid.dat file
Location of objectid.dat
objectid.dat sections and entries
objectid.dat example
The mnemonic.dat file
How mnemonic.dat is used
Location of mnemonic.dat
mnemonic.dat entries
mnemonic.dat example
Adding strings to mnemonic.dat
Secure Socket Layer in Open Client and Open Server
SSL handshake
SSL security levels and security mechanisms
Validating a server by its certificate
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
Installation Guide for UNIX
About this book
Before You Begin
Supported platforms
Summaries of SDK and Open Server
Summary of SDK components
SDK libraries and utilities
Summary of Open Server components
Open Server libraries and utilities
System requirements for SDK and Open Server
Hardware and software requirements
Disk space requirements
Disk space required for install
jConnect requirements
Pre-installation instructions
Pre-installation tasks for SDK and Open Server
Installing SDK and Open Server
Using InstallShield for installation
Installing from a remote machine
Installing using a different font
Using the -font command line option
Using the font.ini file
Installing SDK or Open Server
Mount the CD
Installing in GUI mode
Installing in console mode
Installing using a response file
Creating a response file
Uninstalling SDK or Open Server
Special uninstall considerations
Uninstall procedures
Missing uninstall components
Command line options
Post-installation Tasks
Setting environment variables for SDK and Open Server
Configuring the components
Modifying interfaces file entries with the dscp utility
Installation Guide for Windows
About this book
Before You Begin
Supported Microsoft Windows platforms
SDK and Open Server components
SDK components
SDK libraries and utilities
Open Server components
Open Server libraries and utilities
System requirements for SDK and Open Server
Hardware and software requirements
Installing data access components from Microsoft
Disk space requirements
Disk space for the install
jConnect requirements
Pre-installation instructions
Perform pre-installation tasks for SDK and Open Server
Installing SDK and Open Server
Using InstallShield for installation
Installing SDK or Open Server
Installing 12.5.1 on the same machine as a pre-12.5.1 ASE
Starting ASE
Installing in GUI mode
Installing in console mode
Installing using a response file
Creating a response file
Uninstalling SDK or Open Server
Special uninstall considerations
Uninstall procedure
Command line options
Post-installation Tasks
Setting environment variables
Configuring the components
New Features Open Server 12.5.1 and SDK 12.5.1 for Windows, Linux, UNIX
Product components
Product compatibilities
New feature in ESD #24
SSL Plus 5.2.2 + SBGSE 2.2 support
New features in ESDs #21, #22, and #23
New features in ESD #20
New srv_send_data routine added
ct_data_info enhancement
SSL certificate utilities work with SSL Plus 5.0.4 on all platforms
New features in ESD #19
MIT Kerberos support on HP Itanium
Release of 32-bit binaries for 64-bit products
SSL Plus 5.0.4 + SBGSE 2.0 support
Windows SSPI support using MIT Kerberos
New command line option for BCP
New features in ESD #18
New features in ESD #17
Extended support for OpenLDAP
XA 32-bit support on HP Itanium 32-bit
New features in ESD #16
New logging feature for ASE OLE DB Provider
New srv_send_data routine added for UNIX platforms
New feature in ESD #15
Dynamic version of bulk library available
New features in ESD #14
Asynchronous execution for ODBC
Server-Library routines updated
New features in ESD #13
New jConnect 6.05 connection properties
New jConnect 5.5 connection properties
Documentation updates and clarifications to ESD #11
New features in ESD #12
SSL Plus support on Linux AMD64 (Opteron)/EM64T and HP Itanium 32-bit and 64-bit
MIT Kerberos support
MIT Kerberos on DB-Library
ESQL/COBOL support on HP Itanium 32-bit
ASE OLE DB Provider participation in Distributed Transactions
Programming for MS DTC
Programming components deployed in MTS or COM+
Connection properties for Distributed Transaction support
OLE DB DSN Migration tool available
Migrating to ASE OLE DB Provider by Sybase
Migrating Data Source Names to Sybase drivers
HA failover on ASE OLE DB Provider
Using failover in HA systems
Confirming a successful failover
Verifying an unsuccessful failover
New features in ESD #11
MIT Kerberos support on Sun Solaris 9 x86 (32-bit)
Directory services sql.ini and interface file support
Connection string
ODBC DSN Migration tool
Using the Migration tool
Conversion switches
Bookmark and bulk support for ODBC and OLE DB
Directory services sql.ini and interface file support on jConnect
Connection string
New features in ESD #10
Support for HP-UX 11.11 (or HP-UX 11iv1.0) 32-bit and 64-bit platforms
XA 64-bit support on Linux AMD64 (Opteron)/EM64T
MIT Kerberos support on Microsoft Windows
Scrollable cursors
Using scrollable cursors
For the ASE ODBC Driver
For the ASE OLE DB Provider
New feature in ESD #9
Using Distributed Transactions
Using the ASE ODBC driver to participate in Distributed Transactions
Using the ASE ADO.NET Data Provider to participate in Distributed Transactions
New features in ESD #8
Extended support for MIT Kerberos
Support for new platforms and operating systems
LDAP functionality on IBM AIX 64-bit
CyberSafe Kerberos Client upgrade on Windows
SSLPlus 3.1.x security fixes
COBOL compiler upgrade on Windows 2000
New feature in ESD #7
XA 64-bit support extended to additional platforms
Overview of XA Interface
Components of the XA Interface
New feature in ESD #6
New ASE OLE DB Provider by Sybase
New features in ESD #5
BCP encrypted columns
Korean character support enhancements
SSLPlus 3.1.10H security fixes
Support for MIT Kerberos on ODBC and OLE DB
Installing SDK 12.5.1 on Windows
Extended platform support for the ASE ODBC Driver by Sybase
New features in ESD #4
Diagnostic enhancements
Asynchronous communications support
DB-Library new configuration variable
Adaptive Server Enterprise ODBC driver for Linux Intel 32-bit
New ASE ODBC driver
New feature in ESD #3
Adaptive Server Enterprise ADO.NET Data Provider 1.1 on Microsoft Windows
Upgrading to ASE ADO.NET Data Provider 1.1
New features in ASE ADO.NET Data Provider 1.1
New features in ESD #2
SSL Plus 3.1.5 + SBGSE support on Solaris and Microsoft Windows
IPV6 support on Solaris and Microsoft Windows XP and 2003
DB-Library LDAP functionality on Microsoft Windows
New feature in ESD #1
XA support on Sun Solaris 8 (SPARC 64-bit)
Overview of XA Interface
Components of the XA Interface
International Developer’s Guide
About this book
Understanding Internationalization and Localization
Internationalization and localization
Advantages of internationalized applications
International systems
Open Client/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/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
Internationalizing standalone utilities
Tips
Make sure required files are installed
Using CS_NULLTERM with Open Client/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
The mnemonics file
Conversion files
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 SQL Server 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
What’s New in This Release
CS-Library changes
Server-Library changes
All libraries: CS_NULLTERM length parameter
Directories and Files Related to Internationalization
Overview
The locales directory
The locales file
Localized message files
The global object identifiers file
The charsets directory
The mnemonics file
How the mnemonics file works
Mnemonics file sections and entries
Mnemonics file example
Adding strings to the mnemonics file
Conversion files
The conversion configuration file
Collating sequence files
External Localization File Syntax
Localization file syntax
Syntax rules
Localization file sections
Example localization file
Glossary
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
Other Sybase development tools
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
Bulk copy special library
Two-phase commit service special library
Summary of changes for version 10.0
DB-Library routines added to version 10.0
DB-Library 12.0 and later
Recompiling DB-Library 4.x, 10.0.x, and 11.x applications
Sample programs and sample databases
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
dbsetdefcharset
dbsetdeflang
dbsetidle
dbsetifile
dbsetinterrupt
DBSETLAPP
DBSETLCHARSET
DBSETLENCRYPT
DBSETLHOST
DBSETLNATLANG
dbsetloginfo
dbsetlogintime
DBSETLPACKET
DBSETLPWD
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
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 example 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
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
The 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-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_manage_convert
cs_objects
cs_prop_ssl_localid
cs_set_convert
cs_setnull
cs_strbuild
cs_strcmp
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 SQL Server
Bulk-Library gateway programming
Inside the SRV_LANGUAGE event handler
“Insert Bulk” requests
“Writetext Bulk” requests
Inside the SRV_BULK event handler
Example
Bulk-Library Routines
List of 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
Server-Library/C Reference Manual
About this book
Introducing Open Server
Client/Server overview
Types of clients
Types of servers
Open server configurations
Standalone open server application
Auxiliary open server application
Gateway Open Server application
Open Server
The Open Server libraries
Network services
Using Open Server
The CS_CONTEXT structure
Steps in a simple program
Basic Open Server program
Open Server events
Default event handlers
Non client-initiated events
Registered procedures
Returning results to clients
Types of result data
Messages
Data rows
Parameters
Status values
Order of results
Error handling
Multithread programming
Topics
Attention events
Interrupt-level activity
Coding recommendations for attention events
Handling disconnects
Example
Browse mode
Example
Capabilities
Request capabilities
Response capabilities
Transparent negotiation
When does transparent negotiation take place?
Server-wide defaults
Explicit negotiation
Negotiating capabilities one at a time
Negotiating using a capability bitmask
Capability macros
Ad hoc retrieval of capability information
A note on pre-10.0 clients
Example
Client command errors
Sending messages with srv_sendinfo
Sequencing long messages
CS_SERVERMSG structure fields for sequenced messages
Extended error data
What is extended error data good for?
Sending extended error data to a client
CS_BROWSEDESC structure
CS_DATAFMT structure
CS_IODESC structure
CS-Library
Common routines
Common data structures
Error handling
CS_SERVERMSG structure
Cursors
Cursor overview
Advantages of cursors
Open Server applications and cursors
How are cursor requests generated?
Types of cursor commands
How is cursor information exchanged with a client?
SRV_CURDESC structure
Values for curstatus
Values for curcmd
Handling cursor requests
How to respond to specific requests
Key data
Update columns
Example
Data stream messages
Data stream messages overview
Retrieving client data stream messages
Sending data stream messages to a client
Directory services
Specifying a directory driver
Registering an Open Server application with a directory
Dynamic SQL
Advantages of dynamic SQL
Handling dynamic SQL requests
The srv_dynamic routine
Detecting a command type
Responding to client dynamic SQL commands
Example
Errors
Types of errors
Severity of errors
Operating system errors
Error numbers and corresponding message text
Example
Events
Event overview
What is an event handler?
Default and custom handlers
Coding custom handlers
Standard events
Programmer-defined events
Example
Gateway applications
Passthrough mode
International support
Localizing an Open Server application
Supporting localized clients
Using a CS_LOCALE structure to set custom localization values
Localizing CS-Library messages for clients
Creating localized connections for gateway applications
Localizing a CS_CONTEXT structure
Responding to client requests
Requests to change language and character set
Requests for localization information
Localization properties
Localization examples
Language calls
Messages
Multithread programming
What is a thread?
Thread types
Preemptive threads
Thread-safe functions
Thread-safe code and preemptive mode
Implementation specifics
Event-driven threads
Service threads
Site-handler threads
Scheduling
Scheduling methods
Selecting a thread to resume
Tools and techniques
Mutexes
Message queues
Protecting critical sections
Callback routines
Programming considerations
Example
Negotiated behavior
Login negotiations
Transparent negotiation
Explicit negotiation
Negotiating a secure connection
Ad hoc negotiations
Example
Options
Inside the SRV_OPTION event handler
Option descriptions and default values
Example
Passthrough mode
Regular passthrough mode
Negotiating the TDS protocol level in passthrough mode
Using regular passthrough mode
Example
Event handler passthrough mode
Coding and installing a full passthrough event handler
Enabling event handler passthrough mode for a thread
Negotiating the TDS protocol level
Processing parameter and row data
A note on terminology
The Open Server data processing model
Retrieving parameters
Returning rows
Returning return parameters
A closer look at describing, binding, and transferring
Describing
Binding
Transferring
Automatic conversion
Returning parameters in a language data stream
Example
Properties
Context properties
Server properties
SRV_S_TDSVERSION
SRV_S_TRACEFLAG
Thread properties
SRV_T_BULKTYPE
SRV_T_CHARTYPE
SRV_T_ENDPOINT
SRV_T_EVENT
SRV_T_FLTTYPE
SRV_T_LOGINTYPE
SRV_T_RMTPWDS
SRV_T_TDSVERSION
SRV_T_TYPE
Registered procedures
Standard remote procedure calls
Advantages of registered procedures
Notification procedures
Creating registered procedures
The mechanics of registered procedures
Registering procedures
Executing registered procedures
Maintaining lists
System registered procedures
Using callback handlers with registered procedures
Example
Remote procedure calls
Example
Security services
Security service properties
Login authentication services
Per-packet security services
SSL overview
How do security services work with Open Server?
Steps involved in a Client/Server dialog using security services
Using security mechanisms with Open Server applications
Security drivers
libtcl.cfg configuration file
Object identifiers
Changes to the interfaces file
Changes to the interfaces file: the SSL filter
Determining which security services are active
Scenarios for using security services with Open Server applications
Simple application using a security session
Gateway application with separate security sessions
Gateway with separate security sessions using delegation
Full passthrough gateway with direct security session
Text and image
Processing text and image data
Retrieving data from a client
Returning data to a client
Example
Types
Routines that manipulate datatypes
Open Server datatypes
Binary types
Bit type
Character types
Datetime types
Integer types
Real, float, numeric, and decimal types
Money types
Security types
Text and image types
Routines
srv_alloc
srv_alt_bind
srv_alt_desc&fmt
srv_alt_header
srv_alt_xferdata
srv_bind
srv_bmove
srv_bzero
srv_callback
srv_capability
srv_capability_info
srv_createmsgq
srv_createmutex
srv_createproc
srv_cursor_props
srv_dbg_stack
srv_dbg_switch
srv_define_event
srv_deletemsgq
srv_deletemutex
srv_desc&fmt
srv_dynamic
srv_envchange
srv_event
srv_event_deferred
srv_free
srv_get_text
srv_getloginfo
srv_getmsgq
srv_getobjid
srv_getobjname
srv_handle
srv_init
srv_langcpy
srv_langlen
srv_lockmutex
srv_log
srv_mask
srv_msg
srv_negotiate
srv_numparams
srv_options
srv_orderby
srv_poll (UNIX only)
srv_props
srv_putmsgq
srv_realloc
srv_recvpassthru
srv_regcreate
srv_regdefine
srv_regdrop
srv_regexec
srv_reginit
srv_reglist
srv_reglistfree
srv_regnowatch
srv_regparam
srv_regwatch
srv_regwatchlist
srv_rpcdb
srv_rpcname
srv_rpcnumber
srv_rpcoptions
srv_rpcowner
srv_run
srv_s_ssl_local_id
srv_select (UNIX only)
srv_send_text
srv_senddone
srv_sendinfo
srv_sendpassthru
srv_sendstatus
srv_setcolutype
srv_setcontrol
srv_setloginfo
srv_setpri
srv_signal (UNIX only)
srv_sleep
srv_spawn
srv_symbol
srv_tabcolname
srv_tabname
srv_termproc
srv_text_info
srv_thread_props
srv_timedsleep
srv_unlockmutex
srv_version
srv_wakeup
srv_xferdata
srv_yield
System Registered Procedures
sp_ps
sp_regcreate
sp_regdrop
sp_reglist
sp_regnowatch
sp_regwatch
sp_regwatchlist
sp_serverinfo
sp_terminate
sp_who
Glossary
Client-Library™/C Programmer’s Guide
About this book
Getting Started with Client-Library
Client-Library overview
Types of Client-Library applications
Adaptive Server client applications
Open Server client or gateway applications
A simple example 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_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/Server datatypes?
New unichar datatype
New datatypes and capabilities
isql and bcp utilities
Limitations
What are type constants?
Datatype summary
Binary types
Bit types
Character types
Datetime types
Numeric 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 parameter results
Processing return status results
Processing compute results
Processing message results
Processing describe results
Processing format results
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 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
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
What’s new in Client-Library
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 example programs
Isolate DB-Library code
Consider application redesign
Unified results handling
Cursors
Array binding
Asynchronous mode
Multithreading
Check 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
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
Embedded SQL™/C Programmer’s Guide
About this book
Introduction
Embedded SQL overview
Embedded SQL features
New features and enhancements
Client-Library runtime library
HA failover
Localization
FIPS flagger
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
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
Converting datatypes
Converting datatypes for result variables
Converting datatypes for input variables
Connecting to Adaptive Server
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 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
Indicator arrays
fetch into: batch arrays
Cursors and arrays
Selecting multiple rows using cursors
Cursor scoping rules
Declaring cursors
Example: Declaring a cursor
Opening cursors
Fetching data
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
About the -p option
About 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)
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
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
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
Sample programs
Embedded SQL/C sample makefile on Windows NT
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
Embedded SQL™/COBOL Programmer’s Guide
About this book
Introduction
Embedded SQL overview
Embedded SQL features
New features and enhancements
HA failover
Precompiler compatibility
Localization
FIPS flagger
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
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 datatypes
Converting datatypes
Converting datatypes for result variables
Converting datatypes for input variables
Connecting to Adaptive Server
Connecting to a server
user
password
connection_name
server
labelname
labelvalue
connect example
Changing the current connection
Establishing multiple connections
Naming a connection
Invalid statements with the at clause
Using Adaptive Server 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
fetch into: batch arrays
Cursors and arrays
Using cursors
Cursor scoping rules
Declaring cursors
Example: Declaring a cursor
Opening cursors
Fetching data
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)
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
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
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 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 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
SyBooks 3.4
SyBooks 3.0.1
SySAM Documentation
SySAM Documentation - Japanese
SySAM Documentation - Simplified Chinese
Sybase WorkSpace 2.0.2
SyBooks Online Infocenter Help