Preface

Intended Audience
Additional Information
Typographic Conventions

Chapter 1 - Data Objects

Data Object Types
Stored Procedures
Creating Stored Procedures
Vendor-Specific Differences
Sybase and Informix Limitations
DSQL Objects
How DSQL Objects are Managed
DSQL File Naming Convention
Manually Modifying Files
Binding DSQL Objects vs. Stored Procedures
How to Create DSQL Objects
Placeholders
Type Specifiers
When DSQL Objects Get Parsed
Arguments vs. Placeholders
Database Vendors and DSQL
FILE Objects
How FILE Objects are Managed
FILE Object Naming Convention
How to Create FILE Objects
Components of a FILE Object
FILE Object Options
EXEC Objects
How EXEC Objects are Managed
EXEC Object Naming Convention
How to Create EXEC Objects
Components of an EXEC Object
EXEC Object Options
EXEC Arguments
Output from FILE and EXEC Data Objects
Delimited Data
Fixed Width Data
Newline Delimited Data
FUNC Objects
How FUNC Objects are Managed
FUNC Object Naming Convention
How to Create FUNC Objects
Components of a func Object
FUNC Object Options
Extracting Data Object Arguments
NULL Data Objects
Uses for the NULL Data Object

Chapter 2 - Sapphire/Web Interfaces

Project Window
States of the interface.
About the Interface
Pulldown Menus
Pop-up Menus
Button Bars
How to Invoke the Interface
Project Anatomy
Activator ID Strings
Document Manager
States of the interface
About the Interface
Pulldown Menus
Pop-up Menus
Button Bars
How to Invoke the Interface
Adding Existing HTML Documents
Creating a New HTML Document
The Database Browser
States of the interface
About the Interface
Pulldown Menus
Pop-up Menus
How to Invoke the Interface
Object Selector
States of the interface.
About the Interface
How to Invoke the Interface
New Data Objects
NULL Data Objects
Object Editor
States of the interface
Pulldown Menus
How to Invoke the Interface
Arguments for EXEC Data Objects
Testing PROC and DSQL Data Objects
Test Arguments Dialog
The Object Results Viewer
Setting Privileges
Activator Selector
States of the Activator Selector.
About the Activator Selector
How to Invoke the Interface
Activator ID Strings
Object Bind Editor
States of the Object Bind Editor.
About the Object Bind Editor
Pulldown Menus
How to Invoke the Interface
Arguments
Results
Results Detail Dialog
Population Callback Options
Alias Manager
States of the Alias Manager.
About the Alias Manager
Pulldown Menus
Pop-up Menus
Button Bars
How to Invoke the Alias Manager
Activator Code
States of the Activator Code Interface
About the Activator Code Interface
How to Invoke the Interface
Text Editors
Project Code Interface
States of the Project Code Interface.
About the Project Code Interface
How to Invoke the Interface
Text Editors
Login Manager
States of the Login Manager.
About the Login Manager
Pulldown Menus
How to Invoke the Interface
Bind Manager
States of the Bind Manager.
About the Bind Manager
How to Invoke the Interface
Change Item Option Menu
Bind Manager Controls
Changing a Database Name
Options Editor
States of the Options Editor.
About the Options Editor
How to Invoke the Interface
Saving Options
Database Login Dialog
Orb Messages Window

Chapter 3 - HTML Extensions

Activators
Data Sites
Loops
Hotlists
Multiple Detail Information Columns in a Hotlist
Embedded SQL

Chapter 4 - Project Options

Overview
Global Options
User Options
Project Options
Dynamic Options
Project Categories
Configuration Files
Scripts used by Sapphire/Web
sabrowser.sh
saedithtml.sh
samake.sh
sareadhtml.sh
sareadmodule.sh
sareadprj.sh
sarel1.sh
sarel2.sh
satest.sh
saweb.sh
sawritehtml.sh
sawritemodule.sh
sawriteprj.sh
Makefile.$SA_APPL_LIBS
Makefile.$SA_APPL_OBJS
Makefile.$SA_LANGUAGE
Makefile.$SA_SOURCE_SUFFIX
Makefile.$SA_SYSTEM_LIBS
Makefile.$SA_USER_CFLAGS
Makefile.$SA_USER_LD_FLAGS
Makefile.exeSuffix
Project.Allow Config File
Project.Allow SQL in HTML
Project.Call Read/Write Scripts
Project.Config File Name
Project.Default HTML Extension
Project.HTML Startup Document
Project.Print Environment
Project.Print Form Args
Project.Relocatable Project
Project.Verify Prompt
Release.CGI URL
Release.Database Name
Release.Database Server
Release.Database User Name
Release.Database User Password
Release.Database Vendor
Release.GIF URL
Release.HTML Path
Release.HTML URL
Release.ORB_HOST
Release.ORB_SEED
Test.CGI Path
Test.CGI URL
Test.Database Name
Test.Database Server
Test.Database User Name
Test.Database User Password
Test.Database Vendor
Test.GIF URL
Test.HTML Path
Test.HTML URL
Test.ORB_HOST
Test.ORB_SEED

Chapter 5 - Sapphire/Gateway

Where Sapphire/Gateway Must Run
Sapphire/Web
Generated CGI Executables
How Sapphire/Gateway Works
Starting a Gateway Daemon
Required For All Configurations
Daemon On Same Machine As CGI or Sapphire/Web
Daemon On Different Machine Than CGI or Sapphire/Web
Multiple Daemons On Different Machine Than CGI or Sapphire/Web
Stand-alone CGIs
The sachmake.sh Utility
Configuring Your CGI to be Stand-alone
Using Multiple Databases With Oracle

Chapter 6 - Population Callbacks

