Version overview for AdsClass++

Version 5.3 Build 58 released 11/01/23:
dsAceQTable:ScatterName enhanced: new parameter: fieldlist
dsAceQTable:GatherName enhanced: new parameter: fieldlist
dsAceQTable:FieldPut fixed: write logical values
dsAceQTable:FieldGet fixed: field type GUID
dsAceSQLTable:Waitpointer new:
dsAceSQLTable:DefaultWaitpointer new:
dsAceSession:FetchValue() new: get one tupel by SQL
dsAceSession:FetchRow() new: get one row by SQL
dsAceSession:FetchRows() new: get many rows by SQL
OpenAceTable changed: encypted table and wrong password returns NIL
OpenAce enhanced: thread performance

Attention: dsserver.ch is changed with Version 5 and adjusted to Xbase++ types.ch. The new defines are NOT backward compatible.
This version of AdsClass++ cannot be used together with XClass++ versions older then 5.0. Both products have to be updated.
Code that deals with structure of tables has to be recomplied and checked for any comparisions of data type literals.
Alaske introduced new structure definitons due to the implementation of ProstgreSQL:
Short, Integer and LongLong are represtened by I, the length determines the size of the bytes: 2,4, or 8.
In this context all other type defines are adjusted to Alaska. See dsServer.ch

Some duplicate functions have been removed to #translate in dsAceServer.ch.
If linking detects some unresolved symbols add #include "dsAceServer.ch" to the prg.

Begining from now the keyword Server is replaced by Table. That means, classnames or functions like *server are now called *table. Both nameing conventions exist to guarantee backward compatibility.
AddGlobalTable      Is AddGlobalServer
CloseGlobalTable      Is CloseGlobalServer
CreateSQLServer      IS CreateSQL
DeclareGlobalTable      Is DeclareGlobalServer
GetConnectionHandle      IS ConnHandle
GlobalTable      Is GlobalServer
OpenDataSet      IS OpenSelect
OpenSqlServer      IS OpenSelect
OpenGlobalTable      Is OpenGlobalServer
OpenSqlSession      IS CreateSQL
OpenStatement      IS ExecSql
OpenTable      IS OpenServer
Sql2Server      IS OpenSqlServer

Version 5.2 Build 55:
dsAceDD:Value      obsolet renamed to FetchValue(),extended parameter
dsAceDD:Row      obsolet renamed to FetchRow(), extended parameter
dsAceDD:DataobjectArray      obsolet renamed to FetchRows(), extended parameter
dsAceDD:FetchValue      new get one tupel by SQL
dsAceDD:FetchRow      new get one row by SQL
dsAceDD:FetchRows      new get many rows by SQL
dsAceDD:FetchXML      new get SQL resultset as XML stream
dsAceMG      removed support for ADS Version < 8.1
dsAceDD:Replace      new create dynamically SQL UPDATE statement
dsAceDD:Append      new create dynamically SQL INSERT statement
dsAceQTable:ScatterName     new equals ScatterDataObject, to be compatible with Xbase++ SCATTER NAME
dsMemoryTable      new table class to manage an array with dataobjects

Version 5.1 Build 53:
dsAceTable          fixed: workaround for PDR 7440, date value without century is wrong

Version 5.1 Build 52:
Components in XclBase have changed. All code MUST be compiled with flag
XClass (when used) must be updated as well.

AdsGetSqlNativeError      new: get subcode of a SQL error 7200
dsAceDD:DataObjectArray      new: copy a resultset into an array with dataobjects
dsAceDD:ModifyLink      new: Change LINK
dsAceDD:Row      new: get a row by SQL as dataobject
dsAceDD:Value      new: get a field by SQL as native data type
dsAceQTable:ScatterDataObject      enhanced: function accepts now parameter to return NIL values
dsAceQTable:SetScope      enhanced: 1st parameter can be SCOPE_BOTH to be compatible to Xbase++

Version 5.0 Build 51:

