Sw4   >   About   >   Version 2008-04-30
This release introduces a few significant structural changes to the framework.
Upgrading to this version of StudioWorks will require some changes to existing StudioWorks applications... but the gains should be worth the pains. If you run into difficulties upgrading you app to this version, zip the app and send it to me with an email explaining the problems you are running into.
To update to this new release:
This section covers upgrading your existing StudioWorks app to this new release.
I got tired of requiring StudioWorks developers to copy the oPaths object class to their main library everytime a new method, enhancement, or fix is made to the oPaths object. Several changes to oPaths were made in this release for the unicode version of Omnis Studio. With this release I've reworked the main library methods to make it possible to subclass oPaths_studioworks from swBase4 to your main library.
In previous versions we used oPaths to tell us the path to the studioworks folder, and then we would open the StudioWorks libraries. This meant that oPaths could not be subclassed from swBase4. This release introduces a self contained oOpenLibraries object who's sole purpose is to find and open the App libraries and find and open the studioworks folder libraries. As soon as swBase4 is open the main library oPaths has its superclass and is ready to use. Under the new structure any code fixes or new method I add to oPaths_studioworks in swBase4 are automatically inherited by the oPaths object in your main library. If a code change or fix is made to oOpenLibraries you will only need to replace that object, which I doubt you will ever need to customize.
This section assumes you have already completed the previous steps in .
To upgrade your existing application code from oLogon to oDBSession:
Startup_Task/$#About (2008-04-14 Doug K.)
Added 'db1sess' tvar and 'db2sess' tvar to the Startup_Task.
Startup_Task/$closeDemoLibraries (2008-04-18 Doug K.)
Send message to 'pths' rather than ioPaths. Delete ioPaths ivar.
Startup_Task/$construct (2008-03-12 Doug K.)
Call the oOpenLibraries object method rather than the Startup_Task method to open the App and StudioWorks libraries. oOpenLibraries is a self-contained object, allowing oPaths in the main library to subclassed from swBase4 rather than copied, making updates affecting oPaths much easier in the future.
Startup_Task/setErrorHandlerDatabaseSession (2008-04-02 Doug K.)
Use the DB session object reference to set the database session in the error handler, rather than the session row.
oOpenLibraries/$#About (2008-03-12 Doug K.)
Created a standalone 'oOpenLibraries' object class to be copied to the main library and called at the start of the $construct method of the Startup_Task. The object has 2 methods: $openAppLibraries and $openStudioWorks libraries. If an error occurs it is sent to the trace log and the trace log is opened.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oSecurity_DBAccessor/$:GroupsList (2008-03-31 Doug K.)
Removed early exit.
oSecurity_DBAccessor/$:GroupsList (2008-04-18 Doug K.)
Changed 'Grp' table name to 'grp'. Changed 'Grp_pkey' column name to 'grp_pkey'.
oSecurity_DBAccessor/$:UsersList (2008-03-31 Doug K.)
Removed early exit.
oSecurity_DBAccessor/$:UsersList (2008-04-18 Doug K.)
Changed 'Usr' table name to 'usr'. Changed 'Usr_pkey' column name to 'usr_pkey'.
oSecurity_DBAccessor/$initialize (2008-03-31 Doug K.)
Do not define the users and groups lists until they are requested.
oSecurity_DBAccessor/$updateGroup (2008-03-31 Doug K.)
Send $retDefinedList message to oSQLLists to define the DBUsersList rather than copying from iDBUsersList as it might not be defined.
oSecurity_DBAccessor/$updateGroup (2008-04-18 Doug K.)
Changed 'Grp_pkey' column name to 'grp_pkey'.
oSecurity_DBAccessor/$updateUser (2008-03-31 Doug K.)
Send $retDefinedList message to oSQLLists to define the DBUsersList rather than copying from iDBUsersList as it might not be defined.
oSecurity_DBAccessor/$updateUser (2008-04-18 Doug K.)
Changed 'Usr_pkey' column name to 'usr_pkey'.
Startup_Task/$#About (2008-04-01 Doug K.)
Added tvar db1sess which points to oDBSession
Startup_Task/$#About (2008-04-01 Doug K.)
Took out the test $construct code which was allowing swBase4's Startup_Task to remain open. Reverted to immediately closing the swBase4 task instance.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
Startup_Task_Module_template/$#About (2008-04-16 Doug K.)
Deleted 'logn' tvar. Added 'db1sess' tvar. Deleted 'timers' tvar.
mContext/$control (2008-04-25 Doug K.)
Copied the $control method from mContext in swGui4.
oAppPrefs/$#About (2008-04-16 Doug K.)
Added sCachedlist_listdef for creating the Cachedlist table using oDBAdmin.
oAppPrefs/$initialize (2008-04-16 Doug K.)
Change 'Do inherited' to 'Do $cinst.$inherited.[$cmethod().$name]' for easier debugging, stepping through code.
oCachedListsUpdater/$#About (2008-04-24 Doug K.)
Added an object class that specialized in getting and setting values in all of the StudioWorks cached lists. This object is used to instantly access and update the cached lists as changes are made in the Programmers Workbench.
oCheckData_base/$#About (2008-04-04 Doug K.)
Added oCheckData_base which can be subclassed to oCheckData_Tablename for custom check data methods.
oCheckData_base/$#About (2008-04-29 Doug K.)
Added missing sDatamssg_stb schema class for the check data messages.
oCreateTablesOwnerLogonFile/$#About (2008-04-19 Doug K.)
Created an object class which specialized in creating the tables owner logon file. The method can now be called from the 'Create Tables Owner Logon File' button in the Sessions Manager edit window.
oDBAdmin/$setUserPassword (2008-04-28 Doug K.)
Added $setUserPassword method for compatability with previous releases. The method simply returns kTrue.
oDBAdminMethods_OMNIS/$renameTable (2008-04-16 Doug K.)
Modified the Omnis data file $renameTable method so that it successfully renames the slot.
oDBAdminMethods_OMNIS/$renameTable (2008-04-16 Doug K.)
The trick was to create file classes for the old and new slot before rename the slot.
oDBAdminMethods_abstract/$#About (2008-04-08 Doug K.)
Massive changes to work with the oDBSession objects. Too many changes to note. This is a complete refactoring. Previous @MOD notes have been removed. This is a fresh start.
oDBAdminMethods_abstract/$#About (2008-04-08 Doug K.)
Moved all 'superuser' and 'users' related methods to the new 'oDBAdminUsers' objects. This simplifies the oDBAdminMethods objects allowing them to specialize on tables, columns, indexes, constraints. FrontBase and SQLServer are the only DBMS vendors we've written 'user' related code for. The Omnis data file doesn't support 'users'. To date 'users' related code has only been written FrontBase and SQLServer. The Omnis data file doesn't support 'users'.
oDBAdminMethods_abstract/$closeSession_TablesOwner (2008-04-28 Doug K.)
Delete the ioTablesOwnerDBSession object ref each time the session is closed.
oDBAdminMethods_abstract/$insertEmptyRecords (2008-04-08 Doug K.)
Pass in the oDBSession object rather than the session row to $retDefinedList
oDBAdminMethods_abstract/$openSession_TablesOwner (2008-04-28 Doug K.)
Set the ioTablesOwnerDBSession object ref $newref each time the session is opened. An object ref is needed so that ioTableOwnerDBSession can be passed to $retDefinedList.
oDBAdminMethods_abstract/$retDAMColsList (2008-04-28 Doug K.)
Using the new oDBSession object to return the table columns list so all the code is in one place
oDBAdminMethods_abstract/$retDAMTablesAndViewsList (2008-04-28 Josh L.)
Using the new oDBSession object to return the tables list so all the code is in one place
oDBAdminSQLText_MYSQL/$retSQL_CreateTable (2008-03-14 Doug K.)
Reversed the @MOD:1 change. Table names are case-sensitive in other SQL statements as well on the Linux platform. Therefore it is up to the developer to use all lower case names in their schema classes to avoid the mysqldump problems. I recommend you include "lower_case_table_names = 1" in the MySQL my.cnf file.
oDBAdminSQLText_abstract/$#About (2008-04-08 Doug K.)
Removed all of the 'user' related SQL text methods. Moved the code to the applicable oDBAdminUsers subclass objects.
oDBAdminSQLText_abstract/$_retDefinedList (2008-04-04 Doug K.)
Added new method which binds the list to the schema class. No need for a table class for this object.
oDBAdminSQLText_abstract/$initialize (2008-04-08 Doug K.)
Discovered that we don't need a 'live' logged on session object for the oDBAdminSQLText methods. Modified the initialize method to set ioSessObj to a static session external object. Parameter changed to pDAMName.
oDBAdminSQLText_abstract/$retSQL_CreateTable (2008-04-08 Doug K.)
Call the new $_retDefinedList method.
oDBAdminSQLText_abstract/$retSQL_SQLDataType (2008-04-08 Doug K.)
Call the new $_retDefinedList method.
oDBAdminUsers/$#About (2008-04-08 Doug K.)
Moved all of the 'database users' related DBAdmin methods to a separater set of oDBAdminUsers set of classes.
oDBAdminUsers_abstract/$#About (2008-04-08 Doug K.)
Moved all 'database users' releated methods from oDBAdminMethods to oDBAdminUsers series objects.
oDBSessionMethods_PGSQLDAM/$tables (2008-04-28 Josh L.)
PGSQLDAM wasn't returning the correct list for kStatementServerAll (0) so to get around that, I accumulated the list of tables and views to make the correct list
oDBSessionMethods_base/$columns (2008-04-28 Doug K.)
Added check to make sure pTableName is not empty.
oEmail/$initialize (2008-03-07 Doug K.)
If a password is provided, automatically set ibUseAuthentication to true.
oEmail/pingSMTPServer (2008-03-07 Doug K.)
Loop the TCPReceive multiple times till we get something into the buffer.
oErrorHandler/$setDatabaseSession (2008-03-14 Doug K.)
Changed the $servertablename in 'sErrorlog' to lowercase 'errorlog'. Lower case table names work best with all databases.
oErrorHandler/$setDatabaseSession (2008-04-02 Doug K.)
Change parameter to pfDBSessionObjectRef from pSessionRow and modify the method to use the new DBSession object.
oErrorHandler/_openDatabaseErrorLogViewer (2008-04-01 Doug K.)
Pass ioDBSessionObjectRef rather than iSessionRow to $retDefinedList
oFunctions/$retListFromTextString (2008-03-10 Doug K per Josh L.)
Added replaceall for kCr+kLF and then kLf for cross-platform compatibility.
oObjectClassErrorHandlerMethods/$#About (2008-03-19 Doug K.)
Added an error handler template methods object class. The methods can be copied to objects which can operate independent of oErrorHandler and 'errhndlr'.
oOpenLibraries/$#About (2008-03-12 Doug K.)
Created a standalone 'oOpenLibraries' object class to be copied to the main library and called at the start of the $construct method of the Startup_Task. The object has 2 methods: $openAppLibraries and $openStudioWorks libraries. If an error occurs it is sent to the trace log and the trace log is opened.
oOpenLibraries/retPathOmnisStartupFolder (2008-03-12 Doug K.)
Call ioPaths_PlatformFolders to get the 'Application' or 'Program Files' folder path.
oPaths_StudioWorks/$:ERRORSTOTRACELOG (2008-03-17 Doug K.)
Deprecated $:ErrorsToTraceLog methods. oPaths_ automatically tests the errhndlr tvar with $cando and sends to trace log if it can't.
oPaths_StudioWorks/$:PathApplicationsFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathOmnisStartupFolder (2008-03-12 Doug K.)
Call ioPaths_PlatformFolders to get the 'Application' or 'Program Files' folder path.
oPaths_StudioWorks/$:PathOmnisStudioFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathProgramFilesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathTempFilesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserDesktop (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserDocuments (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserHome (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$:PathUserPreferencesFolder (2008-03-12 Doug K.)
Redirect the call to the oPaths_PlatformFolder object class.
oPaths_StudioWorks/$_logError (2008-03-17 Doug K.)
Call private method 'logError' which automatically tests errhndler and automatically sends error to trace log if errhndlr is not available.
oPrefs_abstract/$#About (2008-04-16 Doug K.)
Switch from using oLogon to oDBSession. Use oDBAdmin for creating tables so that switch/case is not required for different DBMSs.
oPrefs_abstract/$_init_preparePrefsTable (2008-04-16 Doug K.)
Use 'sPrefstable_listdef' and oDBAdmin to get the CREATE TABLE text instead of Switch/Case in this method.
oPrefs_abstract/$_init_preparePrefsTable (2008-04-16 Doug K.)
Check for exact case match table name for Omnis data file. Rename if the case does not match.
oPrefs_abstract/$_retSQLText_CreateTable (2008-04-16 Doug K.)
Added method which prepares the CREATE TABLE text using sPreftable_listdef and oDBAdmin.
oPrefs_abstract/$initialize (2008-04-16 Doug K.)
Check the session row, if the DAM is OMSQLDAM, then make sure the df1 file has been created.
oPrefs_abstract/$initialize (2008-04-18 Doug K.)
Expand the code which calculates the table name based on the schema class name. Go with a lower case table name.
oPrepareNewDatabase/$#About (2008-04-15 Doug K.)
Rewrote the object after overhauling the oDBSession, oDBAdmin, tBase, oPrimaryKeys, oRefs classes in StudioWorks.
oRebuildCachedLists/rebuildRefs (2008-04-02 Doug K.)
Use db1sess instead of logn task variable.
oSQLChildRecords/$DELETECHILDRECORDS (2008-04-07 Doug K.)
Deprecated the $deleteChildRecords method. Superceded by the $deleteCascadeDeleteChildRecords method.
oSQLChildRecords/$deleteCascadeDeleteChildRecords (2008-04-07 Doug K.)
Added a method which will very quickly delete any cascadedelete child records using a statement object and minimal SQL.
oSQLChildRecords/$doesRestrictedDeleteChildRecordExist (2008-04-07 Doug K.)
Added a method which will very quickly find the first cascadedelete child record using a statement object and minimal SQL.
oSQLLists/$:DEFAULTSESSIONROW.$assign (2008-03-31 Doug K.)
Deprecated the $:DefaultSessionRow.$assign method. Superceded by the $:DefaultDBSessionObjectRef.$assign method.
oSQLLists/$:DefaultDBSessionObjectRef (2008-03-27 Doug K.)
Added method for the new oDBSession classes structure.
oSQLLists/$:DefaultDBSessionObjectRef.$assign (2008-03-27 Doug K.)
Added method for the new oDBSession classes structure.
oSQLLists/$SETTABLESESSIONROW (2008-04-01 Doug K.)
Deprecated the $setTableSessionRow method.
oSQLLists/$initialize (2008-03-27 Doug K.)
Added 'sessionobjectref' column to the SQL lists master list. Set the $coltype to kObjectref. This column is used to store the object reference to the session object of any SQL classes that are to use a different session than the default session.
oSQLLists/$retDefinedList (2008-03-31 Doug K.)
Added code to use the oDBSession object reference. The method still supports previous versions using the session row.
oSQLLists/$setTableDBSessionObjectRef (2008-04-01 Doug K.)
Added a method to set the 'dbsessionobjectref' column to a specified 'oDBSession' object reference for a specified table.
oSQLLists/retDefinedListForCurrLine (2008-04-02 Doug K.)
Moved initialization of the defined list to the $retDefinedList method.
oSQLTextJoinTables/retFromTableJoinText (2008-04-24 Doug K. per Andy H.)
Include the table name prefix for all column names, not just non-unique column names. Left a hook for the option to change back in the future, by setting ibAlwaysIncludeTableNamePrefix.
oSecurity/$addDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
oSecurity/$addDefaultSysAdminUser (2008-04-23 Doug K.)
Call $setDefault to make sure the 'usr' columns are set properly.
oSessionsManager/$#About (2008-04-10 Doug K.)
Removed the $openSession and $pingDatabase methods from this object. Those are better handled by oDBSession. Removed the $retOpenSessions method. With session pools session we can't 'see' the sessions anymore.
oSessionsManager/$:DefaultSessionRow (2008-04-09 Doug K.)
Added 'pingtimeoutseconds' column and default to 5 seconds. The 'pingdbserver' column is deprecated.
oStartupTaskDefaultMethods/$logoffDatabase (2008-04-14 Doug K.)
Removed code dealing with a separate 'Refs' session.
oStartupTaskDefaultMethods/autoSignIn (2008-04-19 Doug K.)
Switch to setting the oSQLLists $:DefaultDBSessionObjRef rather than the session row.
oStartupTaskVarsTool/$#About (2008-04-14 Doug K.)
Removed initialization of the oLogon object. Now using oDBSession object.
oStartupTaskVarsTool/$INITIALIZEERRORHANDLER (2008-04-14 Doug K.)
Deprecated the $initializeErrorHandler method.
oStartupTaskVarsTool/$INITIALIZE_LOGN (2008-03-25 Doug K.)
Moved all of the code which figured out the starting session row to a separate method, retStartupSessionRow. so that the code can be used by the new tvar 'db1sess'.
oStartupTaskVarsTool/$_initializeAppPrefs_localdatafile (2008-04-16 Doug K.)
Revised the method so that it passes an OMNISQLDAM sessionrow to oAppPrefs, rather than the path name.
oStartupTaskVarsTool/$_pingVar (2008-03-25 Doug K.)
Added $cando test to avoid notation errors. Removed the OK message as this object is non-visual.
oStartupTaskVarsTool/$constructTaskVars (2008-03-25 Doug K.)
Added 'db1sess' and 'db2sess' to the tvars string.
oStartupTaskVarsTool/$initializeBeforeSignIn (2008-03-25 Doug K.)
Added called to $initialize_db1sess, removed the call to $initialize_logn
oStartupTaskVarsTool/$initialize_db1sess (2008-03-25 Doug K.)
Added new method to initialize the new 'db1sess' task variable if it exists.
oStartupTaskVarsTool/$initialize_local_prefs (2008-03-24 Doug K.)
Check for the unicode version of Omnis Studio, if so, set the local prefs data file name to 'local_prefs_unicode.df1' The local prefs data file is in a common location which could be opened by both unicode or non-unicode versions of the app, so it is important to have separate data files for each or the non-unicode version will fail after the unicode version opens the df1 file.
oStartupTaskVarsTool/$initialize_local_prefs (2008-04-16 Doug K.)
Revised the method so that it passes an OMNISQLDAM sessionrow to oAppPrefs, rather than the path name.
oStartupTaskVarsTool/$initialize_lsts (2008-03-31 Doug K.)
Added setting the $:DBSessionObjectRef if the db1sess.$validref.
oStartupTaskVarsTool/$initialize_refs (2008-04-14 Doug K.)
Initialize the Refs object by passing in the 'db1sess' object rather than a session row.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-03-31 Doug K.)
Check and use the 'db1sess' tvar rather than 'logn' if it exists.
oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2008-04-16 Doug K.)
Set the session object ref rather than the session row in the oSQLLists object.
oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn (2008-03-31 Doug K.)
Removed 'logn' based code, replaced with 'db1sess' based code. If 'db1sess' is a validref, then check $state with 'db1sess'.
oStartupTaskVarsTool/retStartupSessionRow (2008-03-24 Doug K.)
To avoid initialization error, check the 'damname' in the session row, if not set, default it to OMSQLDAM.
oStringTables/$#About (2008-04-29 Doug K.)
Overhauled oStringTables to use stringtable file name suffixes. e.g. stringtable_it.txt, stringtables_fr.txt Only the language columns specified by the string table file name suffix will be loaded, others will be ignored. Only exceptions for each additional language need to be included in the string table file. Overhauled oStringTables to save and load database string table lists separately for each language. Only exceptions for each additional language need to be included in the string table saved to the database. Added 'source' column to master list for each language. This tells where the language text came from. Examples of text sources: stringtable_de.txt, database, myAppMain.sMn_stb,
oStringTables/$:LanguagesList_Database (2008-04-30 Doug K.)
Added a property method which returns a list of the string tables languages stored in the database.
oStringTables/$:LanguagesList_TextFiles (2008-04-30 Doug K.)
Added a property method which returns a list of the string tables languages in text files in the startupitems folder.
oStringTables/retStringTablesListFromTextFile (2008-04-29 Doug K.)
Modify the method to remove 'other' language columns, and add a 'source_*' column.
oTableClassMethods_MYSQL/$setPrimaryKey (2008-04-14 Doug K.)
Overrode the $setPrimaryKey method. Check for manual transactions, if so temporarily open an automatic transactions session and pass a statement object from that session to the oPrimaryKey.$getNextPrimaryKey method.
oTableClassMethods_base/$_retSelectWhereSQLText (2008-04-25 Doug K.)
Added setting iExtraBindRow reference in the tBase table class if the extra bind row is used.
oTableClassMethods_base/$_retSelectWhereSQLText (2008-04-29 Josh L.)
Changed ExtraQueryText to ExtraSQL so the column numbers will be processed correctly.
oTableClassMethods_base/$dodeletesBatch (2008-04-07 Doug K.)
Reworked the method so that is only looks for one non-cascadedelete record, and if one is found, logs a check data error.
oTableClassMethods_base/$getActiveRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getAllRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getOperatorRecords (2008-04-30 Doug K.)
Added error checking/loging to $fetch.
oTableClassMethods_base/$getPrimaryKeyRecord (2008-04-30 Doug K.)
Added error checking/loging to $select and $fetch.
oTableClassMethods_base/$getWhere (2008-04-29 Doug K.)
Log SQL error if fetch error.
oTableClassMethods_base/$initialize (2008-04-23 Doug K.)
Use the cap() of the table name when looking classname suffix on the oCheckData_Tablename object.
oTableClassMethods_base/$insertEmptyRecord (2008-04-28 Doug K.)
Refactored the method in an attempt to make it stronger.
oTableClassMethods_base/$selectCustom (2008-04-29 Josh L.)
Added a parameter pExtraSQLRowOrString so that GROUP BY, HAVING, etc could be used. Modified the code to process and include it in the right place
oTableClassMethods_base/$selectWhere (2008-04-29 Doug K.)
Added log SQL error because the $sqlerror method has been overridden in tBase to allow $fetchBatch to intercept an error and attempt to retry the select fetch.
oTableClassMethods_base/$setDefaults (2008-04-24 Doug K.)
Added error check on the return value from the ref.$retNextCounterNum
oTableClassMethods_base/$updateRow (2008-04-24 Doug K.)
Bug fix. Change $insertnames to $updatenames
owcStringTablesSchemasEditor/$addNewLine (2008-04-29 Doug K.)
Added method to add a new line. Called by the context menu.
owcStringTablesSchemasEditor/saveColsListChanges (2008-04-29 Doug K.)
Set the colident value after adding a new row to the schema class.
tBase/$_setTableClassExtraBindRowRef (2008-04-25 Doug K.)
Added method for setting the iExtraBindRow reference in the tBase table class if the extra bind row is used.
tBase/$selectCustom (2008-04-29 Josh L.)
Extra SQL so GROUP BY, HAVING can be used
wDBAdmin/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminConstraints/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminDataMover/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin.
wDBAdminDataViewer/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminDataViewer/setDisplay (2008-04-23 Doug K.)
Add exception for OMSQLDAM which doesn't return $rowcount from the statement object.
wDBAdminIndexes/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminInteractiveSQL/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminPrimaryKeys/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSchemas/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSyncDatabaseToSchemas/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminSyncUsers/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdminUsers rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdminTables/$#About (2008-04-11 Doug K.)
Reviewed and cleaned up code in all methods, especially error checking. Initialize and use ioDBAdmin rather than irDBAdmin and ioDBSession rather than ioLogon as applicable.
wDBAdmin_abstract/$#About (2008-04-11 Doug K.)
Remove $setDBAdminRef methods and irDBAdmin ivar. Subwindow switched to having their own instance of ioDBAdmin.
wSQLMetaDataColsEditor_abstract/$_fixNullValues (2008-04-29 Doug K.)
Added check for $linecount to prevent infinite loop.
wSQLQueryBuilder/$destruct (2008-04-11 Doug K per Matthias H.)
Changed Queries treelist container so that it can be resized. Added code to save the width to the class on $destruct
wSQLQueryBuilder/addSchemaCols (2008-03-18 Doug K.)
Set LineNum var to pLineNum so that drag and drop for schemas list ends up in the dropped location.
wSQLQueryBuilder/addSchemaCols (2008-03-24 Doug K. per Chuck M.)
Loop through the drop list from end to start so that columns are added in the right order.
wSecurityTimeoutSignIn/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wSessionEdit/$#About (2008-04-10 Doug K.)
Complete overhaul of the session edit subwindow. Made it 'dumb'. Moved the intelligence to the parent window.
wSessionEdit/createTablesOwnerLogonFile (2008-04-19 Doug K.)
Added button and method to wSessionEdit to create a tablesowner logon file.
wSessionList/$#About (2008-04-10 Doug K.)
Overhauled the session lists window. Made it 'dumb'. Move the smarts to the parent.
wSessionPicker_abstract/$#About (2008-04-12 Doug K.)
Created superclass for the session picker series windows.
wSessionsManager/$#About - Sessions Manager (2008-04-10 Doug K.)
Total overhaul of the sessions manager windows. Removed the 'Open Sessions' tab. Session pool sessions are hidden, so there isn't much purpose in having this tab. Removed the 'Open Sessions' tab. Session pool sessions are hidden, so there isn't much purpose in having this tab. Changed the window behavior so that the user is always in edit mode and that changes are automatically saved. Users are no longer required to first press Edit, then Save, before they can Test a session. Changed the parent/subwin structure so that the sessions list is in the parent and the subwindows reference the parent list.
@00 User Documentation/@00 About (2008-03-18 Doug K.)
Added StudioWorks documentation target to end users of applications written using the StudioWorks framework.
@20 Converting Data/@11 Data Converter Demo (2008-04-28 Doug K.)
Added documentation on the new 'db2sess' myDataConverterDemo library.
@20 Converting Data/@15 Data Converter Instructions (2008-04-29 Doug K.)
Added instructions for setting up the data converter library.
@20 Converting Data/@21 Data Conversion Advice (2008-04-28 Doug K.)
Added data conversion advice documentation.
@20 Quick Start Tutorial/@07 Adding a Table (2008-03-24 Doug K per Matthias H.)
Removed the reference to the 'Collate-case-insensitive' checkbox. This has been removed from the meta-data editor.
@20 Quick Start Tutorial/@12 Adding a Child Table (2008-03-24 Doug K per Matthias H.)
Removed the reference to the 'Collate-case-insensitive' checkbox. This has been removed from the meta-data editor.
@31 Database Sessions/@00 About (2008-03-25 Doug K.)
Added documentation on the new oDBSession series of objects which replace the oLogon series objects.
@50 Field Handling/@00 About (2008-03-11 Doug K.)
Added documentation on the new field handling introduced 2008-03
@50 Lookups/@25 Intercepting Lookups (2008-04-29 Doug K.)
Added documentation for '$promptLookupRecordNotFound' method to intercept lookups.
@50 Lookups/@25 Intercepting Lookups (2008-04-29 Doug K.)
Added documentation for '$setMainListValues' method to intercept the field handler setting the main list values.
@61 Database Administration/@00 About (2008-04-17 Doug K.)
Added documentation on the DB Admin tools.
@61 Database Administration/@61 Interactive SQL (2008-04-16 Doug K.)
Added documentation for Interactive SQL window.
@72 Table Class Structure/@00 About (2008-04-02 Doug K.)
1 Added documentation on the oTableClassMethods_DBMSVENDOR series of object classes.
@85 Manual Transactions/@00 About (2008-03-24 Doug K per Chuck M.)
Modified sample code to set the transactionmode back to its original setting.
@85 Manual Transactions/@00 About (2008-04-02 Doug K.)
Updated the sample code to work directly with 'db1sess' instead of 'logn'.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar.
Startup_Task/$initialize (2008-04-29 Doug K.)
Renamed the swDocs4 startup_task $construct method to $initialize as it was causing startup trouble.
Startup_Task/$#About (2008-04-16 Doug K.)
Added the 'db1sess' tvar and removed the 'logn' tvar.
mCommands/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
mCommands/$construct (2008-04-28 Doug K.)
Default the mCommands menu to disabled shortcut keys for developers.
mMainMenu/$construct (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oConcretizer/$RUNTIMIZE (2008-03-24 Doug K.)
Get the field properties list from the oFieldHandlerPropertiesList object class of the new field handler classes.
oConcretizer/$addFieldsAndLabels (2008-03-24 Doug K.)
Use the new oFieldHandlerPropertiesList object to build the list.
oConcretizer/addWindowClass (2008-04-21 Doug K.)
Added 'Save class' command in an attempt to solve the problem with inconsistent runtimizing.
oConcretizer/createRuntimeWinClass (2008-04-21 Doug K.)
Added 'Save class' command in an attempt to solve the problem with inconsistent runtimizing.
oConcretizer/retDecoratorTypesList (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/retFieldHandlersFactoryRef (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/retFieldPropertiesList (2008-03-24 Doug K.)
Added method to work with the new oFieldHandlerProperitesList object class.
oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2008-03-24 Doug K.)
Remove early exits. Get the field properties list from the oFieldHandlerPropertiesList object class of the new field handler classes.
oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oFieldHandlerLookupTypeAhead/$control (2008-03-11 Doug K.)
Changed code from using On ev... to Switch pEventCode/Case ev.../Case ev.../End Switch. For easier formatting.
oFieldHandlerLookupTypeAhead/$control (2008-03-11 Doug K.)
If the user hits the return key in a lookup field with the lookup list open, discard the event and queue a tab + queue OK to cleaning finish the lookup and then do the default kReturn action.
oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2008-04-29 Doug K.)
Tighten up error checking in the method. Add a prompt last error so that lookup errors won't go unnoticed.
oMenus/$installMainMenu (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oReportsMenuObserver_abstract/$modifyReportProperties (2008-04-24 Doug K.)
Cleaned up error checking.
oWindows/$retWinTitle (2008-04-21 Doug K.)
Use the cap(BaseTable) for the stbid for the window instance title translation.
oWindows/checkRequiredProperties (2008-03-24 Doug K.)
Use mod() function to test for developer version. Removed early exits.
oWindows/setIconIDinRow (2008-04-24 Doug K.)
Added bLogErrors=kFalse to suppress errors which we don't care about.
wComplexGrid_abstract/$#About (2008-04-24 Doug K. per Josh L.)
Added wComplexGrid_abstract class. Copy the wComplexGrid_template to your application to use.
wComplexGrid_abstract/$_removeEmptyLines (2008-04-24 Josh L.)
Removed the body of this method because it could be dangerous to someone who doesn't know about it.
wComplexGrid_abstract/$_setMode (2008-04-21 Josh L.)
Changed from do inherited to the notation with the parameter
wComplexGrid_abstract/$_setNewLineDefaults (2008-04-24 Josh L.)
Added this method to set default on an Extend Event.
wComplexGrid_abstract/$new (2008-04-24 Josh L.)
Added the SetNewLineDefaults here so the defaults are set when a line is added.
wComplexGrid_template/$#About (2008-04-24 Doug K. per Josh L.)
Added wComplexGrid_template a subclass of wComplexGrid_abstract which you would copy to your application to use.
wComplexGrid_template/$event (2008-04-24 Josh L.)
Added the $_setNewLineDefaults method here to apply defaults when a line is added.
wEditList_abstract/$#About (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wEdit_abstract/$#About wEdit_abstract (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wHeadedList_autoconfig/$constructListObj (2008-03-15 Doug K. per Matthias H.)
Set ivar iText_yes for the treatasboolean column so that other languages can be used.
wHeadedList_autoconfig/buildListObjFromMetaData (2008-03-15 Doug K. per Matthias H.)
Use ivar iText_yes in the treatasboolean column rather than 'Yes', so that other languages can be used.
wList_abstract/$fetchRecords (2008-04-22 Doug K.)
Clean up FlagOK error handling. Get rid of promptonce last error.
wList_autoconfig/$find (2008-04-22 Doug K.)
Clean up FlagOK error handling.
wMainWindow/$eventClose (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wMainWindow_NoShowHideNavList/$eventClose (2008-03-24 Doug K.)
Use mod() function to test for developer version.
wNavigationListEditor/$addWinInstIDs (2008-03-17 Doug K.)
Modify method to allow the user to add multiple wininstids to be added to the navigation list at once.
wNavigationListEditor/$addWinInstIDs_continue (2008-03-17 Doug K.)
Modify method to allow multiple wininstids to be added.
wPromptFindMultiCriteria_subwin/$#About (2008-03-11 Doug K.)
Deleted ivar ifld since it was not being used by this window.
wPromptModelessSubWin/$#About (2008-03-11 Doug K.)
Point the ifld ivar from oFieldHandler to the new oFieldHandlerController.
wPromptShell/$event (2008-04-10 Doug K.)
Make sure there is an OK button before setting the iButtonPressedNamed ivar.
wShell/$_flipSubWin (2008-03-24 Doug K per Andy H.)
Moved the prToWin.$eventShow to AFTER the prToWin.$visible kTrue to solve a problem with setting the scrollbars to redraw correctly.
wShell_Lookup/$showSubWin (2008-03-05 Doug K.)
Added $cando test before sending $:Mode message to the previous subwindow.
wSignIn/$construct (2008-03-24 Doug K.)
Use mod() function to test for runtime version.
wSignIn/$signIn (2008-03-24 Doug K per Matthias H.)
If the only session in the sessions list is the 'EditSessions' row, open the sessions manager window.
wSignIn/$signIn (2008-03-31 Doug K.)
Check for $validref of the 'db1sess' object. If it exists, nothing to do, otherwise set the $:DefaultSessionRow in oSQLLists.
wSignIn/_retUsersList (2008-04-23 Doug K.)
Changed from setting the default session row to setting the session object ref in 'lsts'.
wSignIn/insertDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
wSignIn/loadSessionsList (2008-03-24 Doug K per Matthias H.)
Get language translation for 'EditSessions'. Added 'EditSessions' to sMn_stb_SessionsManager
wSignIn_20071124/insertDefaultSysAdminUser (2008-04-18 Doug K.)
Calculate Urs_pkey and usr_pkey to cover both cases.
wWindowInstancesListEditor/$event (2008-04-24 Doug K.)
Add a blank SQL class name line to the top of the list so that the user can clear the sqlclassname property.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oMenusList/$addNavigationMenuLines (2008-03-12 Doug K.)
Commented out the code which was adding the RefsList and RefsLookupList navigation menu items. These window instances are to be added by the developer's SysAdmin module.
oRefs/$#About (2008-04-14 Doug K.)
Overhaul the oRefs object so that it uses oDBSession instead of oLogon and only temporarily opens uses and close a second session for inserts/updates if the specified oDBSession is set to manual transactions.
oRefs/$:DBSessionObjectRef (2008-04-02 Doug K.)
Added new method to return the ioRefsDBSessionObjectRef.
oRefs/$:DBSessionObjectRef.$assign (2008-04-14 Doug K.)
Added new method to set the ioRefsDBSessionObjectRef.
oRefs/$destruct (2008-04-02 Doug K.)
Added $destruct method with code to $deleteref ioRefsDBSessionObjectRef
oRefs/$initialize (2008-04-16 Doug K.)
Receive the DBSession object reference rather than the session row as the parameter. Copy to ioRefsDBSessObjRef.
oRefs/$retListOfDatabaseStringTableLanguages (2008-04-29 Doug K.)
Added method which returns a list of the languages of string tables stored in the database (refs table).
oRefs/$retLookupList (2008-04-02 Doug K.)
Speed the method by just fetching the specified 'lookup' records, not all records. (Some of the other records have large blobs)
oRefs/$retNextCounterNum (2008-04-14 Doug K.)
Check the main session object if manual transactions, then open up our own session and assign it to the Refs Row variable.
oRefs/$retStringTablesList (2008-04-02 Doug K.)
Use ioRefsDBSessionObjectRef instead of ioRefsLogonObj.
oRefs/$retStringTablesList (2008-04-29 Doug K.)
Added pLangaugeID parameter. A stringtable refs records is stored for each language with just the exceptions for that language. The 'RefsSubGroup' column is used to store the pLanguageID.
oRefs/$saveRefsRecord (2008-04-14 Doug K.)
Check the main session object if manual transactions, then open up our own session and assign it to the Refs Row variable.
oRefs/$saveRefsRecord (2008-04-24 Doug K.)
Removed the calls to $_setFixNulls. We should not be calling protected methods.
oRefs/$saveStringTablesList (2008-04-29 Doug K.)
Added pLangaugeID parameter. A stringtable refs records is stored for each language with just the exceptions for that language. The 'RefsSubGroup' column is used to store the pLanguageID.
oRefs/$setCounterNum (2008-04-17 Doug K.)
Added method to allow a sender to set the counter number.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
Startup_Task/$#About (2008-04-16 Doug K.)
Removed the 'logn' tvar. Added tvar 'db1sess'.
oHTMLTemplates/$:CSSLinks (2008-03-24 Doug K.)
Use mod() function to test for developer version.
oRemoteTaskMethods/$initializeAllTaskVars (2008-04-02 Doug K.)
Added initialize 'db1sess' to the task vars to change/set to object reference type variables
oRemoteTaskMethods/$initializePublicSearchTaskVars (2008-04-02 Doug K.)
Added initialize 'db1sess' to the task vars to change/set to object reference type variables
oWebMonitor/$initialize (2008-04-02 Doug K.)
Modified the code to use 'db1sess' instead of 'logn'.
oWebMonitor/$retWebStatsList (2008-04-02 Doug K.)
Use 'db1sess' instead of 'logn'
rtDispatcher/$#About (2008-04-02 Doug K.)
Added 'db1sess' tvar.