Sw4   >   About   >   Version 2008-01-31

Version 2008-01-31

This release is a maintenance release. No new features. Just bug fixes and some code cleanup.

  1. PostgreSQL - Various bugs discovered and fixed as we went live with PostgreSQL with our main app (Venor)
  2. oPaths - Added some new property methods and flexibility for setting the parent folder name for some of the special StudioWorks folders.

To update to this new release:

  1. Quit Omnis Studio.
  2. Backup your application!
  3. Replace your old studioworks folder and contents with the new studioworks folder included with this release.
  4. Open your StudioWorks app.
  5. Rename the oPaths object class in your library to X_oPaths.
  6. Copy the oPaths object from swBase4/Tools to your main library.
  7. If you had any added methods or code changes to X_oPaths, copy them to the new oPaths object in your main library.

Each library and the modifications in the release are listed below. The modifications are compiled from the @MOD tag comments found in the methods of the classes in the library.

mySysAdmin

No modifications

swBase4

oAppPrefs/$_init_prepareCachedlistTable (2007-12-28 Doug K.)
Added case for PGSQLDAM to set the datatype to BYTEA instead of BLOB.

oAppleScripts/$#About (2008-01-02 Doug K.)
Created new object class for applescript methods.

oAppleScripts/$createAliasOnDesktop (2008-01-02 Doug K.)
Created method which creates an alias of any file or folder on the desktop.

oConstants/$:AppLibsList (2007-12-06 Doug K.)
Added option for 'demos' folder to be included inside the libraries folder.

oDBAdminMethods_POSTGRESQL/$retDAMTablesAndViewsList (2008-01-22 Doug K.)
Overrode PostgreSQL method to work around bug. kStatementServerAll only returns tables.

oDBAdminMethods_POSTGRESQL/$setPrimaryKeyCounterValue (2007-12-24 Doug K.)
Use low(TableName) to ensure consistency for the sequence field naming convention.

oDBAdminMethods_SQLSERVER/$_retFKeysList (20070601 whole method added by TBS)

oDBAdminMethods_abstract/$_copyTableData (2007-12-13 Doug K. per Josh L.)
Changed fetch from 1 to 5000. (Was at 1 for testing purposes, I forgot to switch back to 5000)

oDBAdminMethods_abstract/$copyData (2007-12-13 Doug K per Josh L.)
Added error checking for the schema class in case the library is closed or the schema class was removed.

oDBAdminMethods_abstract/$initialize (2008-01-22 Doug K.)
Moved $openSession towards top of the method and $closeSession to the end because some methods depend on an open session.

oDBAdminMethods_abstract/$retDAMTablesAndViewsList (2008-01-22 Doug K.)
Removed the SQLServer bug work around. The bug work around is in the overridden subclass method. Removed early exit and fixed the error message.

oDBAdminSQLText_SQLSERVER/$retSQL_GetFKeys (20070601 method added)

oEmail/$sendEmail (2008-01-21 Doug K.)
Carriage returns were getting messed up in the sent/received email. (Omnis 4.3 with Mac OS X 10.5) Switched to using MIMEList for all emails.

oEmail/$sendEmail (2008-01-30 Doug K.)
Check the MIMEList returned. If an error occurred the list will be undefined.

oEmail/convertEnclosuresToMIMEList (2008-01-30 Doug K. per Mike M.)
Bug fix. Changed pEnclosuresList.filename in the loop to EnclosuresList.filename. Added error checking and logging to the method.

oErrorHandler/$logSQLError (2007-12-13 Doug K.)
Removed $statementobject from the notation. (was accidentally copied from tBase $sqlerror method)

oFunctions/$deleteEnclosedFilesAndFolders (2007-12-18 Doug K.)
Added method which drills deletes enclosed files and folder inside a specified directory.

oFunctions/retEnclosedFoldersList (2007-12-17 Doug K.)
Added FileOps Tool method.