several adaption performances to ADS kernel
AdsGetVersion()      updated docu: use AdsGetServerVersion()
dsAceQTable      fixed:calculation of picture mask for decimal fields corrected
dsAceQTable:GatherDataObject      new: writes DataObject into table
dsAceQTable:ScatterDataObject      new: returns DataObject with named field values
dsAceServerDB:locate      new: locate codeblock get passed the with table object

Version 5.0 Build 50:

Callstack      new: callstack as string
dsDebugLog      new: log or write any information
dsGlobalTable      new: parent class for AdsClass, PQclass, SQLXPPclass
dsError      new: extending error()
dsServer.ch      changed: new and changed defines for extended table structure
SetDisplayErrors      new: show or suppress error messages
SetDisplayErrorTime      new: duration to display error meassage window
dsBaseServer:Fieldinfo      new: new parameters for valtype, picture, edit_length, nullable, readonly
dsAceDD:quickExec      new. quick SQL queries without table object
dsAceDD:GetLastError      new: dacSession compatible
dsAceDD:GetLastMessage      new: dacSession compatible
dsAceDD:OpenTable      ident with dsAceDD:OpenServer
dsAceDD:OpenSelect      ident with dsAceDD:OpenSqlServer
dsAceDD:OpenDataset      ident with dsAceDD:OpenSqlServer
dsAceDD:OpenStatement      ident with dsAceDD:ExecSql
dsAceSession:onError      new: default error handler
dsAceSession:DisplayErrors      new: show or suppress error messages
dsAceSession:DisplayErrorTime      new: duration to display error meassage window
dsAceQTable:locate      extended syntax
dsAceQTable:GetLastError      new: dacSession compatible
dsAceQTable:GetLastMessage      new: dacSession compatible
dsAceQTable:onError      new: default error handler
dsAceQTable:DisplayErrors      new: show or suppress error messages
dsAceQTable:DisplayErrorTime      new: duration to display error meassage window
dsAceSqlTable:GetLastError      new: dacSession compatible
dsAceSqlTable:GetLastMessage      new: dacSession compatible
dsAceSqlTable:onError      new: default error handler
dsAceSqlTable:DisplayErrors      new: show or suppress error messages
dsAceSqlTable:DisplayErrorTime      new: duration to display error meassage window

Version 4.1

Up from this version AdsClass++ is available for Xbase 2.x too

Special for use of AdsClass++ with Xbase++ 2.x there are some new tools:
VXShell: command shell with environment for Xbase 2.0 and AdsClass++
VXLink: creates batch files to toggle between Xbase 1.9 and Xbase 2.x
VXReset: resets the setting sof VXLink
VXInst (for Xbase 2.x): sets the environment variables for Workbench with AdsClass++
VXInst (for Xbase 1.9): sets the environment variables for Windows

Build 4.1.043:
various internal optimizations

Build 4.1.042:
compatible to Xbase++ 2.0 and Xbase 1.9.355

Build 4.0.041:
dsAceServer:lastautoinc      new: get last autoinc value
dsAceServer:refreshSql      enhanced: rowversion field will not be used for repositioning
dsAceSQLServer:UpdatedRecords      new: replaces GetRecordCount

Build 4.0.040:
dsAceDD:Connect      changed: parameters to Errorblock, !!! incompatible to prior versions !!!
dsAceDD:Connect      enhanced: first parameter can be a connectstring, then using AdsConnect101
dsAceDD:OpenServer      enhanced: depending on :connect AdsConnect101 is used
AdsIsConnectionAlive      replaces IsConnectionAlive

Build 4.0.039:
Openace      multithreading, enhanced, clarification
dsAceServer:orddestroy     changed: returns true when successfull or false
ExecuteThreadSQL      new: execute SQL in thread in background
AdsSetDateFormat     changed: Xbase++ Set (_SET_DECIMAL) is ignored, instead always YYYYMMDD is used for communication to ensure correct century. Wrong century could be stored when setting century=OFF.