Versionsübersicht von AdsClass++

Version 5.3 Build 58 released 01.11.23:
dsAceQTable:ScatterName erweitert: neuer Parameter: fieldlist
dsAceQTable:GatherName erweitert: neuer Parameter: fieldlist
dsAceQTable:FieldPut korrigiert: schreiben logischer Werte
dsAceQTable:FieldGet korrigiert: Feldtyp GUID
dsAceSQLTable:Waitpointer neu:
dsAceSQLTable:DefaultWaitpointer neu:
dsAceSession:FetchValue() neu: mit SQL ein Tupel erhalten
dsAceSession:FetchRow() neu: mit SQL eine Datenzeile erhalten
dsAceSession:FetchRows() neu: mit SQL mehrere Datenzeilen erhalten
OpenAceTable geändert: verschlüsselte Tabelle und falsches Passwort gibt NIL zurück
OpenAce verbessert: Thread Performance

Hinweis: Ab der Version 5 ist die dsserver.ch an die Defines der types.ch von Alaska angepasst. Die neuen Defines sind NICHT abwärtskompatibel. Diese Version von AdsClass++ kann nicht zusammen mit älteren Versionen von XClass++ (Version kleiner 5.0) verwendet werden. Es müssen beide Produkte aktuell sein.
Wer strukturnahen Code implementiert hat, muss alle Obj-Dateien neu erstellen und sollte Abfragen nach dem Datentyp Bezeichner prüfen.
Alaska hat mit der Einführung der PostgreSQL Unterstützung folgende neu Strukturdefinitionen eingeführt:
Short, Integer und LongLong werden durch den Buchstaben I in der Struktur representiert, die Länge enthält dann die Anzahl Bytes des Datentypes, 2,4, oder 8.
In diesem Zusammenhang wurden auch andere Defines mit denen von Alaska abgeglichen. Siehe dazu dsServer.ch

Einige Duplette von Funktione wurde als #translate in dsAceServer.ch aufgenommen.
Wenn nach dem Linken einige unresolved symbols ausgewiesen werde, muss #include "dsAceServer.ch" in den PRG hinzugefügt werden.

Beginnend mit dieser Version wird der Begriff Server durch Table ersetzt. Konkret bedeutet dies, dass Klassen oder Funktionen statt *server jetzt auch *table heißen. Somit existieren beide Bezeichnungen, um die Abwärtskompaibiltität zu garantieren
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 umbenannt nach FetchValue(), erweitere Parameter
dsAceDD:Row()      obsolet umbenannt nach FetchRow(), erweitere Parameter
dsAceDD:DataobjectArray()      obsolet umbenannt nach FetchRows(), erweitere Parameter
dsAceDD:FetchValue      neu einen Wert/Tupel mit SQL lesen
dsAceDD:FetchRow      neu eine Zeile/Row mit SQL lesen
dsAceDD:FetchRows      neu mehrere Zeilen/Rowa mit SQL lesen
dsAceDD:FetchXML      neu SQL Ergebnis als XML
dsAceMG      ADS Version < 8.1 wird nicht mehr unterstützt
dsAceDD:Replace      neu dynamisch SQL UPDATE Statement erzeugen
dsAceDD:Append      neu dynamisch SQL INSERT Statement erzeugen
dsAceQTable:ScatterName     neu ident mit ScatterDataObject, kompatibel zu Xbase++ SCATTER NAME
dsMemoryTable      neu Tabellenklasse für Array mit Dataobjects

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

Version 5.1 Build 52:
XclBase wurde in der Zusammenstellung verändert. Es müssen alle Programme neu kompiliert werden mit Schalter /A
Auch XClass (wenn eingesetzt) muss mit upgedatet werden.

AdsGetSqlNativeError      neu: Der Subcode eines SQL 7200 Fehler wird zurückgegeben
dsAceDD:DataObjectArray      neu: Kopiert die daten in ein Array mit Dataobjects
dsAceDD:ModifyLink      neu: LINK ändern
dsAceDD:Row      neu: einen Satz per SQL als Dataobject abfragen
dsAceDD:Value      neu: ein Feld per SQL abfragen
dsAceQTable:ScatterDataObject      erweitert: neuer Parameter, um auch NIL Werte zurückzugeben
dsAceQTable:SetScope      erweitert: erster Parameter kann SCOPE_BOTH sein, Xbase++ kompatibel

Version 5.0 Build 51:
verschiedene Performanceanpassungen an den ADS Kernel
AdsGetVersion()     
dsAceQTable      geändert: Kalkulation der Picturemaske für Dezimalfelder
dsAceQTable:GatherDataObject     neu: schreibt DataObject Werte in die Tabelle
dsAceQTable:ScatterDataObject      neu: gibt DataObject mit benamtem Feldwerten zurück
dsAceServerDB:locate      neu: der Locate-Codeblock bekommt das Tabellenobjekt übergeben