The Anatomy of the Population Callback Structure
Population Callback Prototype
The Callback Structure
The Data Structure
More On Population Callbacks
Specifying Population Callbacks in the Object Bind Editor
Population Callback Rules
Adding Population Callbacks to the Tool
Step 1 - Write and Test
Step 2 - Add to List of Callbacks
Step 3 - Decide Between Object Files and Libraries
Step 4 - Modify The Makefile Template

Chapter 7 - Sapphire/Web Functions

The Client API
HTML Output Functions
Generic Container Functions
The Table Component Object
FUNCTION Object Implementation
Data Site Callbacks
Login Functionality and Maintaining State
Error Handling
Debugging
Rebuilding the Gateway
Running Files, Executables, and FUNCTION objects on the Gateway
Porting CGI Projects Between Unix Platforms
Building Libraries
The Create Table Example
Options
The Client Source Files

Chapter 8 - Sapphire/Web Client API

DoWorkProc
getSgeWorkCallData
SaAddConsoleErrHandler
SaAddLogin
SaAddLoginRec
SaAllowSQL
SaAppendTheConsole
SaAsciiToHex
SaAssignNumRowsToInt
SaBlobSetLog
SaBodyBegin
SaBodyEnd
SaCatFile
SaCatGets
SaClearKeyList
SaClearTheErrors
SaCopyDbString
SaCopyLocalBuffer
SaCopyString
SaDestroyLocalBuffers
SaDisableConsole
SaDisplayTheConsole
SaEnableConsole
SaExecSQL
SaExit
SaFormBegin
SaFormCheckBox
SaFormEnd
SaFormHidden
SaFormPass
SaFormRadio
SaFormReset
SaFormSubmit
SaFreeCbs
SaGetAffectedRowCount
SaGetBlob
SaGetBlobDone
SaGetBlobToFile
SaGetCancelStatus
SaGetErrorStatus
SaGetInputValue
SaGetKeyedArg
SaGetNArg
SaGetNInputValue
SaGetNumInputValues
SaGetReturnStatus
SaGetThisAffectedRowCount
SaHeadBegin
SaHeadEnd
SaHeader
SaHeaderBegin
SaHeaderEnd
SaHexToAscii
SaHtmlBegin
SaHtmlEnd
SaHtmlTitle
SaIncludeHtml
SaInitClient
SaIsSubmitName
SaIsValidLogin
SaIsValidLoginRec
SaListHead
SaListItem
SaListItemBegin
SaListItemEnd
SaMakeCbsByCol
SaMakeCbsByGroup
SaMakeCbsColList
SaMakeCbsStartColRange
SaMakeCbsStartStopCol
SaMakeEscapedString
SaMakeHtmlString
SaMakeStringFromCBS
SaMakeStringFromIndexRow
SaMakeStringFromIndexRowCol
SaMakeStringFromThisRow
SaMakeStringFromThisRowCol
SaMenuBegin
SaMenuEnd
SaMsgErrHandler
SaOListBegin
SaOListEnd
SaPopulateChars
SaPopulateForText
SaPopulateHotList
SaPopulateListItem
SaPopulateMasDetHotList
SaPopulateMasterDetail
SaPopulateMsgBox
SaPopulateParagraph
SaPopulateOptions
SaPopulateTable
SaPopulateTableAll
SaPopulateTableMsgBox
SaPopulateTextArea
SaPrintAllErrors
SaPrintAllKeys
SaPrintCBStoFile
SaPrintCBStoSaConsole
SaPrintHtmlError
SaPrintKeyStr
SaPrintOutCBS
SaPrintOutCBStoStdErr
SaProcessInputStream
SaPutBlob
SaPutBlobFromFile
SaReadFileToString
SaRegisterFuncSite
SaRegisterHtmlActivator
SaRegisterHtmlAlias
SaRegisterObjImp
SaRegisterStringSite
SaRegErrSite
SaReqAppendColCount
SaReqAppendRowCount
SaRegStdErrSite
SaReqAppendError
SaReqAppendString
SaReqGetArgByName
SaReqGetNArg
SaReqGetNArgName
SaReqGetNumArgs
SaReqSetAffectedRowCount
SaReqSetErrorCode
SaReqSetGroupCount
SaReqSetReturnCode
SaRereg
SaResetCancelStatus
SaReturnLocalBuffer
SaRowBeginExt
SaSafeExecArg
SaSelectBegin
SaSelectEnd
SaSelectOption
SaSetDefaultPass
SaSetDefaults
SaSetDefaultUser
SaSetDefaultVendor
SaSetHtmlDir
SaSetMaxRows
SaSetOrbHost
SaSetOrbSeed
SaSetPrintArgs
SaSetTimeOut
SaSetUseDefaultFlag
SaSetMsgErrHandler
SaStoreErrString
SaStoreKeyString
SaTableBegin
SaTableBeginExt
SaTableCaption
SaTableEnd
SaTableHead
SaTableHeadBegin
SaTableHeadEnd
SaTableHeadExt
SaTableItem
SaTableItemBegin
SaTableItemEnd
SaTableItemExt
SaTableRowBegin
SaTableRowEnd
SaTextArea
SaTextAreaBegin
SaTextAreaEnd
SaTextBox
SaULIstBegin
SaULIstEnd
SaUnreg
SaVaHtmlTable
SgeDestroyCacheById
SgeDestroyCacheByName
SgeSetAdHocFlag
SgeSetArgBind
SgeSetArgBnd2
SgeSetColBind
SgeSetColDetail
SgeSetStatement
SgeVaSetFrags
SutAddList
SutAddNList
SutCopyList
SutDeleteList
SutDestroyList
SutGetNList
SutGetPosFromItem
SutNewList
SutNewListSize
SutRemoveList
SutRemoveNList
SutReplaceNList
SutSizList