==========================================================================
=                  Desktop DBA v3.1 - Notes 03-09-1995                   =
==========================================================================
V3.1.2

FIXES:
======
156827  DDL for tables with float datatype for Oracle not pasting properly
        into scripts window.
160614  Triggers list not refreshed on drop under ORacle.
167315  DDL extract of views with small amount of text, and large number of
        columns caused GPF.
167445  On Delete cascade no appended to contraint DDL under Oracle.
167989  Alter table displayed message that objects were not re-created
        when they actually were.
168306  No error messages displayed in some cases. (168887,171704,172995)
168348  No columns appearing in tables window for certain instances of
        Oracle.
168373  DragNDrop for Sybase not use destination database for triggers
        and stroed procedures.
168921  Object count starting at one on Server save under Oracle.
169351  GPF in COMMDLG.DLL when printing DDL from various places.
        (170749
170452  Text data containing nulls, not retaining null value in Sybase.
170576  Pasting into scripts window was not working for object name greater
        than 20 characters. (171300,171619,172276,171471)
171475  Shutdown under Sybase hung workstation.
172216  Slow response entering add Constraint in Oracle.
172280  Original table not removed in System10 table atler when table
        had foreign key references.
172511  No prompt for use of template on create from database tree.
172514  Characters missing oin View alter in rare case in Sybase.
172712  Not all Synonyms displayed on Synonyms screen in Oracle.
172568  Table alter under Sybase would not allow datetime to 
        smalldatetime conversions.
172801  Table permissions not updated when select/deselect Alter or Index.
173742  Trusted option not update remote server screen in Sybase.
174755  Removed extra buttons on toolbar when non-spreadsheet scripts output
        used.
175016  Removed constraint button during table alter in System10.
175043  No message display on error in SQL Scripts when using non-
        spreadsheet output.
175288  Commands over 4K in Oracle caused GPF from SQL Scripts window.
175299  Device name larger than 21 characters caused them not to display
        on left-side of database tree.
175838  Cluster info not included in table DDL for Oracle.
 

User Requested Enhancements
===========================
173183  Select same object when type changes on SQL Scripts toolbar.
174366  Warn user of potential problem, during table alter when white 
        space entered for non-character data that does not allow nulls.

V3.1.1
User Requested Enhancements
===========================
158843  Ability to specify owner of objects installed for Oracle access.
135914  Ability to set application privileges on Roles screen in Oracle
137195  Ability to grant table privileges to Roles on Permissions screen
        (140294, 140851)
138857  Addition of new System 10 database options on Options screen
140848  Help text appears in status bar when user moves mouse over
        toolbar buttons
140864  Users can now save DDL for dependent objects along with Table
        DDL
145076  Tables drop-down list for oracle widened. (152626)
144969  Ability to create a foreign key where one object in the relation
        is a view
149537  Stored Procedure Alter window now larger and horizontally
        scrollable
152626  Enlarged table name combobox on Tables screen for Oracle

FIXES:
======
131159	Arithmetic overflow error from sp_dtdba_freedevice on devices 
        greater	than 2 Gigabytes (144265)
132847	Extended table alter drops constraint, permission, and index info
        on Oracle (130091,132263,132947,133477,134124,136051,136182,
        136641,142397)
135954	GPF in DATCNTRL.DLL when using Shutdown command
137825	Received overflow error in Scripts when selecting columns with 
	smalldatetime datatype
138135	Preferences screen too large for smaller monitors
138299	Overflow errors in scripts window when selecting columns with
	TEXT datatype
138423	Inability to read entire error message if message was long.  New
	preference option allows scripts output to be in a listbox instead
	of a spreadsheet.  Additionally, message within the spreadsheet
        are issued line breaks at 75 characters. (145821)
139770	Problems in extended table alter with adding TEXT NOT NULL columns
140806	Attempt to drop constraints during extended table alter now takes
	place before dropping the table in SQL Server
140856	Database Tree now repopulates database names after renaming a DB
141786	Sybase Users screen sometimes incorrectly enabled Drop button
143815	Scripts windows now supports up to 9 COMPUTE columns
143965	User interface problem on Dump/Options screen with Notify 
        combobox
144889	When calculating permissions, no wait cursor was displayed 
        (145569)
145114  Save as for Stored Procedures under Win OS/2 generated GPF's
        on some machines.
145266  Line wrap problem printing from SQL Scripts. (149950)
145274	Redraw problem after altering a trigger
145289	Problem in Font dialog in regards to scripts window
145857	SQL syntax error in Sybase constraints screen after using Keys 
        button
147167	Incorrectly finds AS in a view's DDL when altering the view
147191	Enter key was not working in View Alter edit window
147279	Save As and Print sometimes thought stored proc text was 0 
        length
147462	Properly handling Identity columns during extended table alter
147834	Save As from tables screen didn't bring up Options dialog
148099	Login name wasn't removed from listing correctly after adding 
        it to a database
148750	Permissions screen under Tables was slow.  Fixed by combining 
        SQL statements
148909	User could specify excessively long file name in DB Compare, 
        which ended up being invalid. (154377)
148930	When saving device, used MB instead of 2K blocks
149102	When drag-n-drop devices, used 2K blocks for all device types, 
        not just dump devices
150163	Segments screen now enables Drop buttons correctly
150308	Syntax error when re-entering Constraints window on System 10
150699	Save DDL for table didn't show constraint information
150777	When saving logins, now ignores aliases that have no base login
151205	Pasting table DDL in scripts window missing Numeric precision 
        & scale (153900)
151596	Added horizontal scroll to Datafiles listbox for Oracle 
        tablespaces
151883	Saving a database's messages used to cause an infinite loop
152180	Inability to open Roles window after opening certain other 
        windows
152957  DDL extraction and Drag-N-Drop of tablespace did not work properly
153752	Added horizontal scrollbar and better interface for Oracle 
        View Alter
154558  Foreign keys saved twice in save as.
156613  Syntax error in oracle permission for sequences.


========================================================================
=                        LATE BREAKING NEWS                            =
========================================================================

The character string used delimit commands to be executed from a
SQL Scripts window may be changed from the defaults of:

go - Sybase and SQL Server
;  - Oracle Server
;  - DB2/2 and DB2/6000 Servers

by placing a CommandDelimiter=xxxx in the [Server#] 
section of the server in the DBADESK.INI file in your
windows directory.  xxxx - represents up to four characters
that will be used to represent the delimiter.

Example:

[Server3]
Name=Sybase
ServerType='S'
CommandDelimiter=run


[Server4]
Name=Oracle7
ServerType='O'
CommandDelimiter=//

NOTE:
For Oracle users, this is especially useful if you are running scripts
that contain PL-SQL blocks with ;'s at the end of each line.
Otherwise the PL-SQL blocks would require an additional ; at the end of 
each line, inorder for Desktop DBA to interpret the command properly.


========================================================================
=                 LATE BREAKING NEWS for Oracle Users:                 =
========================================================================

The following DBADESK.INI fragment may be used to include or exclude
certain objects during database copy/save object selections.  Simply
add this fragment to your DBADESK.INI file and set the value equal to
0 (zero) for the OBJECT_NAME fragments you wish to exclude. 

IncludeSYS=0   - will exclude all objects owned by SYS.
IncludeV$=0    - will exclude all objects with an OBJECT_NAME like 'V$%'.
IncludeV_$=0   - will exclude all objects with an OBJECT_NAME like 'V_$%'.
Include$=0     - will exclude all objects with an OBJECT_NAME like '%$'.
IncludeUSER_=0 - will exclude all objects with an OBJECT_NAME like 'USER_%'.
IncludeDBA_=0  - will exclude all objects with an OBJECT_NAME like 'DBA_%'.
IncludeALL_=0  - will exclude all objects with an OBJECT_NAME like 'ALL_%'.
IncludeDBMS_=0 - will exclude all objects with an OBJECT_NAME like 'DBMS_%'.

The UserDefinedWhere= allows the user to append additional exclusion
criteria.  The statement will be placed in ()'s, and it is NOT necessary
to put the WHERE.  Placing the WHERE infront will generate a syntax error!


DBADESK.INI
   .
   .
   .
[CopySaveOptions]
IncludeSYS=1

IncludeV$=1
IncludeV_$=1
Include$=1
IncludeUSER_=1
IncludeDBA_=1
IncludeALL_=1
IncludeDBMS_=1

UserDefinedWhere=OBJECT_NAME NOT LIKE 'DESKTOP%' AND OWNER!='SYSTEM'
   .
   .
   .



========================================================================
=                           INSTALLATION                               =
========================================================================

SYBASE:
=======

     The Desktop DBA installation procedure is fairly straight-forward,
but there are a few assumptions that it makes you should know about.

     The first is that the client workstation onto which Desktop DBA 
will be installed has Sybase's (or Microsoft's) Net-Lib already 
installed.  The Net-Lib's Dynamic Link Libraries (DLLs) receive calls 
from Desktop DBA and translate them into information formatted properly 
for your network protocol.  If you are not the person who handles 
installation of systems software (as opposed to application software), 
ask your SQL Server systems administrator to make sure your workstation 
is set up to handle Windows-based client/server applications.

     There are specific Net-Lib DLLs for each network protocol and 
protocol software manufacturer.  These files are typically located in 
the \SQL\DLL or Windows directory of the client.  A partial list of 
commonly used ones appears below:

Protocol & Maker                DLL file name   Recommended date and size
---------------------------     -------------   -------------------------
Named Pipes                     DBNMP3.DLL       8667 07-08-93
AT & T                          WDBATTST.DLL     8807 05-14-91
NCR StarGROUP                   WDBATTTC.DLL    10197 07-13-93
DEC Pathwork DecNet             WDBDECDE.DLL    13364 07-23-93
FTP PC/TCP                      WDBFTPTC.DLL     9685 07-08-93
HP Arpa Services TCP/IP         WDBHPTCP.DLL    13317 07-08-93
Microsoft TCP/IP                WDBMSTCP.DLL    10293 07-23-93
NetManage TCP/IP                WDBNEWTC.DLL    10853 07-08-93
Novell Netware SPX              WDBNOVSP.DLL    11749 07-08-93
Novell LanWorkplace TCP/IP      WDBNOVTC.DLL    10597 07-08-93
SUN PC/NFS TCP/IP               WDBSUNTC.DLL    12949 07-08-93
Wollongong TCP/IP               WDBWOLTC.DLL    10325 07-08-93
Windows Sockets                 WDBWSKTC.DLL    13469 07-30-93

     The second requirement for Desktop DBA installation is for the client 
workstation's WIN.INI to have a properly-structured [SQLSERVER] section.  
This is used by the W3DBLIB.DLL that is included on the Desktop DBA 
diskette and should be set up by the Net-Lib installation.  The entries
in the section should be of the form:

SERVERNAME=NETLIB,parameters,URGENT

where SERVERNAME is the name of a server that Desktop DBA will understand,
and NETLIB is the Net-Lib DLL file name, but without the ".DLL" extension.
The "parameters" information is optional and may not appear in your 
WIN.INI file.  Also, certain network installations (such as Microsoft's
 NIK for Banyan) have the "parameters" information to the left of the 
equals sign and to the right of the SERVERNAME.  There is also a "special" 
value for SERVERNAME, and that is "DSQUERY".  It works like this:

     When a login by Desktop DBA is made, the W3DBLIB.DLL will take the 
server name you specify and will look for that name in the [SQLSERVER] 
section of the workstation's WIN.INI file.  

 - If it finds an entry with exactly the same name, it will load the 
Net-Lib DLL and use the parameter information if required by the network.

 - If the server name is not found, W3DBLIB.DLL will look for an entry 
beginning with "DSQUERY=" and use the information there as a default 
for connecting to SQL Server.

 - If that entry doesn't exist, or there is no [SQLSERVER] section in 
the WIN.INI file, then Named Pipes is assumed to be the method of 
connecting, and W3DBLIB.DLL will attempt to load DBNMP3.DLL.  

 - If DBNMP3.DLL is not found, the message "File Error - Cannot Find 
DBNMP3.DLL" will appear when you attempt to login.  This doesn't 
necessarily mean that you need DBNMP3.DLL installed on your machine, 
as your network might require a different Net-Lib.  This message is a 
good indication that the Net-Lib either wasn't installed at all or wasn't
installed fully.




ORACLE:
=======

IMPORTANT INSTALLATION NOTE
---------------------------

If you wish to install the Desktop DDA created views under an account
other than SYS. Do the Following :

Create user to own Views (ie, DESKTOPDBA)

        CREATE USER DESKTOPDBA IDENTIFIED BY DESKTOPDBA
                DEFAULT   TABLESPACE TOOLS
                TEMPORARY TABLESPACE TEMP;

next grant the DBA role with Admin option to the user

        GRANT DBA TO DESKTOPDBA WITH ADMIN OPTION

if you wish also grant connect

        GRANT CONNECT TO DESKTOPDBA

now grant select on any table to the user with admin option

        GRANT SELECT ANY TABLE TO DESKTOPDBA WITH ADMIN OPTION

now run the setup program connecting as the user you just created.


CONNECTIVITY
------------

The client workstation needs to have a properly installed SQL*Net driver.  
The SQL*Net receives calls from the application and translates them into 
information formatted properly for your network protocol.  If you are not
the person who handles installation of systems software (as opposed to 
application software), ask your Systems/Network administrator to make 
sure your workstation is set up to handle Windows-based client/server 
applications.  Either the Terminate and Stay Resident (TSR) or the 
Windows based versions are expectable.  

The following information is a sample configuration using TCP/IP SQL*NET.

The TSR version of SQL*Net is controlled from the CONFIG.ORA file.
The environment variable CONFIG should be set similar to the following 
example:  

                SET CONFIG=C:\ORACLE\CONFIG.ORA

The following is an example of a CONFIG.ORA:

ORACLE_HOME=G:\ORACLE
ORACLE_TIO=VIDEO
REMOTE=p:primary
ORAKITPATH=G:\ORACLE6\DBS
SQLPATH=G:\ORACLE6
WIN_REMOTE_SESSIONS=8
LANGUAGE=American_America.US7ASCII
TCP_HOSTS_FILE=C:\lanman\etc\hosts
TCP_SERVICES_FILE=C:\lanman\etc\services


The Windows version of SQL*Net is controlled from ORACLE.INI.  The 
following is an example of an ORACLE.INI:

[Oracle]
ORACLE_HOME=C:\ORAWIN
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
RDBMS70=C:\ORAWIN\rdbms70
PRO15=C:\ORAWIN\pro15
LOCAL=P:SQLSERVER
REMOTE=P:SQLSERVER
TCP_VENDOR=LANMAN2
TCP_HOSTS_FILE=C:\lanman\etc\hosts
TCP_SERVICES_FILE=C:\LANMAN\ETC\SERVICES
WIN_REMOTE_SESSIONS=4

The TCP_SERVICES_FILE referenced above should contain the 
following information:

ORASRV  1525/TCP

where

ORASRV  is the name of the server process used by SQL*Net.
1525/TCP        are the port and protocol, respectively.

The TCP_HOSTS_FILE referenced above should contain one entry for each 
server.  These entries should be similar to the following:

128.128.128.2   Production          [RICHMOND]

where 

128.128.128.2           is the Internet address of the remote host.

Production              is the name of the remote host.

RICHMOND                is an optional alias for the Production host.

The connect string used to connect to the example server would be 

        t:Production:SID1,2048

        or

        t:Production:,2048
        
The first example shows the connect string with an instance specifed, 
this is the most common type of connect string.  The second example 
shows a connect string where there is no instance, the is common for
an OS/2 installation.

The ,2048 is important because it causes large buffers to be split into 
2048 byte fragments.  The 2048 byte splits are important for our 
applications, because without this parameter our applications will cause 
errors to occur during certain operations.  The most common error is
 'ORA-06110: NETTCP: message send failure'.


DB2/2 AND DB2/6000
==================

IMPORTANT INSTALLATION NOTE
---------------------------

The client workstation needs to have IBM's Client Application Enabler/DOS 
(CAE/DOS) installed.  The CAE/DOS receives calls from the application and 
translates them into information formatted properly for your network 
protocol.  Note that the a Select Pak _MUST_ be applied to the GA version 
of the CAE/DOS.  See the Installation Guide for details.  Bundled with the 
CAE is a utility called the Command Line Processor.  This utility will allow 
the user to catalog node, catalog databases, connect to a database and 
execute SQL.  

dbsetup.exe (which is also executed from the Desktop DBA's installation) 
performs a number of tests to check the user's configuration.  The 
following are some possible error messages and actions which to take:

Error:  CAE not installed or DB2PATH not set.
Action: check the DB2PATH environment variable.  If it's not set, then set 
it to point to the CAE directory.  If the CAE is not installed, then install 
it.  By default, the CAE directory is C:\SQLLIB.

Error:  Cannot find CAE in the path.
Action: Make sure that the CAE is in the path

Error:  Can't load CAE
Action: DB2PATH is set and PATH is right, but the CAE is not installed.  
Install the CAE.

Error:  DB2ODBC.EXE could not be loaded.
Action: DB2ODBC.EXE must be in the WINDOWS directory of each client!  
Desktop DBA's install puts it there automatically.  If Desktop DBA was 
installed on the LAN, then other users may not have this file in the right 
directory.  Copy DB2ODBC.EXE into your WINDOWS directory.

(DB2/2 only)
Error:  DB2CODEPAGE is not set.
Action: Set the DB2CODEPAGE environment variable.  For clients in the U.S., 
set DB2CODEPAGE=437.

(DB2/6000 only)
Error:  Path not set or TCP/IP not installed.
Action: Can't find TCP/IP.  Make sure the user can ping or telnet to the 
server.  If not, then have your system administrator install TCP/IP.

(DB2/6000 only)
Error:  Can't load WINSOCK.DLL
Action: TCP/IP is not completely installed or the user is using the wrong 
WINSOCK.DLL.

(DB2/6000)
Error:  Old version of WINSOCK.DLL (FTP's TCP/IP only)
Action: Make sure the user has the latest FTP WINSOCK.DLL (version 1.13.4 
or higher).


KNOWN BUGS
----------

- Drag and Drop:  The dragging and dropping of DB2/2 and DB2/6000 objects
is only supported with the following caveats:

        - Dragging and dropping table data between databases with differing
          codepages is currently not supported.

        - Dragging and dropping DB2/2 or DB2/6000 table data to Sybase
          or Oracle is not supported.

        - Dragging and dropping Sybase or Oracle table data to DB2/2 or 
          DB2/6000 is not supported.

- EMM386 exceptions:  FTP has some known bugs in their winsock.dll.
   Occasionally, the winsock.dll is prematurely unloaded.  Then when 
   TCP/IP tries to access the winsock.dll, an EMM386 exception is produced.
   A typical symptoms of an EMM386 exception is when the application and 
   Windows aborts, leaving the user at a DOS prompt.  
   Platinum has incorporated a work-around for this problem.  Add a 
   'Platinum' section in the WIN.INI file with the entry 
   'unload winsock delay=[milliseconds to delay]'.  This will delay the 
   unloading of winsock.dll, thus avoiding the EMM386 exception.  Where
   'milliseconds to delay' is between 100 and 10000.  The following is an
   example:

   [Platinum]
   milliseconds to delay=100

   
DOCUMENTATION UPDATES
---------------------
Installation Guide

DB2/6000:
   When using TCP/IP, Desktop DBA v3.2 requires 6 TCP ports.