Version 5.0 Build 50:
Callstack      neu: Callstack als Zeichenkette
dsDebugLog      neu: Protokollieren oder Schreiben jedweder Information
dsGlobalTable      neu: Parentklasse für AdsClass, PQclass, SQLXPPclass
dsError      neu: erweiterte error() Klasse
dsServer.ch      geändert: neue und geänderte Defines für erweiterte Tabelle Struktur
SetDisplayErrors     neu: Fehlermeldungen anzeigen oder unterdrücken
SetDisplayErrorTime      neu: Zeit der Anzeige von Fehlermeldungen
dsBaseServer:Fieldinfo      neu: neue Parameter für valtype, picture, edit_length, nullable, readonly
dsAceDD:quickExec      neu. schnelle SQL Abfragen ohne Tabellenobjekt
dsAceDD:GetLastError      neu: dacSession kompatibel
dsAceDD:GetLastMessage      neu: dacSession kompatibel
dsAceDD:OpenTable      ident mit dsAceDD:OpenServer
dsAceDD:OpenSelect      ident mit dsAceDD:OpenSqlServer
dsAceDD:OpenDataset      ident mit dsAceDD:OpenSqlServer
dsAceDD:OpenStatement      ident mit dsAceDD:ExecSql
dsAceSession:onError      neu: Default Error Handler
dsAceSession:DisplayErrors      neu: anzeigen oder unterdrücken einer Fehlermeldung
dsAceSession:DisplayErrorTime      neu: Dauer der Anzeige des Fehlerfensters
dsAceQTable:locate      erweiterte Syntax
dsAceQTable:GetLastError      neu: dacSession kompatibel
dsAceQTable:GetLastMessage      neu: dacSession kompatibel
dsAceQTable:onError      neu: Default Error Handler
dsAceQTable:DisplayErrors      neu: anzeigen oder unterdrücken einer Fehlermeldung
dsAceQTable:DisplayErrorTime      neu: Dauer der Anzeige des Fehlerfensters
dsAceSqlTable:GetLastError      neu: dacSession kompatibel
dsAceSqlTable:GetLastMessage      neu: dacSession kompatibel
dsAceSqlTable:onError      neu: Default Error Handler
dsAceSqlTable:DisplayErrors      neu: anzeigen oder unterdrücken einer Fehlermeldung
dsAceSqlTable:DisplayErrorTime      neu: Dauer der Anzeige des Fehlerfensters

Version 4.1

Ab dieser Version ist AdsClass++ auch für Xbase 2.x verfügbar!

Speziell für den Gebrauch von AdsClass++ mit Xbase++ 2.x gibt es einige neue Tools:
VXShell: Command Shell nur mit den Umgebungsvariablen für Xbase 2.0 und AdsClass++
VXLink: erzeugt Batch-Dateien die die Umgebung zwischen Xbase 1.9 und Xbase 2.x umschalten
VXReset: setzt die Einstellungen von VXLink zurück
VXInst (für Xbase 2.x): setzt die Umgebungsvariablen in der Workbench für AdsClass++
VXInst (für Xbase 1.9): setzt die Umgebungsvariablen in der Windows Umgebung

Build 4.1.043:
verschiedene interne Optimierungen

Build 4.1.042:
kompatible zu Xbase++ 2.0 und Xbase 1.9.355

Build 4.0.041:
dsAceServer:lastautoinc      neu: letzten Autoinc Wert ermitteln
dsAceServer:refreshSql      erweitert: RowVersion Feld wird nicht zur Repositionierung benutzt
dsAceSQLServer:UpdatedRecords      neu: Ersatz für :GetRecordCount

Build 4.0.040:
dsAceDD:Connect      geändert: Errorblock Parameter, !!! nicht kompatible zu vorherigen Versionen!!!
dsAceDD:Connect      erweitert: erster Parameter kann auch ein Connect-String sein, dann wird AdsConnect101 benutzt
dsAceDD:OpenServer      erweitert: abhängig von :Connect wird AdsConnect101 benutzt
AdsIsConnectionAlive      ersetzt IsConnectionAlive

Build 4.0.039:
Openace      Multithreading, erweitert, Klarstellung
dsAceServer:orddestroy     geändert: Rückgabe true wenn erfolgreich
ExecuteThreadSQL     neu: SQL in eigenem Thread im Hintergrund ausführen
AdsSetDateFormat      geändert: Xbase++ Set (_SET_DECIMAL) wird ignoriert, es wird immer YYYYMMDD verwendet, um korrktes jahrhundert sicherzustellen. Wenn century=OFF ausgeschaltet war, konnte es zu falschem Jahrhundert kommen.