oPaths/$:OmnisName (2008-01-10 Doug K.)
Added assignable $:OmnisName property. This property method value will be used to replace the word 'Omnis' where ever it is used in a folder name by oPaths.

oPaths/$:PREFERENCESPARENTFOLDERNAME (2008-01-10 Doug K.)
Deprecated the $:PreferencesParentFolderName property methods in favor of the $:OmnisName property which has been added.

oPaths/$:PathApplicationsFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

oPaths/$:PathOmnisSharedFolder (2008-01-10 Doug K.)
Added method to return path to 'Omnis Shared' folder, a subfolder of the 'Program Files' (Win) or 'Applications' (Mac) folder.

oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
If the 'Omnis Startup' folder is not found, automatically create it in the 'Program Files' or 'Applications' folder.

oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory... the tree which which we will search. This ensures that on Vista it will look through the real 'Program Files' directory for the Omnis Startup folder.

oPaths/$:PathOmnisStudioFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory. This ensures that on Vista that we will be in the real 'Program Files' directory for the Omnis Studio executable parent folder.

oPaths/$:PathProgramFilesFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

oPaths/$:PathUserAppPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which returns the path to an 'AppName' folder located inside the $:UserOmnisPreferences folder.

oPaths/$:PathUserOmnisPreferencesFolder (2008-01-10 Doug K.)
Added $:UserOmnisPreferencesFolder method which returns the path to an 'Omnis' folder located inside the user preferences folder.

oPaths/$:PathUserPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which replaces this method. Redefined this method to return the path to the base user preferences folder.

