Contents

Chapter 1: Introduction
What's new in JDataStore 3.5
   JDataStore enhancements
   API changes
   Deployment changes
   DataStore Explorer
   JDBC Explorer
When to use JDataStore 
JDataStore and DataStore
What you should know
What's in this book
Starting with the DataStore Explorer
Deploying DataStore application components
Contacting Borland developer support

Chapter 2: DataStore fundamentals
DataStore primer
Serializing objects
   Demonstration class: Hello.java
   Creating a DataStore file
   Opening and closing connections
   Handling basic DataStore exceptions
   Deleting DataStore files
   Storing Java objects
   Retrieving Java objects
   Advantages for persistent object storage
Using the directory
   Demonstration class: Dir.java
   Opening a DataStore directory
   DataStore directory contents
      Stream details
      Directory sort order
   Reading a DataStore directory
   Closing the DataStore directory
   Checking for existing streams
Storing arbitrary files
   Demonstration class: ImportFile.java
   Creating a file stream
   Referencing the connected DataStore
   Writing to a file stream
   Closing a file stream
   Opening, seeking, and reading a file stream
Copying streams
   copyStreams parameters
      Naming and renaming the streams to copy
   Demonstration class: Dup.java
Deleting and undeleting streams
   Deleting streams
   How DataStore reuses deleted blocks
   Undeleting DataStore streams 
   Demonstration class: DeleteTest.java
   Locating directory entries
   Using individual directory rows
   Packing DataStore files

Chapter 3: DataStore as an embedded database
Using DataExpress for data access
   Demonstration class: DxTable.java
   Connecting to a DataStore with StorageDataSet
   Creating DataStore tables with DataExpress
   Using DataStore tables with DataExpress
Transactional DataStores
   Enabling transaction support
      Creating new transactional DataStores
      Adding transaction support to existing DataStores
      Opening a transactional DataStore
      Changing transaction settings
   Transaction log files
      Moving transaction log files
   Bypassing transaction support
   Removing transaction support
   Deleting transactional DataStores
Controlling DataStore transactions
   Understanding the transaction architecture
   Committing and rolling back transactions
   Tutorial: Controlling transactions via DataExpress
      Step 1: Create a transactional DataStore with test data
      Step 2: Create a data module
      Step 3: Create a GUI for the DataStore table
      Step 4: Add direct transaction control
      Step 5: Add control over auto-commit
Using JDBC for data access
   Demonstration class: JdbcTable.java
   Controlling transactions through JDBC

Chapter 4: Multi-user and remote access to DataStores
Using the JDBC driver for remote access
Running the DataStore JDBC server
   Reconfiguring the server
Deploying the DataStore JDBC server
   Packaging the server
   Starting the server
Creating custom JDBC servers
Multi-user transaction issues
   Transaction isolation level
   Avoiding blocks and deadlocks
      Conserving write transactions
      Using read-only transactions
      Detecting blocks and deadlocks

Chapter 5: Persisting data in a DataStore
Using DataStore instead of MemoryStore
Using a DataStore with StorageDataSets
Tutorial: Offline editing with DataStore
   Understanding how DataStore manages offline data
Restructuring DataStore StorageDataSets
   Data type coercions
   Persistent column editing
   Understanding structure changes 

Chapter 6: Using the DataStore Explorer
Launching the DataStore Explorer
   Starting the DataStore Explorer from the command line
Basic DataStore operations
   Creating a new DataStore file
   Opening an existing DataStore file
      Setting options for opening DataStore files
      Opening a DataStore file that was not closed properly
   Viewing DataStore file information
   Viewing stream contents
   Renaming streams
   Deleting streams
   Undeleting streams
   Copying DataStore streams
   Verifying the DataStore
   Making the DataStore transactional
   Modifying transaction settings
   Removing transaction support
   Closing DataStore files
DataStore Explorer as a query console
   Using DataStore Explorer to manage queries
      DataStore Explorer limitations
   Creating and maintaining queries and connections
   Fetching and editing data
   Saving changes and refreshing data
Importing tables and files
   Importing text files as tables
   Importing files
Executing SQL
DataStore file operations
   Packing the DataStore file
   Upgrading the DataStore file
   Deleting the DataStore file

Chapter 7: Optimizing DataStore applications
General usage recommendations 
   Closing the DataStore
   Controlling how often cache blocks are written to disk 
   Tuning memory
   Miscellaneous performance tips
DataStore companion components
Using data modules
Optimizing transactional applications
   Using read-only transactions
   Using soft commit mode
   Transaction log files
      Disabling status logging
Pruning deployed resources

Chapter 8: Troubleshooting
Debugging DataStore applications
Verifying DataStore contents
Problems locating and ordering data
Saving log files

Appendix A: Specifications
DataStore file capacity 
DataStore stream names

Appendix B: SQL reference
Lists in syntax notation
Data types
Literals
Keywords
Identifiers
Expressions
Predicates
   BETWEEN
   IS
   LIKE
Functions
   CHAR_LENGTH and CHARACTER_LENGTH
   CURRENT_DATE, CURRENT_TIME, and CURRENT_TIMESTAMP
   EXTRACT
   LOWER and UPPER
   POSITION
   SUBSTRING
   TRIM
Statements
   CREATE TABLE
   ALTER TABLE
   CREATE INDEX
   SELECT
   GROUP BY and HAVING
   ORDER BY
   INSERT
   UPDATE
   DELETE
   DROP INDEX
   DROP TABLE

© 1997, 2000 by INPRISE Corporation, Inc.
All Rights Reserved