Release Notes for SQLBase 8.0 1
Migrating Databases to SQLBase 8.0 2
Special Consideration for Auto Conversion 2
Gupta Recommended steps for “auto-converting” databases to
SQLBase 8.0 2
New Features 3
Maximum identifier name size is doubled 3
Updated OLEDB Provider 4
Updated ODBC Driver 4
Updated SQL/API 4
Maximum database name size is doubled… 4
Load/Unload with encryption 4
Support for temporary files larger than 2GB 4
New functions 5
Support 64-bit integer binding from C programs 5
COM+ Support 5
SQLBase Management Console (MMC snap-in) 6
Connectivity Administrator 7
Compatibility and system requirements 7
Issues 8
Known problems 9
SQLBase 8.0 contains significant structural incompatibilities with prior versions of SQLBase databases. Therefore a “conversion process” must occur. This process can be accomplished in one of two ways:
1. By performing an “UNLOAD” of your current database in its existing version, install SQLBase 8.0, create a new database, and perform a “LOAD” into the new SQLBase 8 database (See SQL Language Reference & DBA Guide for more information about Load/Unload.)
2. SQLBase 8.0 does contain the facility to automatically convert your databases for you. This conversion occurs during the first user connection to the database being serviced by the SQLBase 8.0 Server.
The auto-conversion has the following restrictions and will irreparably fail and harm your database if these restrictions are violated:
1. Ensure the existing database is in a consistent state – with your current version of SQLBase Disconnect all users from the database, connect to the database as the user SYSADM and perform a CHECK DATABASE. (optionally, you can perform an “UNLOAD DATABASE” and skip step 2.)
2. Disconnect and perform a “SET SERVER” and a “DEINSTALL DATABASE” of your existing (older version) database. Disconnect your Server connection (“SET SERVER OFF”) close the SQLBase Server gracefully.
3. Ensure a backup of the database – with the SQLBase Server exited, copy the database to a backup location. (If in Step 1 you performed an “UNLOAD” then copy the “UNLOAD” file to the backup location.
4. Backup your existing sql.ini file and uninstall your current version of SQLBase Server. ( After the uninstall, ensure that you do not have copies of sqlwntm.dll and sqlngci.dll in your %windir%\system32 or anywhere in your Windows PATH.)
5. Install SQLBase 8.0 Server into a target directory different then that of your previous version. After installation use either Windows Services Manager or SQLBase Management Console, to stop the SQLBase 8.0 Server (and SQLBase Resource Manager.)
6. Copy your sql.ini from Step 3 into your SQLBase 8.0 installation target directory. Using Connectivity Administrator (or notepad) change your dbdir (database directory) to the desired location. Move your database (folder & file) to the dbdir location.
7. Start SQLBase 8.0 Server ( by using either Windows Service Manager, SQLBase Management Console, or Windows “Start” menu.
8. Using SQLTalk, perform a “SET SERVER” and an “INSTALL DATABASE” of your database. Disconnect your Server connection (“SET SERVER OFF”.) Connect to your database as the user SYSADM (the database will be converted and may take several minutes.) Perform an “UPDATE STATISTICS” and “COMMIT” your changes.
9. Your database is now converted.
The maximum number of characters allowed for database object identifiers is doubled in SQLBase 8. In earlier releases, it was 18. Now identifiers are 36 characters long. The objects affected by this change are:
· Table name
· Column name
· View name
· Index name
· Bind variable name (SQLMBNL)
· Cursor name
· Command name
· Procedure name
· Synonym name
· Trigger name
· Correlation name
· Event name
· Referential Constraint Name (SQLMCNM)
In
addition to modifying the provider to make it support COM+ transactions,
several defects have been fixed.
Gupta
now provides their own ODBC driver, rather than licensing the Merant ODBC
driver. Some obsolete connection attributes that were used by the Merant driver
are preserved by the Gupta driver for purposes of backward compatibility. For
details on attributes, see chapter 10 of the Database Administrator’s Guide, or
press F1 for online help during setup of an ODBC datasource.
The
Gupta ODBC driver, just like the Merant driver before it, cannot be used with
Team Developer to connect to SQLBase, because it makes multiple recursive calls
into the SQLAPI.
In
addition to changes to support COM+ transactions, another new API function has
been added: sqlmls (Remote Long Seek into file
on server), for Windows platforms only.
It has increased from 8 to 16. It must still be a valid operating system dataset name.
When doing an UNLOAD DATABASE command, you may now use the clause “ENCRYPTED key” in the same position that you would otherwise use the COMPRESS clause. Use this option to encrypt the resulting data file. You may specify a key for the encryption, or you may omit the key. Up to 16 characters may be used in the key value. If there are embedded blanks in the key value you specify, it must be delimited by double quotes. The same key that you specified, if any, must also be used later if you reference the data file in a LOAD command.
More information about this clause is available in Gupta Books Online, in the SQL Language Reference Manual under the LOAD and UNLOAD commands.
For database engines running on Windows operating systems, temporary files are no longer limited to 2 gigabytes in size.
Returns a four-character string (in the format of one letter plus three digits) that represents the sound of the characters in string1. The resulting four-character string can be useful for purposes of indexing strings based on how they sound. An entry in SQL.INI controls the exact SOUNDEX algorithm used – choices are SQLBase (the default), SQL Server, or Oracle.
Compares two strings. Returns an integer that indicates how similar the two sounds are, based on their @SOUNDEX values. Return values range from 0 to 4. Zero means no similarity or an error; higher integers mean better matches; a 4 means a perfect match.
More detailed information about these two functions is available in Gupta Books Online, in the SQL Language Reference Manual.
SQLPSLL and SQLPULL program data types have been added to SQL.H. This introduces support for _int64 C type. The ODBC driver will also benefit from this change. Also, SQL.H file was modified to introduce b8 (byte8) and ub8 (ubyte8) data types.
Support for COM+, new in SQLBase 8, includes the following changes:
Current limitation: COM+ transactions will not work if you are using the Transmission Security features of SQLBase (the secureapi keyword value in SQL.INI is greater than zero.)
SQLBRM is the component that enables COM+ transactions against SQLBase. It is notified by the Microsoft Distributed Transaction Coordinator (DTC) when a COM+ component initiates a transaction against the SQLBase server. When an application running under COM+ issues a command to commit or abort a transaction, DTC notifies SQLBRM, which causes the command to be executed in SQLBase. If the SQLBase server fails during a transaction, SQLBRM notifies DTC, and later plays back and commits the transaction when the SQLBase server restarts.
SQLBRM.EXE is installed by default as a Windows service. You can run the executable directly instead, but ordinarily you would use it as a service. It takes three parameters:
SQLBRM /ListenPort=2156 /LogDir=c:\windows\temp /Autostart=yes
The values shown are the default values used when SQLBRM is installed as a service (presuming that “windows” is the directory where your Windows operating system is installed.)
The Autostart parameter controls whether SQLBRM will start SQLBase if it's not already running. If SQLBRM is a service, it will start SQLBase only as a service, presuming that SQLBase has been configured to allow this.
To use SQLBRM with COM+, you must specify the SQLMPIPE protocol in the section of SQL.INI that relates to the database engine:
[dbntsrv]
dbname=ISLAND,sqlmpipe
servername=server1,sqlmpipe
…
[dbntsrv.dll]
comdll=sqlmpipe
…
The SQL.INI settings related to clients require that you use SQLWS32 as the communication protocol when running against database engines using SQLMPIPE:
[win32client.dll]
comdll=sqlws32
[win32client.ws32]
serverpath=server1,yourhostname,2156/*
…
Note the use of 2156 as the default listen port for SQLBRM, as contrasted with the default listen port of 2155 for SQLBase itself.
When running as a service, Resource Manager can be shut down from the Windows Services administrator, or from SQLBase Management Console (described below). When Resource Manager receives a request to shut down, it waits until any existing users have disconnected from SQLBase.
This component, SQLBMMC.DLL, is designed to integrate with the Microsoft Management Console. It is a replacement for SQLBase Server Monitor in older versions of SQLBase.
SQLBase Management Console (SMC) can be started from the Gupta program group.
Your SQLBase server installation appears as a tree structure of nodes in the left pane of the MMC window, and various status displays appear in the right pane, depending on the node that is currently selected. The online help file contains documentation on all SMC capabilities. Some of them are summarized here. By using right-click context menus, you can invoke the following general functionality:
· Display all database servers, their related databases, and listening protocols.
· Display the database path, current number of cursors, current number of users, database size, and database volume for a specific database.
· Start or stop a particular database server. Note that if the SQLBase service itself is shown as “Disabled”, then using the Start command will launch the database engine as a separate application rather than a Windows service.
· Change the Startup Type, Event Logging, and Server Console properties of a database server.
· Change the currently active database server.
· Start and stop SQLBase Resource Manager, and display its statistics. (Note that the “Connects” and “Disconnects” statistics represent the total number of cursors connected and disconnected to the server, not the number of actual connect and disconnect requests, which will be smaller.)
In earlier versions of SQLBase, the Connectivity Administrator filename was CFGWI10.EXE. It has changed to GPTCONFIG.EXE. A new node is visible in the Protocols section of the server tab, “MTS Connection”. This represents the new SQLMPIPE protocol to support COM+ transactions and SQLBase Resource Manager. Note that there is no corresponding protocol node on the Connectivity (client) tab. Clients interact with the Resource Manager using the TCP/IP protocol, as shown in the SQL.INI examples above, in the Resource Manager section of this document.
The SQLBase 8 server and client have important considerations regarding backward compatibility. An older SQLBase client (SQLBase 7.x or later) can connect to SQLBase 8. Certainly, no new features of SQLBase 8 would be available to applications still using the SQLBase 7.x client.
This version of SQLBase requires (and installs) MDAC 2.7 to support the OLEDB provider. MDAC, in turn, requires Internet Explorer 4.01 or higher to be already installed prior to the SQLBase installation.
This version of SQLBase also requires Microsoft Management Console (MMC) version 1.1 or higher be installed for the SQLBase Management Console (SMC) snap-in to work.
Solution: Register the SMC snap-in SQLBMMC.DLL using the REGSVR32 command.
Solution: Copying SQLSTD.INI to SQL.INI should implement connection using the non-COM+ (SQLAPI) protocol.