oPaths/retApplicationsOrProgramFilesFolderPath (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

oPrefs_abstract/$_init_preparePrefsTable (2007-12-31 Doug K.)
Added cases for MYSQLDAM and PGSQLDAM

oSQLLists/$:ForeignKeyColsList (2008-01-02 Doug K.)
Added parameter pbRebuildIfEmpty default kTrue so that $destructMethod of oStartTaskDefaultMethods can prevent rebuild on shutdown.

oSQLLists/buildForeignKeysList (2008-01-30 Doug K per Will Adkin)
Added 'cascadedelete' and 'listcolname' back to the foreign keys list. These are needed for the oSQLChildRecords object.

oSessionMethods_base/setUniqueSessionName (2007-12-13 Doug K.)
If the sessionname is empty use the first 5 letters of the damname + the first 7 letters of the database name. Use the rpos() function which was introduced in Omnis Studio v4.1

oStartupTaskDefaultMethods/_closeLibrariesInFolder (2008-01-22 Doug K.)
Added code to drill down recursively and close libraries in subfolders as well. Removed early exits.

oStartupTaskDefaultMethods/_openLibrariesInFolder (2008-01-22 Doug K.)
Removed early exits.

oStartupTaskDefaultMethods/autoSignIn (2008-01-02 Doug K.)
Continuing problems with the method stack. Use a timer object to call $signInOKContinue and clear the method stack and quit all methods.

oStartupTaskDefaultMethods/openLibraries (2007-12-06 Doug K.)
Just open libraries in the modules folder rather than the libraries folder. Allows for '/libraries/demos' folder to be left unopened.

oStartupTaskDefaultMethods/saveCachedLists (2008-01-02 Doug K.)
Added parameter bRebuildIfEmpty=kFalse to prevent rebuild of foreign keys list on $destructMethod.

oStringTables/loadStringTablesFromTextFile (2008-01-22 Doug K. per Andy H.)
Corrected the working message to text. Was 'Loading string tables from meta-data' s/b 'from text file'

oStringTables/retStringTablesFromTextFile (2008-01-22 Doug K.)
Bug fix. Moved the default FlagOK as true to the beginning of the method.

oTableMethods/$dodeletesBatch (2007-12-27 Doug K.)
Move $dodeletesBatch method to oTableMethods so that the method can be customized for different backends.

oTableMethods_FRONTBASE/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.

oTableMethods_FRONTBASE/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.

oTableMethods_MYSQL/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.

oTableMethods_MYSQL/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.

oTableMethods_POSTGRESQL/$checkfixSQLText_LIKE (2007-12-24 Josh L.)
Changed pfrTableClassInst to pfSQLText.

oTableMethods_POSTGRESQL/$dodeletesBatch (2007-12-27 Doug K.)
PostgreSQLDAM bug. Prepared statements are lost. Override superclass method and use $execdirect(SQLText) instead of $execute() in the loop.

oTableMethods_POSTGRESQL/$doinsertsBatch (2007-12-27 Doug K.)
Overrode the $doinsertsBatch method and use $execdirect instead of $execute() to work arounnd PostgreSQL bug which loses prepared statements.

oTableMethods_POSTGRESQL/$retNextPrimaryKey (2007-12-24 Doug K.)
Bug fix. len() test missing '=0' Bug fix. Changed sequence field name to con('pkeyseq_',low(basetablename)) to match the DBAdmin method that sets the pkey sequence counter.

oTableMethods_POSTGRESQL/$setSQLText_InsDateTime (2008-01-30 Doug K per Josh L.)
Check len(iInsDateColName) before doing anything.

oTableMethods_POSTGRESQL/$setSQLText_ModDateTime (2008-01-30 Doug K per Josh L.)
Check len(iModDateColName) before doing anything.

oWebBrowser/$createEmail (2008-01-30 Doug K.)
Formatting problem fix. Replace special characters in the subject and body with ASCII hex escape characters. The format "mailto:PersonName <email@domain.com>" format was causing trouble. Extract and use the email address only.

tBase/$dodeletesBatch (2007-12-27 Doug K.')
Moved $dodeletesBatch to oTableMethods so that the method could be specifically modified for PostgreSQL

tBase/$dodeletesBatch_20071227 (2007-12-27 Doug K.)
Switched from $execute() to $execdirect(SQLText) to solve a PostgreSQL bug which loses the prepared SQL. This is a compromise on performance to solve the bug. When tBase is restructured this will be isolated to the PostgreSQL table methods object.

wDBAdminPrimaryKeys/$setCounterValues (2007-12-06 Doug K.)
Don't rebuild the pkeys list after resetting a value. Instead work directly with the list and update it as we go through it. Don't allow the new pkey value to be lower than the current max value.

swDocs4

@20 Quick Start Tutorial/@07 Adding a Table (2008-01-30 Doug K per Andrew Pavey)
Added tip regarding the 'Class Filter (on)' in case a type of class can't be found.

@50 Observers/@00 About (2007-12-05 Doug K.)
Added a documentation on observers.

oPaths/$:OmnisName (2008-01-10 Doug K.)
Added assignable $:OmnisName property. This property method value will be used to replace the word 'Omnis' where ever it is used in a folder name by oPaths.

oPaths/$:PREFERENCESPARENTFOLDERNAME (2008-01-10 Doug K.)
Deprecated the $:PreferencesParentFolderName property methods in favor of the $:OmnisName property which has been added.

oPaths/$:PathApplicationsFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

oPaths/$:PathOmnisSharedFolder (2008-01-10 Doug K.)
Added method to return path to 'Omnis Shared' folder, a subfolder of the 'Program Files' (Win) or 'Applications' (Mac) folder.

oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
If the 'Omnis Startup' folder is not found, automatically create it in the 'Program Files' or 'Applications' folder.

oPaths/$:PathOmnisStartupFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory... the tree which which we will search. This ensures that on Vista it will look through the real 'Program Files' directory for the Omnis Startup folder.

oPaths/$:PathOmnisStudioFolder (2008-01-02 Doug K.)
Use sys(215), if available, rather than sys(115) to indicate the Omnis Studio executable directory. This ensures that on Vista that we will be in the real 'Program Files' directory for the Omnis Studio executable parent folder.

oPaths/$:PathProgramFilesFolder (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

oPaths/$:PathUserAppPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which returns the path to an 'AppName' folder located inside the $:UserOmnisPreferences folder.

oPaths/$:PathUserOmnisPreferencesFolder (2008-01-10 Doug K.)
Added $:UserOmnisPreferencesFolder method which returns the path to an 'Omnis' folder located inside the user preferences folder.

oPaths/$:PathUserPreferencesFolder (2008-01-10 Doug K.)
Added $:UserAppPreferencesFolder method which replaces this method. Redefined this method to return the path to the base user preferences folder.

oPaths/retApplicationsOrProgramFilesFolderPath (2008-01-02 Doug K.)
Added method which returns the path to the 'Program Files' or 'Applications' directory, based on the operating system.

swGui4

oConcretizer/$createDeveloperWinClass (2007-12-04 Doug K.)
Save the developerized class to that it is permanently written to the disk.

oConcretizer/$createRuntimeWinClass (2007-12-04 Doug K.)
Save the runtime class to that it is permanently written to the disk. Josh was having problems with runtimized classes losing all their fields.

oMenus/$retNavMenusLinesList (2007-12-06 Doug K.)
Remove any menu lines where the homelibname library is not currently open.

oWindows/sortWindowsList (2007-12-04 Doug K.)
Use uppercase sorting.

owcWindowMenusListEditor/setDisplayFields (2008-01-22 Doug K.)
Added VCS warning if the sMn_stb schema class is not checked out in the same library as the observer's home library.

wBase_ToolbarTitlebar_abstract/$_constructToolbar (2008-01-30 Doug K. per Chuck Martin.)
Check the iWinsListRow.toolbarvisible property. If null default bToolbarVisible to true, otherwise use the toolbarvisible property.

wBase_abstract/$_retActiveCmndsList_winslist (2008-01-30 Doug K. per Josh L request.)
Added code to commands which have 'activemodescsv' property and are in the current mode.

wBase_abstract/$updateActiveCmnds (2008-01-30 Doug K per Josh L)
Removed the code which compared the old and new command factors row so that the 'activemodescsv' property would be respected. There might be a slight performance hit. One offset is that the $:CmdFactorsRow property method is no longer called by this method.

wContainer_List_ListChildren_abstract/$setupWindow (2008-01-22 Doug K per Andy H)
Bug fix. Changed rswListChild to irswListChild. (missing the 'i')

wContainer_abstract/$_constructToolbar (2008-01-30 Doug K. per Chuck Martin.)
Check the iWinsListRow.toolbarvisible property. If null default bToolbarVisible to true, otherwise use the toolbarvisible property.

wContainer_abstract/$_retActiveCmndsList_winslist (2008-01-30 Doug K. per Josh L request.)
Added code to commands which have 'activemodescsv' property and are in the current mode.

wContainer_abstract/$updateActiveCmnds (2008-01-30 Doug K per Josh L)
Removed the code which compared the old and new command factors row so that the 'activemodescsv' property would be respected. There might be a slight performance hit. One offset is that the $:CmdFactorsRow property method is no longer called by this method.

wPromptFindMultiCriteria/$initialize (2007=07-11 Doug K.)
Check the columns for hasfetchall and add if required.

wTotals/addField (2008-01-30 Doug K per Chuck M.)
Set $horzscroll to kFalse, just to be sure. If set to true with kRightJst the text will not be visible.

wWindowInstancesListEditor/modifySelectedWinInstClass (2007-12-04 Doug K.)
Added Alt/Opt+Click option to the 'Modify' button to look at the runtimized window class.

swIcons4

No modifications

swRefs4

No modifications

swReports4

oReportBuilder/$createReportClass (2008-01-22 Doug K. per Andy H.)
Added code to check for an existing report instance and not bother to create a new report if one exists.

oReportBuilder/createReportClass (2008-01-22 Doug K.)
Added code to check for and log errors. Removed the non-visual Yes/No message prompt which asked the user if they wanted to delete the old report instance.

swWeb4

oSearchPage/addSQLCLassToPublicSearchSQLClasses (200707-21 Doug K.)
Moved code which finds and sets a reference to the web module to a separate method and call the method.