diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAADODrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAADODrv.dad
new file mode 100644
index 0000000..02c92d6
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAADODrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAAnyDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAAnyDACDrv.dad
new file mode 100644
index 0000000..1963e5e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAAnyDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DABDEDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DABDEDrv.dad
new file mode 100644
index 0000000..06f639f
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DABDEDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAConverter.exe b/official/5.0.35.741/Data Abstract (Common)/Bin/DAConverter.exe
new file mode 100644
index 0000000..fcb7211
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAConverter.exe differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM3Drv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM3Drv.dad
new file mode 100644
index 0000000..98e9be9
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM3Drv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM4Drv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM4Drv.dad
new file mode 100644
index 0000000..604c9dd
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBISAM4Drv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DADBXDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBXDrv.dad
new file mode 100644
index 0000000..8d4bcb2
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DADBXDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAElevateDBDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAElevateDBDrv.dad
new file mode 100644
index 0000000..af89dea
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAElevateDBDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAFIBDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAFIBDrv.dad
new file mode 100644
index 0000000..52dbb8f
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAFIBDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBDACDrv.dad
new file mode 100644
index 0000000..94d7147
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBODrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBODrv.dad
new file mode 100644
index 0000000..ba7298e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBODrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBXDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBXDrv.dad
new file mode 100644
index 0000000..d5bdae1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAIBXDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAMyDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAMyDACDrv.dad
new file mode 100644
index 0000000..c457df8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAMyDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAMySQLDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAMySQLDACDrv.dad
new file mode 100644
index 0000000..c1fdbe6
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAMySQLDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DANexusDBDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DANexusDBDrv.dad
new file mode 100644
index 0000000..779c18d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DANexusDBDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAODACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAODACDrv.dad
new file mode 100644
index 0000000..08addb4
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAODACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAPostgresDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAPostgresDACDrv.dad
new file mode 100644
index 0000000..3009f60
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAPostgresDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DASDACDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DASDACDrv.dad
new file mode 100644
index 0000000..f83fe1d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DASDACDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DASQLiteDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DASQLiteDrv.dad
new file mode 100644
index 0000000..1aec613
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DASQLiteDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.chm b/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.chm
new file mode 100644
index 0000000..3873c8c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.chm differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.exe b/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.exe
new file mode 100644
index 0000000..8556fcb
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DASchemaModeler.exe differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAServer.exe b/official/5.0.35.741/Data Abstract (Common)/Bin/DAServer.exe
new file mode 100644
index 0000000..6d06eab
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAServer.exe differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DAZeosDrv.dad b/official/5.0.35.741/Data Abstract (Common)/Bin/DAZeosDrv.dad
new file mode 100644
index 0000000..5470ba4
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/DAZeosDrv.dad differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/Data Abstract.lic b/official/5.0.35.741/Data Abstract (Common)/Bin/Data Abstract.lic
new file mode 100644
index 0000000..51a3184
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract (Common)/Bin/Data Abstract.lic
@@ -0,0 +1,18 @@
+858331a3f6627cb5edad897b81e92c24542c2bd4e224284f86f4c5de2870c8e989978bee712e8654cb8c5cd8561fb3171743b80a7feb5ccad349208813d00b770fcf30a8e4fbc32fcd93dde70a9d6e58a5a6c52a1dea4a386eee6feed7ad369613c7d827d99529c4011ee3868997e243ce5ecc5a9bc1335cf514a3a4132b4af75e5f4eb39bda490711376264a57456afd4a46bd9b82e9275ea9524f65a59c73171b66ac4253dfff1e494d1d6636aa5098fbf868e72f1e1623726c382f73d1f61d90630686fb32fa8c28fe81f2323d3aba1ad6246c656cd3dbbf0190388ab176c8046f59a95f0d052897af2e98175339d3cb31faad526412273d97d7598d7235e
+314ea6e3de0c5478f767a86d9dedc6d345aadc1821a9bffa4e1da6cbcd92bc27e88e3d81376fd316b2f4d0519278e58e3d67474ced1a4dd17b9b90ad1a907b18
+Name=Trial
+Email=Trial
+UserId=Trial
+Company=Trial
+LicenseType=Default
+ProductName=Data Abstract
+Version=5
+AllowBeta=0
+Trial=1
+SubscriptionEndDate=2008-11-30
+LicenseFileEndDate=2008-11-29
+StartDate=2008-11-26
+EndDate=2009-8-29
+P1=5523046978612394123
+P2=14746419013494857097
+P3=1587299007
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/DefaultConnections.ini b/official/5.0.35.741/Data Abstract (Common)/Bin/DefaultConnections.ini
new file mode 100644
index 0000000..fd8e300
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract (Common)/Bin/DefaultConnections.ini
@@ -0,0 +1,14 @@
+[Delphi]
+AdventureWorks=ADO?AuxDriver=SQLNCLI.1;Server=localhost;Database=AdventureWorks;Schemas=1;Integrated Security=SSPI
+Northwind=ADO?AuxDriver=SQLOLEDB.1;Server=localhost;Database=Northwind;Integrated Security=SSPI
+Employee=IBX?Server=localhost;Database=C:\Program Files\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB;UserID=sysdba;Password=masterkey;
+
+[.NET]
+AdventureWorks=MSSQL2005.NET?Database=AdventureWorks;Server=localhost;Integrated Security=SSPI
+Northwind=MSSQL.NET?Database=Northwind;Server=localhost;Integrated Security=SSPI
+Employee=FB.NET?Server=localhost;Database=C:\Program Files\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB;UserID=sysdba;Password=masterkey;
+
+[Descriptions]
+AdventureWorks_Description=Microsoft SQL Server 2005, localhost
+Northwind_Description=Microsoft SQL Server 2000, localhost
+Employee_Description=Firebird/Interbase, localhost
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/borlndmm.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/borlndmm.dll
new file mode 100644
index 0000000..2e3ede2
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/borlndmm.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxasa30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxasa30.dll
new file mode 100644
index 0000000..3410b2f
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxasa30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxase30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxase30.dll
new file mode 100644
index 0000000..1977334
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxase30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxconnections.ini b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxconnections.ini
new file mode 100644
index 0000000..cd417db
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxconnections.ini
@@ -0,0 +1,192 @@
+[DBXPoolConnection]
+DriverName=DBXPool
+MaxConnections=16
+MinConnections=0
+ConnectTimeout=0
+
+[DBXTraceConnection]
+DriverName=DBXTrace
+;TraceFile=c:\temp\dbxtrace.txt
+;TraceFlags=PARAMETER;ERROR;EXECUTE;COMMAND;CONNECT;TRANSACT;BLOB;MISC;VENDOR;READER;DRIVER_LOAD;METADATA
+;TraceDriver=true
+TraceFlags=NONE
+
+[DB2Connection]
+;DelegateConnection=DBXTraceConnection
+DriverName=DB2
+Database=DBNAME
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+DB2 TransIsolation=ReadCommited
+Decimal Separator=.
+
+[MySQLConnection]
+;DelegateConnection=DBXTraceConnection
+DriverName=MySQL
+HostName=ServerName
+Database=DBNAME
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Compressed=False
+Encrypted=False
+
+
+[OracleConnection]
+;DelegateConnection=DBXTraceConnection
+DriverName=Oracle
+DataBase=Database Name
+User_Name=user
+Password=password
+RowsetSize=20
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Oracle TransIsolation=ReadCommited
+OS Authentication=False
+Multiple Transaction=False
+Trim Char=False
+Decimal Separator=.
+
+[InformixConnection]
+;DelegateConnection=DBXTraceConnection
+DriverName=Informix
+HostName=ServerName
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Informix TransIsolation=ReadCommited
+Trim Char=False
+
+
+[ASAConnection]
+;DelegateConnection=DBXTraceConnection
+DriverName=ASA
+HostName=ServerName
+Database=DBNAME
+User_Name=user
+Password=password
+ConnectionString=
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+ASA TransIsolation=ReadCommited
+
+[ASEConnection]
+;DelegateConnection=DBXTraceConnection
+DriverName=ASE
+HostName=ServerName
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+ASE TransIsolation=ReadCommited
+
+[BlackfishSQLCONNECTION]
+DriverName=BlackfishSQL
+HostName=localhost
+port=2508
+Database=databasename
+create=true
+User_Name=sysdba
+Password=masterkey
+BlobSize=-1
+TransIsolation=ReadCommited
+[Employee]
+DriverName=Interbase
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DbxDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+Database=localhost:D:\EMPLOYEE.FDB
+RoleName=RoleName
+User_Name=sysdba
+Password=masterkey
+ServerCharSet=
+SQLDialect=3
+BlobSize=-1
+CommitRetain=False
+WaitOnLocks=True
+ErrorResourceFile=
+LocaleCode=0000
+Interbase TransIsolation=ReadCommited
+Trim Char=False
+MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+[MSSQLConnection]
+SchemaOverride=sa.dbo
+DriverName=MSSQL
+HostName=localhost\sqlexpress
+DataBase=adventureWorks
+User_Name=sa
+Password=
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+MSSQL TransIsolation=ReadCommited
+OS Authentication=True
+Prepare SQL=False
+[AdventureWorks]
+DriverName=MSSQL
+SchemaOverride=%.dbo
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+HostName=wks1
+DataBase=master
+User_Name=sa
+Password=
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+MSSQL TransIsolation=ReadCommited
+OS Authentication=True
+Prepare SQL=False
+MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+[ADO]
+DriverName=MSSQL
+SchemaOverride=%.dbo
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+HostName=localhost
+DataBase=Northwind
+User_Name=sa
+Password=
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+MSSQL TransIsolation=ReadCommited
+OS Authentication=True
+Prepare SQL=False
+[IBConnection]
+DriverName=Interbase
+Database=database.gdb
+RoleName=RoleName
+User_Name=sysdba
+Password=masterkey
+ServerCharSet=
+SQLDialect=3
+ErrorResourceFile=
+LocaleCode=0000
+BlobSize=-1
+CommitRetain=False
+WaitOnLocks=True
+Interbase TransIsolation=ReadCommited
+Trim Char=False
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdb230.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdb230.dll
new file mode 100644
index 0000000..b44bb92
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdb230.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdrivers.ini b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdrivers.ini
new file mode 100644
index 0000000..63a869f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxdrivers.ini
@@ -0,0 +1,301 @@
+[Installed Drivers]
+DB2=1
+Interbase=1
+MySQL=1
+Oracle=1
+Informix=1
+MSSQL=1
+ASA=1
+ASE=1
+DBXTrace=1
+DBXPool=1
+BlackfishSQL=1
+
+[DBXPool]
+DelegateDriver=True
+DriverName=DBXPool
+DriverUnit=DBXPool
+DriverPackageLoader=TDBXPoolDriverLoader,DBXCommonDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXPoolDriverLoader,Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+[DBXTrace]
+DelegateDriver=True
+DriverName=DBXTrace
+DriverUnit=DBXTrace
+DriverPackageLoader=TDBXTraceDriverLoader,DBXCommonDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXTraceDriverLoader,Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+[DB2]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverDB2
+LibraryName=dbxdb230.dll
+VendorLib=db2cli.dll
+Database=DBNAME
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+DB2 TransIsolation=ReadCommited
+Decimal Separator=.
+MetaDataPackageLoader=TDBXDb2MetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXDb2MetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[Interbase]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DbxDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverINTERBASE
+LibraryName=dbxint30.dll
+VendorLib=GDS32.DLL
+Database=database.gdb
+RoleName=RoleName
+User_Name=sysdba
+Password=masterkey
+ServerCharSet=
+SQLDialect=3
+BlobSize=-1
+CommitRetain=False
+WaitOnLocks=True
+ErrorResourceFile=
+LocaleCode=0000
+Interbase TransIsolation=ReadCommited
+Trim Char=False
+MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[MySQL]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DbxDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverMYSQL
+LibraryName=dbxmys30.dll
+VendorLib=LIBMYSQL.dll
+HostName=ServerName
+Database=DBNAME
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Compressed=False
+Encrypted=False
+MetaDataPackageLoader=TDBXMySqlMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXMySqlMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[Oracle]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverORACLE
+LibraryName=dbxora30.dll
+VendorLib=oci.dll
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Oracle TransIsolation=ReadCommited
+RowsetSize=20
+OS Authentication=False
+Multiple Transaction=False
+Trim Char=False
+Decimal Separator=.
+MetaDataPackageLoader=TDBXOracleMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXOracleMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[Informix]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverINFORMIX
+LibraryName=dbxinf30.dll
+VendorLib=isqlt09a.dll
+HostName=ServerName
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+Informix TransIsolation=ReadCommited
+Trim Char=False
+MetaDataPackageLoader=TDBXInformixMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXInformixMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[MSSQL]
+SchemaOverride=%.dbo
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverMSSQL
+LibraryName=dbxmss30.dll
+VendorLib=oledb
+HostName=ServerName
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+MSSQL TransIsolation=ReadCommited
+OS Authentication=False
+Prepare SQL=False
+MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[ASA]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DbxDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverASA
+LibraryName=dbxasa30.dll
+VendorLib=dbodbc9.dll
+HostName=ServerName
+Database=DBNAME
+User_Name=user
+Password=password
+ConnectionString=
+BlobSize=-1
+ErrorResourceFile=
+LocaleCode=0000
+ASA TransIsolation=ReadCommited
+MetaDataPackageLoader=TDBXSybaseASAMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXSybaseASAMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[ASE]
+DriverUnit=DBXDynalink
+DriverPackageLoader=TDBXDynalinkDriverLoader,DBXDynalinkDriver100.bpl
+DriverPackage=DBXCommonDriver110.bpl
+DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxDynalinkDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+DriverAssembly=Borland.Data.DbxCommonDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=a91a7c5705831a4f
+
+GetDriverFunc=getSQLDriverASE
+LibraryName=dbxase30.dll
+VendorLib=libct.dll;libcs.dll
+HostName=ServerName
+DataBase=Database Name
+User_Name=user
+Password=password
+BlobSize=-1
+TDS Packet Size=512
+Client HostName=
+Client AppName=
+ErrorResourceFile=
+LocaleCode=0000
+ASE TransIsolation=ReadCommited
+MetaDataPackageLoader=TDBXSybaseASEMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXSybaseASEMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+
+[AutoCommit]
+False=0
+True=1
+
+[BlockingMode]
+False=0
+True=1
+
+[WaitOnLocks]
+False=1
+True=0
+
+[CommitRetain]
+False=0
+True=1
+
+[OS Authentication]
+False=0
+True=1
+
+[Multiple Transaction]
+False=0
+True=1
+
+[Trim Char]
+False=0
+True=1
+
+[DB2 TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[Interbase TransIsolation]
+ReadCommited=1
+RepeatableRead=2
+
+[Oracle TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[Informix TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[MSSQL TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[ASA TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[ASE TransIsolation]
+DirtyRead=0
+ReadCommited=1
+RepeatableRead=2
+
+[SQLDialect]
+1=0
+2=1
+3=2
+
+[Bdp Providers]
+Oracle=Oracle
+Sybase=Sybase
+Interbase=Interbase
+DB2=DB2
+MySql=MySql
+[BlackfishSQL]
+DriverUnit=DBXClient
+DriverPackageLoader=TDBXClientDriverLoader,DBXClientDriver100.bpl
+DriverAssemblyLoader=Borland.Data.TDBXClientDriverLoader,Borland.Data.DbxClientDriver,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+MetaDataPackageLoader=TDBXDataStoreMetaDataCommandFactory,DbxReadOnlyMetaData100.bpl
+MetaDataAssemblyLoader=Borland.Data.TDBXDataStoreMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
+Password=masterkey
+User_Name=sysdba
+Port=2508
+Create=False
+ReadOnlyDb=False
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxinf30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxinf30.dll
new file mode 100644
index 0000000..75f6178
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxinf30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxint30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxint30.dll
new file mode 100644
index 0000000..6be9532
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxint30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmss30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmss30.dll
new file mode 100644
index 0000000..770053b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmss30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmys30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmys30.dll
new file mode 100644
index 0000000..9795083
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmys30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmysA30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmysA30.dll
new file mode 100644
index 0000000..e7a34cf
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxmysA30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxora30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxora30.dll
new file mode 100644
index 0000000..f39c32d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxora30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/dbxoraw30.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxoraw30.dll
new file mode 100644
index 0000000..72fdf4d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/dbxoraw30.dll differ
diff --git a/official/5.0.35.741/Data Abstract (Common)/Bin/sqlite3.dll b/official/5.0.35.741/Data Abstract (Common)/Bin/sqlite3.dll
new file mode 100644
index 0000000..7111873
Binary files /dev/null and b/official/5.0.35.741/Data Abstract (Common)/Bin/sqlite3.dll differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.bpl
new file mode 100644
index 0000000..f42598a
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.dcp
new file mode 100644
index 0000000..33d6961
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_ADODriver_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.bpl
new file mode 100644
index 0000000..c44338d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.dcp
new file mode 100644
index 0000000..bc81f21
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_BDEDriver_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.bpl
new file mode 100644
index 0000000..be95b76
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.dcp
new file mode 100644
index 0000000..bbee11d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Core_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.bpl
new file mode 100644
index 0000000..3df8a01
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.dcp
new file mode 100644
index 0000000..d46eaeb
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_DBXDriver_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.bpl
new file mode 100644
index 0000000..1925b05
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.dcp
new file mode 100644
index 0000000..b14563e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IBXDriver_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.bpl
new file mode 100644
index 0000000..7df2429
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.dcp
new file mode 100644
index 0000000..62f287e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_IDE_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.bpl
new file mode 100644
index 0000000..1e56025
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.dcp
new file mode 100644
index 0000000..f4248ec
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_SQLiteDriver_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.bpl
new file mode 100644
index 0000000..5a4af9c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.dcp
new file mode 100644
index 0000000..107c36d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D10/DataAbstract_Scripting_D10.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.bpl
new file mode 100644
index 0000000..61958fb
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.dcp
new file mode 100644
index 0000000..db3de5d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_ADODriver_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.bpl
new file mode 100644
index 0000000..a1c2dc8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.dcp
new file mode 100644
index 0000000..ba6332c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_BDEDriver_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.bpl
new file mode 100644
index 0000000..1fb8158
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.dcp
new file mode 100644
index 0000000..3700ba5
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Core_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.bpl
new file mode 100644
index 0000000..5765ec1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.dcp
new file mode 100644
index 0000000..6dfadd3
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_DBXDriver_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.bpl
new file mode 100644
index 0000000..f69bd9c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.dcp
new file mode 100644
index 0000000..9b83e7e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IBXDriver_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.bpl
new file mode 100644
index 0000000..1b6941d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.dcp
new file mode 100644
index 0000000..4e1277d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_IDE_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.bpl
new file mode 100644
index 0000000..213c44d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.dcp
new file mode 100644
index 0000000..1bf2484
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_SQLiteDriver_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.bpl
new file mode 100644
index 0000000..735fba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.dcp
new file mode 100644
index 0000000..04f8fce
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D11/DataAbstract_Scripting_D11.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.bpl
new file mode 100644
index 0000000..3fae5cf
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.dcp
new file mode 100644
index 0000000..f300e22
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_ADODriver_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.bpl
new file mode 100644
index 0000000..266b56a
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.dcp
new file mode 100644
index 0000000..9498704
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_BDEDriver_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.bpl
new file mode 100644
index 0000000..66e9148
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.dcp
new file mode 100644
index 0000000..6ead60a
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Core_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.bpl
new file mode 100644
index 0000000..ac9a010
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.dcp
new file mode 100644
index 0000000..f48e1b5
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_DBXDriver_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.bpl
new file mode 100644
index 0000000..99ef010
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.dcp
new file mode 100644
index 0000000..c37bac7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IBXDriver_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.bpl
new file mode 100644
index 0000000..2808503
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.dcp
new file mode 100644
index 0000000..b27f12c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_IDE_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.bpl
new file mode 100644
index 0000000..41a950a
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.dcp
new file mode 100644
index 0000000..fc47c93
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D12/DataAbstract_Scripting_D12.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.bpl
new file mode 100644
index 0000000..f189d9c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.dcp
new file mode 100644
index 0000000..ea67b34
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_ADODriver_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.bpl
new file mode 100644
index 0000000..54cb8b7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.dcp
new file mode 100644
index 0000000..1f3e2ba
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_BDEDriver_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.bpl
new file mode 100644
index 0000000..7ebdfd9
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.dcp
new file mode 100644
index 0000000..2c41152
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Core_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.bpl
new file mode 100644
index 0000000..142efda
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.dcp
new file mode 100644
index 0000000..5921fe1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_DBXDriver_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.bpl
new file mode 100644
index 0000000..4b3a4de
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.dcp
new file mode 100644
index 0000000..cc75c28
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IBXDriver_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.bpl
new file mode 100644
index 0000000..c1365df
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.dcp
new file mode 100644
index 0000000..8461b40
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_IDE_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.bpl
new file mode 100644
index 0000000..25565ed
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.dcp
new file mode 100644
index 0000000..eed5297
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_SQLiteDriver_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.bpl
new file mode 100644
index 0000000..eafdd66
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.dcp
new file mode 100644
index 0000000..ecd6af8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D6/DataAbstract_Scripting_D6.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.bpl
new file mode 100644
index 0000000..3e62ccc
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.dcp
new file mode 100644
index 0000000..ca16b29
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_ADODriver_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.bpl
new file mode 100644
index 0000000..796ce19
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.dcp
new file mode 100644
index 0000000..10fcb3e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_BDEDriver_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.bpl
new file mode 100644
index 0000000..bfc1bd5
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.dcp
new file mode 100644
index 0000000..bde11d7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Core_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.bpl
new file mode 100644
index 0000000..e520856
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.dcp
new file mode 100644
index 0000000..520e3c7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_DBXDriver_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.bpl
new file mode 100644
index 0000000..8d647f6
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.dcp
new file mode 100644
index 0000000..d9f4cbd
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IBXDriver_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.bpl
new file mode 100644
index 0000000..8511d8d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.dcp
new file mode 100644
index 0000000..a256099
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_IDE_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.bpl
new file mode 100644
index 0000000..ebfba77
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.dcp
new file mode 100644
index 0000000..8382616
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_SQLiteDriver_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.bpl b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.bpl
new file mode 100644
index 0000000..817da8e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.bpl differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.dcp b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.dcp
new file mode 100644
index 0000000..c5d4325
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Dcu/D7/DataAbstract_Scripting_D7.dcp differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.dfm b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.dfm
new file mode 100644
index 0000000..75ebc6a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.dfm
@@ -0,0 +1,5 @@
+object BaseLoginService: TBaseLoginService
+ OldCreateOrder = True
+ Height = 300
+ Width = 300
+end
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.lfm b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.lfm
new file mode 100644
index 0000000..75ebc6a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.lfm
@@ -0,0 +1,5 @@
+object BaseLoginService: TBaseLoginService
+ OldCreateOrder = True
+ Height = 300
+ Width = 300
+end
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.pas
new file mode 100644
index 0000000..d20b514
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BaseLoginService_Impl.pas
@@ -0,0 +1,50 @@
+unit BaseLoginService_Impl;
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library }
+{ }
+{ compiler: Delphi 6 and up, Kylix 3 and up }
+{ platform: Win32, Linux }
+{ }
+{ (c)opyright RemObjects Software. all rights reserved. }
+{ }
+{ Using this code requires a valid license of the Data Abstract }
+{ which can be obtained at http://www.remobjects.com. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, SysUtils,
+ {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
+ {Required:} uRORemoteDataModule,
+ {Generated:} DataAbstract4_Intf;
+
+type
+ { TBaseLoginService }
+ TBaseLoginService = class (TRORemoteDataModule, IBaseLoginService)
+ private
+ fOnLogout: TNotifyEvent;
+ protected
+ { IBaseLoginService methods }
+ procedure Logout;
+ published
+ property OnLogout: TNotifyEvent read fOnLogout write fOnLogout;
+ end;
+
+implementation
+
+uses
+ {Generated:} DataAbstract4_Invk;
+
+{ BaseLoginService }
+
+procedure TBaseLoginService.Logout;
+begin
+ if assigned(OnLogout) then
+ OnLogout(self);
+end;
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildDrivers.bpg b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildDrivers.bpg
new file mode 100644
index 0000000..32efc69
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildDrivers.bpg
@@ -0,0 +1,79 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = DAADODrv.dad DAAnyDACDrv.dad DABDEDrv.dad DADBISAM3Drv.dad DADBISAM4Drv.dad DADBXDrv.dad DADOADrv.dad DAFIBDrv.dad DAIBDACDrv.dad DAIBODrv.dad DAIBXDrv.dad DAMyDACDrv.dad DAMySQLDACDrv.dad DANexusDBDrv.dad DAODACDrv.dad \
+ DAPostgresDACDrv.dad DASDACDrv.dad DASQLiteDrv.dad DAZeosDrv.dad DAElevateDBDrv.dad
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+DAADODrv.dad: Drivers\DAADODrv.dpr
+ $(DCC)
+
+DAIBXDrv.dad: Drivers\DAIBXDrv.dpr
+ $(DCC)
+
+DADBXDrv.dad: Drivers\DADBXDrv.dpr
+ $(DCC)
+
+DAIBODrv.dad: Drivers\DAIBODrv.dpr
+ $(DCC)
+
+DAODACDrv.dad: Drivers\DAODACDrv.dpr
+ $(DCC)
+
+DASDACDrv.dad: Drivers\DASDACDrv.dpr
+ $(DCC)
+
+DADBISAM3Drv.dad: Drivers\DADBISAM3Drv.dpr
+ $(DCC)
+
+DADBISAM4Drv.dad: Drivers\DADBISAM4Drv.dpr
+ $(DCC)
+
+DAMyDACDrv.dad: Drivers\DAMyDACDrv.dpr
+ $(DCC)
+
+DAIBDACDrv.dad: Drivers\DAIBDACDrv.dpr
+ $(DCC)
+
+DAFIBDrv.dad: Drivers\DAFIBDrv.dpr
+ $(DCC)
+
+DAPostgresDACDrv.dad: Drivers\DAPostgresDACDrv.dpr
+ $(DCC)
+
+DAMySQLDACDrv.dad: Drivers\DAMySQLDACDrv.dpr
+ $(DCC)
+
+DABDEDrv.dad: Drivers\DABDEDrv.dpr
+ $(DCC)
+
+DANexusDBDrv.dad: Drivers\DANexusDBDrv.dpr
+ $(DCC)
+
+DAZeosDrv.dad: Drivers\DAZeosDrv.dpr
+ $(DCC)
+
+DASQLiteDrv.dad: Drivers\DASQLiteDrv.dpr
+ $(DCC)
+
+DAAnyDACDrv.dad: Drivers\DAAnyDACDrv.dpr
+ $(DCC)
+
+DAElevateDBDrv.dad: Drivers\DAElevateDBDrv.dpr
+ $(DCC)
+
+DADOADrv.dad: Drivers\DADOADrv.dpr
+ $(DCC)
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D10.bdsgroup b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D10.bdsgroup
new file mode 100644
index 0000000..5809593
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D10.bdsgroup
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_Core_D10.bdsproj
+ DataAbstract_Scripting_D10.bdsproj
+ IDE\DataAbstract_IDE_D10.bdsproj
+ Drivers\DataAbstract_ADODriver_D10.bdsproj
+ Drivers\DataAbstract_AnyDACDriver_D10.bdsproj
+ Drivers\DataAbstract_BDEDriver_D10.bdsproj
+ Drivers\DataAbstract_DBISAMDriver_D10.bdsproj
+ Drivers\DataAbstract_DBXDriver_D10.bdsproj
+ Drivers\DataAbstract_DOADriver_D10.bdsproj
+ Drivers\DataAbstract_ElevateDBDriver_D10.bdsproj
+ Drivers\DataAbstract_FIBDriver_D10.bdsproj
+ Drivers\DataAbstract_IBDACDriver_D10.bdsproj
+ Drivers\DataAbstract_IBODriver_D10.bdsproj
+ Drivers\DataAbstract_IBXDriver_D10.bdsproj
+ Drivers\DataAbstract_MyDACDriver_D10.bdsproj
+ Drivers\DataAbstract_MySQLDACDriver_D10.bdsproj
+ Drivers\DataAbstract_NexusDBDriver_D10.bdsproj
+ Drivers\DataAbstract_ODACDriver_D10.bdsproj
+ Drivers\DataAbstract_PostgresDACDriver_D10.bdsproj
+ Drivers\DataAbstract_SDACDriver_D10.bdsproj
+ Drivers\DataAbstract_SQLiteDriver_D10.bdsproj
+ Drivers\DataAbstract_ZeosDriver_D10.bdsproj
+ DataAbstract_Core_D10.bpl DataAbstract_Scripting_D10.bpl DataAbstract_IDE_D10.bpl DataAbstract_ADODriver_D10.bpl DataAbstract_AnyDACDriver_D10.bpl DataAbstract_BDEDriver_D10.bpl DataAbstract_DBISAMDriver_D10.bpl DataAbstract_DBXDriver_D10.bpl DataAbstract_DOADriver_D10.bpl DataAbstract_ElevateDBDriver_D10.bpl DataAbstract_FIBDriver_D10.bpl DataAbstract_IBDACDriver_D10.bpl DataAbstract_IBODriver_D10.bpl DataAbstract_IBXDriver_D10.bpl DataAbstract_MyDACDriver_D10.bpl DataAbstract_MySQLDACDriver_D10.bpl DataAbstract_NexusDBDriver_D10.bpl DataAbstract_ODACDriver_D10.bpl DataAbstract_PostgresDACDriver_D10.bpl DataAbstract_SDACDriver_D10.bpl DataAbstract_SQLiteDriver_D10.bpl DataAbstract_ZeosDriver_D10.bpl
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D11.groupproj b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D11.groupproj
new file mode 100644
index 0000000..ce9f4d4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D11.groupproj
@@ -0,0 +1,258 @@
+
+
+ {788d1e93-6494-4009-bad7-5d620a616e08}
+
+
+
+
+
+
+
+ DataAbstract_Core_D11.dproj
+
+
+ DataAbstract_Core_D11.dproj
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default.Personality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D12.groupproj b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D12.groupproj
new file mode 100644
index 0000000..f9548c1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D12.groupproj
@@ -0,0 +1,308 @@
+
+
+ {788d1e93-6494-4009-bad7-5d620a616e08}
+
+
+
+
+
+
+
+
+
+ DataAbstract_Core_D12.dproj;..\..\Pascal Script for Delphi\Source\PascalScript_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+ DataAbstract_Core_D12.dproj
+
+
+
+ Default.Personality.12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D6.bpg b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D6.bpg
new file mode 100644
index 0000000..08ba77e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D6.bpg
@@ -0,0 +1,96 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = DataAbstract_Core_D6.bpl DataAbstract_Scripting_D6.bpl \
+ DataAbstract_IDE_D6.bpl DataAbstract_ADODriver_D6.bpl \
+ DataAbstract_AnyDACDriver_D6.bpl DataAbstract_BDEDriver_D6.bpl \
+ DataAbstract_DBISAMDriver_D6.bpl DataAbstract_DBXDriver_D6.bpl \
+ DataAbstract_DOADriver_D6.bpl DataAbstract_ElevateDBDriver_D6.bpl \
+ DataAbstract_FIBDriver_D6.bpl DataAbstract_IBDACDriver_D6.bpl \
+ DataAbstract_IBODriver_D6.bpl DataAbstract_IBXDriver_D6.bpl \
+ DataAbstract_MyDACDriver_D6.bpl DataAbstract_MySQLDACDriver_D6.bpl \
+ DataAbstract_NexusDBDriver_D6.bpl DataAbstract_ODACDriver_D6.bpl \
+ DataAbstract_PostgresDACDriver_D6.bpl DataAbstract_SDACDriver_D6.bpl \
+ DataAbstract_SQLiteDriver_D6.bpl DataAbstract_ZeosDriver_D6.bpl
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+DataAbstract_Core_D6.bpl: DataAbstract_Core_D6.dpk
+ $(DCC)
+
+DataAbstract_IDE_D6.bpl: IDE\DataAbstract_IDE_D6.dpk
+ $(DCC)
+
+DataAbstract_ADODriver_D6.bpl: Drivers\DataAbstract_ADODriver_D6.dpk
+ $(DCC)
+
+DataAbstract_IBXDriver_D6.bpl: Drivers\DataAbstract_IBXDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_SDACDriver_D6.bpl: Drivers\DataAbstract_SDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_DBXDriver_D6.bpl: Drivers\DataAbstract_DBXDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_ODACDriver_D6.bpl: Drivers\DataAbstract_ODACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_IBODriver_D6.bpl: Drivers\DataAbstract_IBODriver_D6.dpk
+ $(DCC)
+
+DataAbstract_DBISAMDriver_D6.bpl: Drivers\DataAbstract_DBISAMDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_MyDACDriver_D6.bpl: Drivers\DataAbstract_MyDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_Scripting_D6.bpl: DataAbstract_Scripting_D6.dpk
+ $(DCC)
+
+PascalScript_Core_D6.bpl: ..\..\Pascal Script for Delphi\Source\PascalScript_Core_D6.dpk
+ $(DCC)
+
+DataAbstract_FIBDriver_D6.bpl: Drivers\DataAbstract_FIBDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_IBDACDriver_D6.bpl: Drivers\DataAbstract_IBDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_BDEDriver_D6.bpl: Drivers\DataAbstract_BDEDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_ZeosDriver_D6.bpl: Drivers\DataAbstract_ZeosDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_MySQLDACDriver_D6.bpl: Drivers\DataAbstract_MySQLDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_NexusDBDriver_D6.bpl: Drivers\DataAbstract_NexusDBDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_SQLiteDriver_D6.bpl: Drivers\DataAbstract_SQLiteDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_PostgresDACDriver_D6.bpl: Drivers\DataAbstract_PostgresDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_ElevateDBDriver_D6.bpl: Drivers\DataAbstract_ElevateDBDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_AnyDACDriver_D6.bpl: Drivers\DataAbstract_AnyDACDriver_D6.dpk
+ $(DCC)
+
+DataAbstract_DOADriver_D6.bpl: Drivers\DataAbstract_DOADriver_D6.dpk
+ $(DCC)
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D7.bpg b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D7.bpg
new file mode 100644
index 0000000..e570bb1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_D7.bpg
@@ -0,0 +1,89 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = DataAbstract_Core_D7.bpl DataAbstract_Scripting_D7.bpl DataAbstract_IDE_D7.bpl DataAbstract_ADODriver_D7.bpl DataAbstract_AnyDACDriver_D7.bpl DataAbstract_BDEDriver_D7.bpl DataAbstract_DBISAMDriver_D7.bpl DataAbstract_DBXDriver_D7.bpl \
+ DataAbstract_DOADriver_D7.bpl DataAbstract_ElevateDBDriver_D7.bpl DataAbstract_FIBDriver_D7.bpl DataAbstract_IBDACDriver_D7.bpl DataAbstract_IBODriver_D7.bpl DataAbstract_IBXDriver_D7.bpl DataAbstract_MyDACDriver_D7.bpl \
+ DataAbstract_MySQLDACDriver_D7.bpl DataAbstract_NexusDBDriver_D7.bpl DataAbstract_ODACDriver_D7.bpl DataAbstract_PostgresDACDriver_D7.bpl DataAbstract_SDACDriver_D7.bpl DataAbstract_SQLiteDriver_D7.bpl \
+ DataAbstract_ZeosDriver_D7.bpl
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+DataAbstract_Core_D7.bpl: DataAbstract_Core_D7.dpk
+ $(DCC)
+
+DataAbstract_IDE_D7.bpl: IDE\DataAbstract_IDE_D7.dpk
+ $(DCC)
+
+DataAbstract_ADODriver_D7.bpl: Drivers\DataAbstract_ADODriver_D7.dpk
+ $(DCC)
+
+DataAbstract_IBXDriver_D7.bpl: Drivers\DataAbstract_IBXDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_SDACDriver_D7.bpl: Drivers\DataAbstract_SDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_DBXDriver_D7.bpl: Drivers\DataAbstract_DBXDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_ODACDriver_D7.bpl: Drivers\DataAbstract_ODACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_IBODriver_D7.bpl: Drivers\DataAbstract_IBODriver_D7.dpk
+ $(DCC)
+
+DataAbstract_DBISAMDriver_D7.bpl: Drivers\DataAbstract_DBISAMDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_MyDACDriver_D7.bpl: Drivers\DataAbstract_MyDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_Scripting_D7.bpl: DataAbstract_Scripting_D7.dpk
+ $(DCC)
+
+PascalScript_Core_D7.bpl: ..\..\Pascal Script for Delphi\Source\PascalScript_Core_D7.dpk
+ $(DCC)
+
+DataAbstract_FIBDriver_D7.bpl: Drivers\DataAbstract_FIBDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_IBDACDriver_D7.bpl: Drivers\DataAbstract_IBDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_BDEDriver_D7.bpl: Drivers\DataAbstract_BDEDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_ZeosDriver_D7.bpl: Drivers\DataAbstract_ZeosDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_MySQLDACDriver_D7.bpl: Drivers\DataAbstract_MySQLDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_NexusDBDriver_D7.bpl: Drivers\DataAbstract_NexusDBDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_SQLiteDriver_D7.bpl: Drivers\DataAbstract_SQLiteDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_PostgresDACDriver_D7.bpl: Drivers\DataAbstract_PostgresDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_ElevateDBDriver_D7.bpl: Drivers\DataAbstract_ElevateDBDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_AnyDACDriver_D7.bpl: Drivers\DataAbstract_AnyDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_DOADriver_D7.bpl: Drivers\DataAbstract_DOADriver_D7.dpk
+ $(DCC)
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_K3.bpg b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_K3.bpg
new file mode 100644
index 0000000..6649fe0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/BuildPackages_K3.bpg
@@ -0,0 +1,23 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = DataAbstract_Core_K3.bpl bplDataAbstract_IDE_K3.so
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+DataAbstract_Core_K3.bpl: DataAbstract_Core_K3.dpk
+ $(DCC)
+
+bplDataAbstract_IDE_K3.so: IDE/DataAbstract_IDE_K3.dpk
+ $(DCC)
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DALoginService_Impl.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DALoginService_Impl.pas
new file mode 100644
index 0000000..ce2614d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DALoginService_Impl.pas
@@ -0,0 +1,210 @@
+unit DALoginService_Impl {$IFNDEF FPC}deprecated{$ENDIF};
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ This is where you are supposed to code the implementation of your objects. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, SysUtils,
+ {RemObjects:} uROClientIntf, uROTypes, uROServer, uROSessions,
+ {Ancestor Implementation:} DARemoteService_Impl,
+ {Generated:} DataAbstract3_Intf;
+
+const
+ def_UserID = 'UserID';
+ def_Password = 'UserPassword';
+ def_SessionID = 'SessionID';
+
+type
+ TDALoginService = class;
+
+ TDAOnLoginEvent = procedure(Sender : TDALoginService; var aUserID, aPassword : AnsiString) of object;
+ TDAOnLoginSuccessEvent = procedure(Sender : TDALoginService; aLoginInfo : TDALoginInfo) of object;
+ TDAOnLoginFailureEvent = procedure(Sender : TDALoginService; const aUserID, aPassword : AnsiString) of object;
+ TDAOnLogoutEvent = procedure(Sender : TDALoginService; const aSessionID : TGUID) of object;
+
+ { TDALoginService }
+ TDALoginService = class(TDARemoteService, IDALoginService)
+ private
+ fLoginDataset: string;
+ fLogoutCommand: string;
+ fOnLogin: TDAOnLoginEvent;
+ fOnLoginFailure: TDAOnLoginFailureEvent;
+ fOnLoginSuccess: TDAOnLoginSuccessEvent;
+ fOnLogout: TDAOnLogoutEvent;
+ fParamNameUserID: string;
+ fParamNamePassword: string;
+ fParamNameSessionID: string;
+ function GetParamNamePasswordStored: Boolean;
+ function GetParamNameUserIDStored: Boolean;
+ function GetParamNameSessionIDStored: Boolean;
+ procedure SetParamNameSessionID(const Value: string);
+
+ protected
+ procedure SetLoginDataset(const Value: string); virtual;
+ procedure SetLogoutCommand(const Value: string); virtual;
+
+ procedure SetParamNamePassword(const Value: string); virtual;
+ procedure SetParamNameUserID(const Value: string); virtual;
+
+ function DoLogin(const UserID, Password: AnsiString; out LoginInfo: TDALoginInfo): boolean; virtual;
+ procedure DoLogout(const SessionID : TGUID); virtual;
+
+ { IDALoginService methods }
+ function Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean;
+ procedure Logout;
+
+ public
+ constructor Create(aOwner : TComponent); override;
+
+ published
+ property LoginDataset : string read fLoginDataset write SetLoginDataset;
+ property LogoutCommand : string read fLogoutCommand write SetLogoutCommand;
+
+ property ParamNameUserID : string read fParamNameUserID write SetParamNameUserID stored GetParamNameUserIDStored;
+ property ParamNamePassword : string read fParamNamePassword write SetParamNamePassword stored GetParamNamePasswordStored;
+ property ParamNameSessionID : string read fParamNameSessionID write SetParamNameSessionID stored GetParamNameSessionIDStored;
+
+ property OnLogin: TDAOnLoginEvent read fOnLogin write fOnLogin;
+ property OnLoginSuccess: TDAOnLoginSuccessEvent read fOnLoginSuccess write fOnLoginSuccess;
+ property OnLoginFailure: TDAOnLoginFailureEvent read fOnLoginFailure write fOnLoginFailure;
+ property OnLogout: TDAOnLogoutEvent read fOnLogout write fOnLogout;
+ end deprecated;
+
+implementation
+
+uses
+ {Generated:} uDAInterfaces, uROClasses;
+
+{ DALoginService }
+constructor TDALoginService.Create(aOwner: TComponent);
+begin
+ fParamNameUserID := def_UserID;
+ fParamNamePassword := def_Password;
+ fParamNameSessionID := def_SessionID;
+
+ inherited;
+end;
+
+procedure TDALoginService.SetLoginDataset(const Value: string);
+begin
+ fLoginDataset := Value;
+end;
+
+procedure TDALoginService.SetLogoutCommand(const Value: string);
+begin
+ fLogoutCommand := Value;
+end;
+
+function TDALoginService.Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean;
+var tempuserid, temppassword : AnsiString;
+begin
+ tempuserid := UserID;
+ temppassword := Password;
+
+ CheckObjects(Connection, ServiceSchema, NIL, TRUE, TRUE, FALSE);
+
+ if Assigned(fOnLogin) then fOnLogin(Self, tempuserid, temppassword);
+
+ result := DoLogin(tempuserid, temppassword, LoginInfo);
+
+ if not result then begin
+ DestroySession;
+ if Assigned(fOnLoginFailure) then fOnLoginFailure(Self, tempuserid, temppassword);
+ end
+ else begin
+ if Assigned(fOnLoginSuccess) then fOnLoginSuccess(Self, LoginInfo);
+ end;
+end;
+
+procedure TDALoginService.Logout;
+begin
+ if (LogoutCommand<>'')
+ then CheckObjects(Connection, ServiceSchema, NIL, TRUE, TRUE, FALSE);
+
+ if Assigned(fOnLogout)
+ then fOnLogout(Self, Session.SessionID);
+
+ DoLogout(Session.SessionID);
+
+ DestroySession;
+end;
+
+function TDALoginService.DoLogin(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): boolean;
+var ds : IDADataset;
+ i : integer;
+begin
+ result := FALSE;
+ LoginInfo := NIL;
+
+ ds := ServiceSchema.NewDataset(Connection, LoginDataset, [ParamNameUserID, ParamNamePassword], [UserID, Password]);
+ if ds.EOF then Exit;
+
+ LoginInfo := TDALoginInfo.Create;
+ LoginInfo.UserID := UserID;
+ LoginInfo.SessionID := {$IFDEF UNICODE}WideStringToAnsiString{$ENDIF}(GUIDToString(Session.SessionID));
+
+ for i := 0 to (ds.FieldCount-1) do begin
+ Session[ds.Fields[i].Name] := ds.Fields[i].Value;
+ LoginInfo.Attributes.Add({$IFDEF UNICODE}UTF8Encode{$ENDIF}(ds.Fields[i].Name+'='+ds.Fields[i].AsString));
+ end;
+
+ result := TRUE;
+end;
+
+procedure TDALoginService.DoLogout(const SessionID: TGUID);
+var cmd : IDASQLCommand;
+begin
+ if (LogoutCommand<>'')
+ then cmd := ServiceSchema.NewCommand(Connection, LogoutCommand, [ParamNameSessionID], [GUIDToString(SessionID)]);
+
+ if Not Connection.InTransaction then
+ Connection.BeginTransaction;
+ try
+ cmd.Execute;
+ Connection.CommitTransaction;
+ except
+ Connection.RollbackTransaction;
+ raise;
+ end;
+
+end;
+
+procedure TDALoginService.SetParamNamePassword(const Value: string);
+begin
+ fParamNamePassword := Value;
+end;
+
+procedure TDALoginService.SetParamNameUserID(const Value: string);
+begin
+ fParamNameUserID := Value;
+end;
+
+function TDALoginService.GetParamNamePasswordStored: Boolean;
+begin
+ result := fParamNamePassword<>def_Password
+end;
+
+function TDALoginService.GetParamNameUserIDStored: Boolean;
+begin
+ result := fParamNameUserID<>def_UserID
+end;
+
+function TDALoginService.GetParamNameSessionIDStored: Boolean;
+begin
+ result := fParamNameSessionID<>def_SessionID
+end;
+
+procedure TDALoginService.SetParamNameSessionID(const Value: string);
+begin
+ fParamNameSessionID := Value;
+end;
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DARemoteService_Impl.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DARemoteService_Impl.pas
new file mode 100644
index 0000000..1e9ef22
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DARemoteService_Impl.pas
@@ -0,0 +1,1095 @@
+unit DARemoteService_Impl {$IFNDEF FPC}deprecated{$ENDIF};
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library }
+{ }
+{ compiler: Delphi 6 and up, Kylix 3 and up }
+{ platform: Win32, Linux }
+{ }
+{ (c)opyright RemObjects Software. all rights reserved. }
+{ }
+{ Using this code requires a valid license of the Data Abstract }
+{ which can be obtained at http://www.remobjects.com. }
+{----------------------------------------------------------------------------}
+
+{----------------------------------------------------------------------------}
+{ LEGACY NOTE: }
+{ As of v4.0, future development of this unit has been discontinued, and }
+{ new featureswill be impleentd in DataAbstractService_Impl.pas, instead. }
+{ }
+{ When applying fixes to this unit, please propagate them to the new unit }
+{ as well, where needed. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ Classes, SysUtils,
+ {$IFDEF DELPHI5}Forms, {$ENDIF}
+ uRORemoteDataModule, uROClientIntf, uROSessions, uROClasses, uROTypes,
+ uDAClasses, uDAInterfaces, uDADataTable, uDABusinessProcessor, uDACache, uDADelta, uDADataStreamer,
+ uDADataTableReferenceCollection, DataAbstract3_Intf;
+
+type
+ { Types }
+ TDARemoteService = class;
+
+ { Events }
+ TDAAcquireConnectionEvent = procedure(Sender: TDARemoteService; var ConnectionName: string) of object;
+ TDAConnectionAcquiredEvent = procedure(Sender: TDARemoteService; const ConnectionName: string; const AcquiredConnection: IDAConnection) of object;
+ TDAAcquireConnectionFailureEvent = procedure(Sender: TDARemoteService; const ConnectionName: string; Error: Exception) of object;
+ TDAGetDatasetSchemaEvent = procedure(const Dataset: IDADataset) of object;
+ TDAGetDatasetDataEvent = procedure(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer) of object;
+ TDAOnBusinessProcessorAutoCreated = procedure(Sender : TRORemoteDataModule; BusinessProcessor : TDABusinessProcessor) of object;
+ TDABeforeExecuteCommandEvent = procedure(Sender : TDARemoteService; const aCommand : IDASQLCommand) of object;
+ TDAAfterExecuteCommandEvent = procedure(Sender : TDARemoteService; const aCommand : IDASQLCommand; RowsAffacted : integer) of object;
+ TDAConnectionReleasedEvent = procedure(Sender: TDARemoteService; const ConnectionName: string) of object;
+ TDAGetSchemaAsXMLEvent = procedure(Sender: TDARemoteService; var SchemaXML : AnsiString) of object;
+
+ TDAProcessDeltasEvent = procedure(Sender : TDARemoteService; DeltaStructs : TDADeltaStructList) of object;
+ TDAProcessDeltasErrorEvent = procedure(Sender : TDARemoteService; DeltaStructs : TDADeltaStructList; Error : Exception; var DoRaise : boolean) of object;
+
+ TDAOnGetCachedDataset = procedure(Sender : TDARemoteService; const aDatasetName : string; aDataStream : TStream) of object;
+
+ TDAGetDatasetDataValidationEvent = procedure(Sender: TDARemoteService;
+ const aConnection: IDAConnection;
+ const aDatasetName: string;
+ const aParamNames: array of string;
+ const aParamValues : array of variant;
+ aSchema: TDASchema;
+ var Allowed : boolean) of object;
+
+ TDAUpdateDataTransactionEvent = procedure(Sender: TDARemoteService; var UseDefaultTransactionLogic: Boolean) of object;
+
+ TDAAfterProcessTransactionAction = (pptaNone, pptaRollback, pptaCommit);
+
+ { TDARemoteService }
+ TDARemoteServiceOption = (rsoProcessDeltasWithoutUpdateRules);
+ TDARemoteServiceOptions = set of TDARemoteServiceOption;
+
+ TDARemoteService = class(TRORemoteDataModule, IDARemoteService)
+ private
+ fServiceSchema: TDASchema;
+
+ fStreamedAcquireConnection,
+ fAcquireConnection: boolean;
+ fConnectionName: string;
+ fOnBeforeAcquireConnection: TDAAcquireConnectionEvent;
+ fOnAfterAcquireConnection: TDAConnectionAcquiredEvent;
+ fOnAfterReleaseConnection: TDAConnectionReleasedEvent;
+ fOnBeforeReleaseConnection: TDAConnectionAcquiredEvent;
+ fConnection: IDAConnection;
+ fServiceAdapter: TDADataStreamer;
+ fOnAcquireConnectionFailure: TDAAcquireConnectionFailureEvent;
+
+ fOnAfterGetDatasetData: TDAGetDatasetDataEvent;
+ fOnBeforeGetDatasetData: TDAGetDatasetDataEvent;
+ fOnAfterGetDatasetSchema: TDAGetDatasetSchemaEvent;
+ fOnBeforeGetDatasetSchema: TDAGetDatasetSchemaEvent;
+ fAutoCreateBusinessProcessors: boolean;
+ fAllowExecuteSQLCommand: boolean;
+ fAllowWhereSQL: boolean;
+ fOnBusinessProcessorAutoCreated: TDAOnBusinessProcessorAutoCreated;
+ fOnBeforeExecuteCommand: TDABeforeExecuteCommandEvent;
+ fOnAfterExecuteCommand: TDAAfterExecuteCommandEvent;
+ fOnGetSchemaAsXML: TDAGetSchemaAsXMLEvent;
+
+ fGetDatasetDataValidation: TDAGetDatasetDataValidationEvent;
+
+ fAfterProcessTransactionAction: TDAAfterProcessTransactionAction;
+
+ fOnUpdateDataBeginTransaction : TDAUpdateDataTransactionEvent;
+ fOnUpdateDataCommitTransaction : TDAUpdateDataTransactionEvent;
+ fOnUpdateDataRollBackTransaction : TDAUpdateDataTransactionEvent;
+
+ fOnBeforeProcessDeltas : TDAProcessDeltasEvent;
+ fOnAfterProcessDeltas: TDAProcessDeltasEvent;
+ fOnProcessDeltasError: TDAProcessDeltasErrorEvent;
+ fExportedDataTables: TDADataTableReferenceCollection;
+ fCache: TDACache;
+ fCacheElements: TDACacheElementCollection;
+ fOnGetCachedDataset: TDAOnGetCachedDataset;
+ fOptions: TDARemoteServiceOptions;
+
+ function TriggerTransactionEvent(aEvent: TDAUpdateDataTransactionEvent): Boolean;
+ procedure SetServiceSchema(const Value: TDASchema);
+ procedure SetAcquireConnection(const Value: boolean);
+ procedure SetConnectionName(const Value: string);
+ procedure SetServiceAdapter(const Value: TDADataAdapter);
+ function UnpackDeltas(const DeltaStream: Binary; DeltaStructList : TDADeltaStructList): integer;
+ procedure SetExportedDataTables(const Value: TDADataTableReferenceCollection);
+ procedure MergeDatatablesToSchema(aList : TList);
+ procedure SetCache(const Value: TDACache);
+ procedure SetCacheElements(const Value: TDACacheElementCollection);
+ procedure SetConnection(const aValue: IDAConnection);
+
+ protected
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ procedure Loaded; override;
+
+ procedure CheckObjects(const aConnection: IDAConnection;
+ aSchema: TDASchema; anAdapter: TDADataAdapter;
+ CheckConnection : boolean = TRUE;
+ CheckSchema : boolean = TRUE;
+ CheckAdapter : boolean = TRUE);
+
+ { Internal }
+ procedure DoOnActivate(aClientID: TGUID; const aMessage: IROMessage); override;
+ procedure DoOnDeactivate(aClientID: TGUID); override;
+
+ function DoGetDatasetData(const Stream: TStream;
+ const aConnection: IDAConnection;
+ const aDatasetName: ansistring;
+ const aParamNames: array of string;
+ const aParamValues : array of variant;
+ const UserFilter : ansistring;
+ aSchema: TDASchema;
+ anAdapter: TDADataAdapter;
+ someOptions: TDAWriteOptions;
+ MaxRecords: integer): integer; virtual;
+
+ function CreateParamString(const ParamNames: array of string; const ParamValues: array of Variant): string;
+
+ function GetDatasetData(const DatasetName: ansistring;
+ const ParamNames: array of string;
+ const ParamValues: array of Variant;
+ const IncludeSchema: Boolean = FALSE;
+ const MaxRecords: Integer = -1): Binary; overload;
+ function GetDatasetData(const DatasetName: Ansistring;
+ const IncludeSchema: Boolean = FALSE;
+ const MaxRecords: Integer = -1): Binary; overload;
+
+ { IDARemoteService }
+ function GetDatasetSchema(const aDatasetName: AnsiString): Binary; virtual;
+ function GetDatasetData(const DatasetName: AnsiString;
+ const Params: AnsiString;
+ const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary; overload; virtual;
+ function UpdateData(const Delta: Binary): Binary; virtual;
+ function ExecuteSQLCommand(const SQL: AnsiString): Integer; virtual;
+ function GetSchemaAsXML: AnsiString; virtual;
+ function GetDatasetDataEx(const DatasetName: AnsiString;
+ const Params: TDADatasetParamArray;
+ const UserFilter: AnsiString;
+ const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary;
+ function GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): TROBinaryMemoryStream;
+ function GetDatasetScripts(const DatasetNames: AnsiString): AnsiString;
+ function ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray): Integer;
+
+ public
+ constructor Create(aOwner : TComponent); override;
+ destructor Destroy; override;
+
+ property Connection: IDAConnection read fConnection write SetConnection;
+
+ published
+ property AcquireConnection: boolean read fAcquireConnection write SetAcquireConnection default false;
+ property ConnectionName: string read fConnectionName write SetConnectionName;
+
+ property ServiceSchema: TDASchema read fServiceSchema write SetServiceSchema;
+ property ServiceAdapter: TDADataAdapter read fServiceAdapter write SetServiceAdapter;
+
+ property AutoCreateBusinessProcessors : boolean read fAutoCreateBusinessProcessors write fAutoCreateBusinessProcessors default true;
+ property AllowExecuteSQLCommand: boolean read fAllowExecuteSQLCommand write fAllowExecuteSQLCommand default false;
+ property AllowWhereSQL: boolean read fAllowWhereSQL write fAllowWhereSQL default true;
+
+ property OnAfterProcessTransactionAction: TDAAfterProcessTransactionAction read fAfterProcessTransactionAction write fAfterProcessTransactionAction default pptaCommit;
+
+ property OnBeforeAcquireConnection: TDAAcquireConnectionEvent read fOnBeforeAcquireConnection write fOnBeforeAcquireConnection;
+ property OnAfterAcquireConnection: TDAConnectionAcquiredEvent read fOnAfterAcquireConnection write fOnAfterAcquireConnection;
+ property OnBeforeReleaseConnection: TDAConnectionAcquiredEvent read fOnBeforeReleaseConnection write fOnBeforeReleaseConnection;
+ property OnAfterReleaseConnection: TDAConnectionReleasedEvent read fOnAfterReleaseConnection write fOnAfterReleaseConnection;
+ property OnAcquireConnectionFailure: TDAAcquireConnectionFailureEvent read fOnAcquireConnectionFailure write fOnAcquireConnectionFailure;
+
+ property OnBeforeProcessDeltas : TDAProcessDeltasEvent read fOnBeforeProcessDeltas write fOnBeforeProcessDeltas;
+ property OnAfterProcessDeltas: TDAProcessDeltasEvent read fOnAfterProcessDeltas write fOnAfterProcessDeltas;
+ property OnProcessDeltasError: TDAProcessDeltasErrorEvent read fOnProcessDeltasError write fOnProcessDeltasError;
+
+ property OnBeforeGetDatasetSchema: TDAGetDatasetSchemaEvent read fOnBeforeGetDatasetSchema write fOnBeforeGetDatasetSchema;
+ property OnBeforeGetDatasetData: TDAGetDatasetDataEvent read fOnBeforeGetDatasetData write fOnBeforeGetDatasetData;
+ property OnAfterGetDatasetSchema: TDAGetDatasetSchemaEvent read fOnAfterGetDatasetSchema write fOnAfterGetDatasetSchema;
+ property OnAfterGetDatasetData: TDAGetDatasetDataEvent read fOnAfterGetDatasetData write fOnAfterGetDatasetData;
+ property OnBusinessProcessorAutoCreated: TDAOnBusinessProcessorAutoCreated read fOnBusinessProcessorAutoCreated write fOnBusinessProcessorAutoCreated;
+ property OnBeforeExecuteCommand: TDABeforeExecuteCommandEvent read fOnBeforeExecuteCommand write fOnBeforeExecuteCommand;
+ property OnAfterExecuteCommand: TDAAfterExecuteCommandEvent read fOnAfterExecuteCommand write fOnAfterExecuteCommand;
+ property OnGetSchemaAsXMLEvent: TDAGetSchemaAsXMLEvent read fOnGetSchemaAsXML write fOnGetSchemaAsXML;
+ property GetDatasetDataValidation: TDAGetDatasetDataValidationEvent read fGetDatasetDataValidation write fGetDatasetDataValidation;
+
+ property OnUpdateDataBeginTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataBeginTransaction write fOnUpdateDataBeginTransaction;
+ property OnUpdateDataCommitTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataCommitTransaction write fOnUpdateDataCommitTransaction;
+ property OnUpdateDataRollBackTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataRollBackTransaction write fOnUpdateDataRollBackTransaction;
+
+ property ExportedDataTables : TDADataTableReferenceCollection read fExportedDataTables write SetExportedDataTables;
+ property Cache : TDACache read fCache write SetCache;
+ property CacheElements : TDACacheElementCollection read fCacheElements write SetCacheElements;
+ property OnGetCachedDataset : TDAOnGetCachedDataset read fOnGetCachedDataset write fOnGetCachedDataset;
+
+ property Options : TDARemoteServiceOptions read fOptions write fOptions;
+ end deprecated;
+
+implementation
+
+uses
+ Contnrs, Variants, TypInfo,
+ uROClient,
+ uDARes, uDAExceptions;
+
+{ TDARemoteService }
+
+constructor TDARemoteService.Create(aOwner: TComponent);
+begin
+ fExportedDataTables := TDADataTableReferenceCollection.Create(Self);
+ fCacheElements := TDACacheElementCollection.Create();
+ fOptions := [rsoProcessDeltasWithoutUpdateRules];
+ fAllowWhereSQL := true;
+
+ inherited;
+
+ fAutoCreateBusinessProcessors := TRUE;
+end;
+
+destructor TDARemoteService.Destroy;
+begin
+ inherited;
+
+ FreeAndNIL(fExportedDataTables);
+ FreeAndNIL(fCacheElements);
+end;
+
+procedure TDARemoteService.DoOnActivate(aClientID: TGUID; const aMessage: IROMessage);
+var
+ connname: string;
+begin
+ inherited;
+
+ if (csDesigning in ComponentState) then Exit;
+
+ if AcquireConnection then try
+ // Acquires a DA connection automatically
+ if (fServiceSchema = nil) or (fServiceSchema.ConnectionManager = nil) then RaiseError(err_DARDMInvalidSchema);
+
+ connname := fConnectionName;
+ if Assigned(fOnBeforeAcquireConnection) then fOnBeforeAcquireConnection(Self, connname);
+
+ fConnection := ServiceSchema.ConnectionManager.NewConnection(connname);
+ if Supports(fConnection, IDAHETConnection) then
+ raise Exception.Create(err_HETConnectionNotSupportedInV3);
+
+ if Assigned(fOnAfterAcquireConnection) then fOnAfterAcquireConnection(Self, connname, fConnection);
+ except
+ on E: Exception do begin
+ if Assigned(fOnAcquireConnectionFailure) then fOnAcquireConnectionFailure(Self, connname, E);
+ raise;
+ end;
+ end;
+end;
+
+procedure TDARemoteService.DoOnDeactivate(aClientID: TGUID);
+var connname : string;
+begin
+ inherited;
+
+ if (csDesigning in ComponentState) then Exit;
+
+ if assigned(fConnection) then begin
+ connname := fConnection.Name;
+
+ if Assigned(fOnBeforeReleaseConnection)
+ then fOnBeforeReleaseConnection(Self, connname, fConnection);
+
+ fConnection := nil;
+
+ if Assigned(fOnAfterReleaseConnection)
+ then fOnAfterReleaseConnection(Self, connname);
+ end;
+end;
+
+procedure TDARemoteService.Loaded;
+begin
+ inherited;
+
+ AcquireConnection := fStreamedAcquireConnection;
+end;
+
+procedure TDARemoteService.CheckObjects(const aConnection: IDAConnection;
+ aSchema: TDASchema; anAdapter: TDADataAdapter;
+ CheckConnection : boolean = TRUE;
+ CheckSchema : boolean = TRUE;
+ CheckAdapter : boolean = TRUE);
+begin
+ if CheckConnection and not Assigned(aConnection) then RaiseError(err_DARDMConnectionIsNotAssigned);
+ if CheckSchema and not Assigned(aSchema) then RaiseError(err_DARDMInvalidSchema);
+ if CheckAdapter and not Assigned(anAdapter) then RaiseError(err_DARDMUnassignedAdapter);
+end;
+
+procedure TDARemoteService.Notification(AComponent: TComponent;
+ Operation: TOperation);
+var ref : TDADataTableReference;
+begin
+ inherited;
+
+ if (Operation = opRemove) then begin
+ if (aComponent = fServiceSchema) then ServiceSchema := nil
+ else if (AComponent=fCache) then fCache := NIL
+ else if (aComponent = fServiceAdapter) then ServiceAdapter := nil
+ else if (AComponent is TDADataTable) and (fExportedDataTables<>NIL) then begin
+ ref := fExportedDataTables.FindByDataTable(TDADataTable(aComponent));
+ if (ref<>NIL) then ref.DataTable := NIL;
+ end;
+ end
+
+ else if (Operation = opInsert) then begin
+ if not (csLoading in ComponentState) and (AComponent is TDASchema) and (fServiceSchema = nil) and (AComponent.Owner = Self) then ServiceSchema := TDASchema(aComponent);
+ end;
+end;
+
+procedure TDARemoteService.SetAcquireConnection(const Value: boolean);
+begin
+ if (csLoading in ComponentState) then
+ fStreamedAcquireConnection := Value
+ else begin
+ if Value then begin
+ if (fServiceSchema = nil) then raise Exception.Create(err_DARDMInvalidSchema);
+ end;
+
+ fAcquireConnection := Value;
+ end;
+end;
+
+procedure TDARemoteService.SetConnection(const aValue: IDAConnection);
+begin
+ if assigned(fConnection) and Supports(fConnection, IDAHETConnection) then
+ raise Exception.Create(err_HETConnectionNotSupportedInV3);
+ fConnection := aValue;
+end;
+
+procedure TDARemoteService.SetConnectionName(const Value: string);
+begin
+ fConnectionName := Trim(Value);
+ if (fConnectionName = '') then fAcquireConnection := FALSE;
+end;
+
+procedure TDARemoteService.SetServiceSchema(const Value: TDASchema);
+begin
+ fServiceSchema := Value;
+
+ if (fServiceSchema <> nil) then
+ fServiceSchema.FreeNotification(Self)
+ else
+ fAcquireConnection := FALSE;
+end;
+
+procedure TDARemoteService.SetServiceAdapter(const Value: TDADataAdapter);
+begin
+ fServiceAdapter := Value;
+ if (fServiceAdapter <> nil) then fServiceAdapter.FreeNotification(Self);
+end;
+
+function TDARemoteService.TriggerTransactionEvent(aEvent: TDAUpdateDataTransactionEvent): Boolean;
+begin
+ result := true;
+ if assigned(aEvent) then aEvent(self, result);
+end;
+
+function TDARemoteService.DoGetDatasetData(
+ const Stream: TStream;
+ const aConnection: IDAConnection;
+ const aDatasetName: ansistring;
+ const aParamNames: array of string;
+ const aParamValues : array of variant;
+ const UserFilter : ansistring;
+ aSchema: TDASchema;
+ anAdapter: TDADataAdapter;
+ someOptions: TDAWriteOptions;
+ MaxRecords: integer): integer;
+
+var
+ ds: IDADataset;
+ i, cnt: integer;
+ paramname: string;
+ paramvalue: variant;
+ inclrows,
+ inclschema: boolean;
+ allow : boolean;
+ ref : TDADataTableReference;
+ cachedentry : IDACacheEntry;
+ cacheelement : TDACacheElement;
+ lDatasetName: string;
+ lUserFilter: string;
+begin
+ // Misc
+ lDatasetName:= Utf8ToString(aDatasetName);
+ luserFilter := Utf8ToString(UserFilter);
+ cachedentry := NIL;
+
+ inclschema := (woSchema in someOptions);
+ inclrows := (woRows in someOptions);
+ ref := NIL;
+
+ if (fCache<>NIL) then begin
+ // If the service is connected to a cache, then it searches the cache for this dataset
+ cachedentry := fCache.Get(Self.Name+'.'+lDatasetName);
+ end;
+
+ if (cachedentry=NIL) then begin
+ // New: searches for a datatable reference that matches the request, if any are present
+ // This allows the user to return in memory datasets or other custom data
+ if (fExportedDataTables.Count>0) then begin
+ ref := fExportedDataTables.FindByName(lDatasetName); // Already checks the datatable is not NIL
+ if (ref<>NIL) then begin
+ ds := ref.Dataset;
+ end;
+ end;
+ end;
+
+ // Checks for connection, schema and adapter to be assigned since it will need to query the DB in this case
+ if (ref=NIL) and (cachedentry=NIL)
+ then CheckObjects(aConnection, aSchema, anAdapter);
+
+ // Security check, common to every case
+ allow := TRUE;
+ if Assigned(fGetDatasetDataValidation)
+ then fGetDatasetDataValidation(Self, aConnection, lDatasetName, aParamNames, aParamValues, aSchema, allow);
+
+ if not allow
+ then raise EDADatasetNotAccessible.CreateFmt(err_DatasetNotAccessible, [aDatasetName]);
+
+ // Returns the actual data. Cached and non-cached data follow two different paths (some events are not triggered in the
+ // case of cached data, since we don't have an actual IDADataset to reference)
+
+ if (cachedentry<>NIL) then begin
+ if Assigned(fOnGetCachedDataset) then fOnGetCachedDataset(Self, lDatasetName, cachedentry.Data);
+
+ result := cachedentry.RecordCount;
+ Stream.CopyFrom(cachedentry.Data, 0);
+ end
+ else begin
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ try
+
+ // Gets a reference to the dataset if it couldn't find a datatable to match the request...
+ if (ref=NIL) then
+ ds := aSchema.NewDataset(aConnection, lDatasetName);
+
+ // Fills the parameters (if any are specified)
+ cnt := Length(aParamNames);
+ if (cnt>0) then begin
+ for i := 0 to (cnt-1) do begin
+ paramname := aParamNames[i];
+ paramvalue := aParamValues[i];
+
+ ds.ParamByName(paramname).Value := paramvalue;
+ end;
+ end;
+
+ // Applies the UserFilter, if any specified
+ if (Trim(lUserFilter)<>'') then begin
+ if not AllowWhereSQL then
+ raise Exception.Create('Passing of clear text WHERE clauses has been disabled (GetData)');
+ ds.Where.AddText(lUserFilter);
+ end;
+
+ // ...and writes the data fireing the right events
+ if inclschema and Assigned(fOnBeforeGetDatasetSchema) then fOnBeforeGetDatasetSchema(ds);
+ if inclrows and Assigned(fOnBeforeGetDatasetData) then fOnBeforeGetDatasetData(ds, inclschema, MaxRecords);
+
+ result := anAdapter.WriteDataset(stream, ds, someOptions, MaxRecords);
+
+ if inclschema and Assigned(fOnAfterGetDatasetSchema) then fOnAfterGetDatasetSchema(ds);
+ if inclrows and Assigned(fOnAfterGetDatasetData) then fOnAfterGetDatasetData(ds, inclschema, MaxRecords);
+
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+
+ // Checks if it needs to stored it in the cache
+ if (fCache<>NIL) then begin
+ cacheelement := fCacheElements.FindByDatasetName(lDatasetName);
+ if (cacheelement=NIL) or not cacheelement.Enabled then Exit;
+
+ fCache.Store(Self.Name+'.'+lDatasetName, stream, TRUE, result, cacheelement.MaxReads, cacheelement.Duration);
+ end;
+
+ end;
+end;
+
+function TDARemoteService.GetDatasetSchema(
+ const aDatasetName: AnsiString): Binary;
+var tempds : IDADataset;
+ schemads : TDADataset;
+ dummyrefs : TObjectList;
+ lDatasetName: string;
+begin
+ dummyrefs := NIL;
+
+ CheckObjects(Connection, ServiceSchema, ServiceAdapter);
+
+ result := Binary.Create;
+ try
+ try
+ // New: merges the data tables references by the service
+ if (fExportedDataTables.Count>0) then begin
+ dummyrefs := TObjectList.Create;
+ MergeDatatablesToSchema(dummyrefs);
+ end;
+
+ lDatasetName := Utf8ToString(aDatasetName);
+ // Improved this method: now it is not necessary to have statements associated to a dataset
+ // thus allowing for the definition of in memory datasets inside a schema
+ schemads := ServiceSchema.Datasets.DatasetByName(lDatasetName);
+ tempds := Connection.NewDataset('', lDatasetName);
+
+ // Copies the schema
+ tempds.Fields.AssignFieldCollection(schemads.Fields);
+ tempds.Params.AssignParamCollection(schemads.Params);
+
+ ServiceAdapter.WriteDataset(result, tempds, [woSchema], 0);
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+ finally
+ dummyrefs.Free;
+ end;
+end;
+
+type
+ TBizProcessorReference = class(TObject)
+ private
+ end;
+
+function TDARemoteService.UnpackDeltas(const DeltaStream: Binary;
+ DeltaStructList : TDADeltaStructList): integer;
+var x, i: integer;
+ deltaname: string;
+ bizproc: TDABusinessProcessor;
+ details : TDADatasetRelationshipList;
+ found: boolean;
+ struct : TDADeltaStruct;
+begin
+ result := 0;
+ with ServiceAdapter do begin
+
+ // Reads the deltas.
+ Initialize(DeltaStream, aiReadFromBeginning);
+ try
+ if (DeltaCount = 0) then Exit;
+
+ for i := 0 to (DeltaCount - 1) do begin
+ deltaname := DeltaNames[i];
+ found := FALSE;
+
+ { Tries to locate a user-defined business processor }
+ for x := 0 to (Self.ComponentCount - 1) do
+ if (Self.Components[x] is TDABusinessProcessor) then begin
+ bizproc := TDABusinessProcessor(Self.Components[x]);
+ if SameText(bizproc.ReferencedDataset, deltaname) then begin
+ struct := DeltaStructList.Add(NewDelta(deltaname), bizproc);
+ ReadDelta(deltaname, struct.Delta);
+
+ found := TRUE;
+ Break;
+ end;
+ end;
+
+ { Either creates one or aborts raising an exception }
+ if not found then begin
+ if not AutoCreateBusinessProcessors then RaiseError(err_DARDMCannotFindProxessorForDelta, [deltaname]);
+
+ bizproc := TDABusinessProcessor.Create(Self);
+ bizproc.ReferencedDataset := deltaname;
+ bizproc.Schema := ServiceSchema;
+
+ struct := DeltaStructList.Add(NewDelta(deltaname), bizproc);
+ ReadDelta(deltaname, struct.Delta);
+
+ if Assigned(fOnBusinessProcessorAutoCreated)
+ then fOnBusinessProcessorAutoCreated(Self, bizproc);
+ end;
+
+ Inc(result);
+ end;
+
+ if (result=0) then Exit; // Cannot process anything!
+
+ { Sets the master/detail relationships }
+ with ServiceSchema do
+ if (RelationShips.Count>0) then begin
+ details := TDADatasetRelationshipList.Create;
+ try
+
+ for i := 0 to DeltaStructList.Count-1 do begin
+ RelationShips.GetDetails(DeltaStructList[i].BusinessProcessor.ReferencedDataset, details);
+ if (details.Count=0) then Continue;
+
+ { Prepares an array with the references to the detail deltas that will be used later on to adjust
+ autoincs, etc. }
+ for x := 0 to details.Count-1 do begin
+ struct := DeltaStructList.FindStruct(details[x].DetailDatasetName);
+ if (struct<>NIL) then begin
+ DeltaStructList[i].DetailDeltas.Add(struct.Delta);
+ DeltaStructList[i].RelationShips.Add(details[x]);
+ end;
+ end;
+ end;
+ finally
+ details.Free;
+ end;
+
+ end;
+ finally
+ Finalize;
+ end;
+ end;
+end;
+
+function TDARemoteService.UpdateData(const Delta: Binary): Binary;
+var
+ deltastructs : TDADeltaStructList;
+ struct : TDADeltaStruct;
+ k, i: integer;
+ doraise : boolean;
+ processeddeltas : TStringList;
+
+ function ProceedDefaultTransactionLogic(aEvent: TDAUpdateDataTransactionEvent): Boolean;
+ begin
+ Result := True;
+ if Assigned(aEvent)
+ then aEvent(Self, Result);
+ end;
+
+ procedure FlushCache(const aDatasetName : string);
+ var element : TDACacheElement;
+ begin
+ if (fCache=NIL) or (fCacheElements.Count=0) then Exit;
+
+ element := fCacheElements.FindByDatasetName(aDatasetName);
+ if (element=NIL) then Exit;
+
+ if (ceoFlushOnUpdate in element.Options)
+ then fCache.Flush(Self.Name+'.'+aDatasetName);
+ end;
+
+begin
+ result := NIL;
+ processeddeltas := NIL;
+
+ CheckObjects(Connection, ServiceSchema, ServiceAdapter);
+
+ deltastructs := TDADeltaStructList.Create;
+
+ with ServiceAdapter do try
+ try
+ // Reads the deltas. The order in which the are put in the stream indicates
+ // the order in which updates are being made
+ if not (UnpackDeltas(Delta, deltastructs)>0) then Exit;
+
+ // Applies the updates
+ if ProceedDefaultTransactionLogic(fOnUpdateDataBeginTransaction)
+ then Connection.BeginTransaction;
+
+ if Assigned(fOnBeforeProcessDeltas) then fOnBeforeProcessDeltas(Self, deltastructs);
+
+ if (ServiceSchema.UpdateRules.Count=0) and (rsoProcessDeltasWithoutUpdateRules in Options) then begin
+ // Processes them in order, from first to last delta sent
+ for i := 0 to deltastructs.Count-1 do begin
+ // Flushes the cache for the given dataset
+ FlushCache(deltastructs[i].Delta.LogicalName);
+
+ deltastructs[i].BusinessProcessor.ProcessDelta(Connection, deltastructs[i].Delta, AllChanges);
+ end;
+ end
+ else try
+ processeddeltas := TStringList.Create;
+
+ for i := 0 to (ServiceSchema.UpdateRules.Count-1) do begin
+ // Processes them in the order defined in the schema
+ struct := deltastructs.FindStruct(ServiceSchema.UpdateRules[i].DatasetName);
+ if (struct<>NIL) then begin
+ // Adds the dataset name to the list of processed deltas. Those that don't have update rules will be processed later
+ processeddeltas.Add(struct.Delta.LogicalName);
+
+ // Flushes the cache for the given dataset
+ FlushCache(struct.Delta.LogicalName);
+
+ // Processes the delta
+ struct.BusinessProcessor.ProcessDelta(Connection, struct.Delta, ServiceSchema.UpdateRules[i].ChangeTypes);
+
+
+ if (ctInsert in ServiceSchema.UpdateRules[i].ChangeTypes) then begin
+ for k := 0 to (struct.DetailDeltas.Count-1) do
+ struct.BusinessProcessor.SynchronizeAutoIncs(struct.Delta, struct.DetailDeltas[k], struct.RelationShips[k]);
+ end;
+ end;
+ end;
+
+ // Processes the deltas for which update rules were not defined
+ if (rsoProcessDeltasWithoutUpdateRules in Options) then begin
+ for i := 0 to deltastructs.Count-1 do begin
+ // Skips if already processed
+ if (processeddeltas.IndexOf(deltastructs[i].Delta.LogicalName)>=0) then Continue;
+
+ // Flushes the cache for the given dataset
+ FlushCache(deltastructs[i].Delta.LogicalName);
+
+ deltastructs[i].BusinessProcessor.ProcessDelta(Connection, deltastructs[i].Delta, AllChanges);
+ end;
+ end;
+
+ finally
+ processeddeltas.Free;
+ end;
+
+ if Assigned(fOnAfterProcessDeltas) then fOnAfterProcessDeltas(Self, deltastructs);
+
+ if Connection.InTransaction and ProceedDefaultTransactionLogic(fOnUpdateDataCommitTransaction)
+ then Connection.CommitTransaction;
+
+ // Prepares the response
+ result := Binary.Create;
+ ServiceAdapter.Initialize(result, aiWrite);
+ try
+ for i := 0 to deltastructs.Count-1 do
+ WriteDelta(deltastructs[i].Delta);
+ finally
+ ServiceAdapter.Finalize;
+ end;
+
+ except
+ on E:Exception do begin
+ doraise := TRUE;
+ try
+ if Assigned(fOnProcessDeltasError)
+ then fOnProcessDeltasError(Self, deltastructs, E, doraise);
+ finally
+ if Connection.InTransaction and ProceedDefaultTransactionLogic(fOnUpdateDataRollBackTransaction)
+ then Connection.RollbackTransaction;
+ end;
+ if doraise then raise;
+ end;
+ end;
+ finally
+ deltastructs.Free;
+ end;
+end;
+
+function TDARemoteService.ExecuteSQLCommand(const SQL: AnsiString): Integer;
+begin
+ if not AllowExecuteSQLCommand then
+ RaiseError(err_ExecuteSQLCommandNotAllowed);
+
+ CheckObjects(Connection, ServiceSchema, NIL, TRUE, TRUE, FALSE);
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ try
+ result := Connection.NewCommand(Utf8ToString(SQL), stSQL).Execute;
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+end;
+
+function TDARemoteService.GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString;
+ const IncludeSchema: Boolean; const MaxRecords: Integer): Binary;
+var
+ parnames: array of string;
+ parvalues: array of Variant;
+ options: TDAWriteOptions;
+ pars: TStringList;
+ i : integer;
+begin
+ pars := TStringList.Create;
+ result := Binary.Create;
+ try
+ try
+ pars.Text := Utf8ToString(Params);
+ SetLength(parnames, pars.Count);
+ SetLength(parvalues, pars.Count);
+ for i := 0 to (pars.Count-1) do begin
+ parnames[i] := pars.Names[i];
+ parvalues[i] := pars.Values[pars.Names[i]];
+ end;
+
+ if IncludeSchema
+ then options := [woSchema, woRows]
+ else options := [woRows];
+
+ DoGetDatasetData(result, Connection, DatasetName, parnames, parvalues, '', ServiceSchema, ServiceAdapter, options, MaxRecords);
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+ finally
+ pars.Free;
+ end;
+end;
+
+function TDARemoteService.CreateParamString(
+ const ParamNames: array of string;
+ const ParamValues: array of Variant): string;
+var
+ i: integer;
+begin
+ result := '';
+
+ for i := 0 to High(ParamNames) do
+ result := result + ParamNames[i] + '=' + VarToStr(ParamValues[i]) + #13;
+end;
+
+function TDARemoteService.GetDatasetData(const DatasetName: ansistring;
+ const ParamNames: array of string; const ParamValues: array of Variant;
+ const IncludeSchema: Boolean; const MaxRecords: Integer): Binary;
+var
+ options: TDAWriteOptions;
+begin
+ {result := GetDatasetData(DatasetName, CreateParamString(ParamNames, ParamValues), IncludeSchema, MaxRecords);}
+ result := Binary.Create;
+ try
+ if IncludeSchema
+ then options := [woSchema, woRows]
+ else options := [woRows];
+ DoGetDatasetData(result, Connection, DatasetName, ParamNames, ParamValues, '', ServiceSchema, ServiceAdapter, options, MaxRecords);
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+end;
+
+function TDARemoteService.GetDatasetData(const DatasetName: ansistring;
+ const IncludeSchema: Boolean = FALSE;
+ const MaxRecords: Integer = -1): Binary;
+begin
+ result := GetDatasetData(DatasetName, '', IncludeSchema, MaxRecords);
+end;
+
+procedure TDARemoteService.MergeDatatablesToSchema(aList : TList);
+var i : integer;
+ ref : TDADataset;
+ dt : IDADataset;
+begin
+ if (fExportedDataTables.Count>0) then begin
+ for i := 0 to fExportedDataTables.Count-1 do
+ if fExportedDataTables[i].IsValidReference {and fExportedDataTables[i].ExportAsPartOfSchema} then begin
+ dt := fExportedDataTables[i].Dataset;
+
+ ref := ServiceSchema.Datasets.Add;
+ ref.Name := dt.LogicalName;
+ ref.Fields.AssignFieldCollection(dt.Fields);
+ ref.Params.AssignParamCollection(dt.Params);
+
+ aList.Add(ref);
+ end;
+ end;
+end;
+
+function TDARemoteService.GetSchemaAsXML: AnsiString;
+var xml : TStringStream;
+ dummyrefs : TObjectList;
+begin
+ result := '';
+ dummyrefs := NIL;
+
+ if not Assigned(ServiceSchema) then Exit;
+
+ try
+ // New: merges the data tables references by the service
+ if (fExportedDataTables.Count>0) then begin
+ dummyrefs := TObjectList.Create;
+ MergeDatatablesToSchema(dummyrefs);
+ end;
+
+ // Returns the schema
+ xml := TStringStream.Create('');
+ try
+ ServiceSchema.SaveToStream(xml);
+
+ result := UTF8Encode(xml.DataString);
+
+ if Assigned(fOnGetSchemaAsXML)
+ then fOnGetSchemaAsXML(Self, result);
+ finally
+ xml.Free;
+ end;
+
+ finally
+ dummyrefs.Free; // automatically removes the datatables from the schema again
+ end;
+end;
+
+function TDARemoteService.GetDatasetDataEx(const DatasetName: AnsiString;
+ const Params: TDADatasetParamArray;
+ const UserFilter: AnsiString;
+ const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary;
+var parnames : array of string;
+ parvalues : array of variant;
+ i : integer;
+ options : TDAWriteOptions;
+begin
+ result := Binary.Create;
+ try
+ { Prepares the parameter arrays}
+ if (Params<>NIL) then begin
+ SetLength(parnames, Params.Count);
+ SetLength(parvalues, Params.Count);
+ for i := 0 to (Params.Count-1) do begin
+ parnames[i] := Utf8ToString(Params[i].Name);
+ parvalues[i] := Params[i].Value;
+ end;
+ end
+ else begin
+ SetLength(parnames, 0);
+ SetLength(parvalues, 0);
+ end;
+
+ { Other options }
+ if IncludeSchema
+ then options := [woSchema, woRows]
+ else options := [woRows];
+
+ { Reads the data }
+ DoGetDatasetData(result, Connection, DatasetName, parnames, parvalues, UserFilter, ServiceSchema, ServiceAdapter, options, MaxRecords);
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+end;
+
+function TDARemoteService.GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): TROBinaryMemoryStream;
+var i : integer;
+ ds : IDADataset;
+ parnames : array of string;
+ parvalues : array of variant;
+ x : integer;
+ opt : TDAWriteOptions;
+ allow : boolean;
+ lDatasetName: string;
+begin
+ result := NIL;
+ if (DatasetRequestInfoArray=NIL) or (DatasetRequestInfoArray.Count=0) then exit;
+ result := Binary.Create;
+ try
+ ServiceAdapter.Initialize(result, aiWrite);
+ try
+
+ for i := 0 to (DatasetRequestInfoArray.Count-1) do begin
+ with DatasetRequestInfoArray[i] do begin
+ SetLength(parnames, Params.Count);
+ SetLength(parvalues, Params.Count);
+ for x := 0 to (Params.Count-1) do begin
+ parnames[x] := Utf8ToString(Params[x].Name);
+ parvalues[x] := Params[x].Value;
+ end;
+ lDatasetName := Utf8ToString(DatasetName);
+ opt := [woRows];
+ if DatasetRequestInfoArray[i].IncludeSchema then opt := opt+[woSchema];
+
+ // Security check
+ allow := TRUE;
+ if Assigned(fGetDatasetDataValidation)
+ then fGetDatasetDataValidation(Self, Connection, lDatasetName, parnames, parvalues, ServiceSchema, allow);
+
+ if not allow
+ then raise EDADatasetNotAccessible.CreateFmt(err_DatasetNotAccessible, [lDatasetName]);
+
+ // Proceeds
+ ds := ServiceSchema.NewDataset(Connection, lDatasetName, parnames, parvalues, TRUE);
+
+ ServiceAdapter.WriteDataset(ds, opt, MaxRecords);
+ end;
+ end;
+ finally
+ ServiceAdapter.Finalize();
+ end;
+ except
+ FreeAndNIL(result);
+ raise
+ end;
+end;
+
+function TDARemoteService.GetDatasetScripts(const DatasetNames: AnsiString): AnsiString;
+var names : TStringList;
+ i : integer;
+ ds : TDADataset;
+begin
+ result := '';
+ names := TStringList.Create;
+ try
+ CheckObjects(NIL, fServiceSchema, NIL, FALSE, TRUE, FALSE);
+ names.CommaText := Utf8ToString(DatasetNames);
+
+ result := '';
+
+ for i := 0 to (names.Count-1) do begin
+ ds := fServiceSchema.Datasets.DatasetByName(names[i]);
+
+ result := result+ {$IFDEF UNICODE}UTF8Encode{$ENDIF}(
+ Format('<%s Language="%s">%s>', [
+ names[i],
+ GetEnumName(TypeInfo(TROSEScriptLanguage), Ord(ds.BusinessRulesClient.ScriptLanguage)),
+ {$IFNDEF UNICODE}UTF8Encode{$ENDIF}(ds.BusinessRulesClient.Script),
+ names[i]]));
+ end;
+
+ result := result+AnsiString('');
+ finally
+ FreeAndNIL(names);
+ end;
+end;
+
+function TDARemoteService.ExecuteSQLCommandEx(const CommandName: AnsiString;
+ const Params: TDADatasetParamArray): Integer;
+var cmd : IDASQLCommand;
+ i : integer;
+begin
+ if not AllowExecuteSQLCommand then
+ RaiseError(err_ExecuteSQLCommandNotAllowed);
+
+ CheckObjects(Connection, ServiceSchema, NIL, TRUE, TRUE, FALSE);
+
+ cmd := ServiceSchema.NewCommand(Connection, Utf8ToString(CommandName));
+ for i := 0 to (Params.Count-1) do
+ cmd.ParamByName(Utf8ToString(Params[i].Name)).Value := Params[i].Value;
+
+ if Assigned(fOnBeforeExecuteCommand)
+ then fOnBeforeExecuteCommand(Self, cmd);
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ try
+ result := cmd.Execute;
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+
+ if Assigned(fOnAfterExecuteCommand)
+ then fOnAfterExecuteCommand(Self, cmd, result);
+end;
+
+procedure TDARemoteService.SetExportedDataTables(const Value: TDADataTableReferenceCollection);
+begin
+ fExportedDataTables.Assign(Value);
+end;
+
+procedure TDARemoteService.SetCache(const Value: TDACache);
+begin
+ fCache := Value;
+ if (fCache<>NIL)
+ then fCache.FreeNotification(Self);
+end;
+
+procedure TDARemoteService.SetCacheElements(
+ const Value: TDACacheElementCollection);
+begin
+ fCacheElements.Assign(Value);
+end;
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Create Session Table.sql b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Create Session Table.sql
new file mode 100644
index 0000000..54f5e49
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Create Session Table.sql
@@ -0,0 +1,15 @@
+CREATE TABLE [dbo].[Sessions] (
+ [SessionID] [char] (38) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
+ [Created] [datetime] NULL ,
+ [LastAccessed] [datetime] NULL ,
+ [Data] [image] NULL
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[Sessions] WITH NOCHECK ADD
+ CONSTRAINT [PK_Sessions] PRIMARY KEY CLUSTERED
+ (
+ [SessionID]
+ ) ON [PRIMARY]
+GO
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daConnections b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daConnections
new file mode 100644
index 0000000..625165d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daConnections
@@ -0,0 +1 @@
+ADO?AuxDriver=SQLOLEDB.1;Server=localhost;Database=Northwind;UserID=sa;Password=;TrueMSSQL010pbWaitTrue6001
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daSchema b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daSchema
new file mode 100644
index 0000000..32f7e13
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DBSessionManager Default Schema.daSchema
@@ -0,0 +1,30 @@
+
+Insert_SessiondabtUnknowndatStringSessionIDdaptInput38dabtUnknowndatDateTimeCreateddaptInput0dabtUnknowndatDateTimeLastAccesseddaptInput0dabtUnknowndatBlobDatadaptInput0MSSQLINSERT
+ INTO Sessions
+ (SessionID, Created, LastAccessed, Data)
+ VALUES
+ (:SessionID, :Created, :LastAccessed, :Data)stSQLUpdate_SessiondabtUnknowndatDateTimeLastAccesseddaptInput0dabtUnknowndatBlobDatadaptInput0dabtUnknowndatStringSessionIDdaptInput38MSSQLUPDATE
+ Sessions
+ SET
+ LastAccessed = :LastAccessed,
+ Data = :Data
+ WHERE
+ SessionID = :SessionID
+stSQLClearSessionsdabtUnknowndatDateTimeLastAccesseddaptInput0MSSQLDELETE
+ FROM
+ Sessions
+ WHERE
+ LastAccessed < :LastAccessedstSQLDelete_SessiondabtUnknowndatStringSessionIDdaptInput38MSSQLDELETE
+ FROM
+ Sessions
+ WHERE
+ SessionID = :SessionIDstSQLTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringSessionID0FalseTrueFalseFalseSessionIDFalseFalseFalse38TrueGetAllSessionIDsDatasetSessionIDSessionIDMSSQLSelect SessionID from Sessions
+stSQLTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatIntegerCOLUMN10FalseTrueFalseFalseCOLUMN1FalseFalseFalse0TrueGetSessionCountCOLUMN1COLUMN1MSSQLSELECT
+ COUNT(*)
+ FROM
+ SessionsstSQLTrueTruerslPascalScriptrslPascalScripttaLeftJustifydabtUnknownFalsedatStringSessionID0TrueTrueFalseFalseSessionIDFalseFalseFalse38TruetaLeftJustifydabtUnknownFalsedatDateTimeCreated0FalseTrueFalseFalseCreatedFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatDateTimeLastAccessed0FalseTrueFalseFalseLastAccessedFalseFalseFalse0TruetaLeftJustifydabtUnknownFalsedatBlobData0FalseTrueFalseFalseDataFalseFalseFalse0TrueGetSessiondabtUnknowndatStringSessionIDdaptInput38SessionIDSessionIDCreatedCreatedLastAccessedLastAccessedDataDataMSSQLSELECT
+ SessionID, Created, LastAccessed, Data
+ FROM
+ Sessions
+ WHERE
+ SessionID = :SessionIDstSQL0
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract.inc b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract.inc
new file mode 100644
index 0000000..cc135ba
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract.inc
@@ -0,0 +1,33 @@
+{$INCLUDE eDefines.inc}
+{.$DEFINE STORERECID}
+{$DEFINE DataAbstract5}
+
+{$IFDEF FPC}
+ {$IFNDEF RO_FPC_MODE_SET}
+ {$MODE DELPHI}
+ {$DEFINE RO_FPC_MODE_SET}
+ {$ENDIF}
+ {$DEFINE FPC_SAFECALL_BUG}
+ {$DEFINE DA_WideMemoSupport} // support for ftWideMemo
+ {$DEFINE DA_FixedWideCharSupport} // support for ftWideFixedChar
+ {.$DEFINE ftFMTBCD_Support} // support for FMTBCD
+{$ENDIF}
+
+{$IFDEF DELPHI6UP}
+ {$DEFINE ftFMTBCD_Support} // support for FMTBCD
+{$ENDIF}
+
+
+{$IFDEF DELPHI10UP}
+ {$DEFINE DA_WideMemoSupport} // support for ftWideMemo
+ {$DEFINE DA_FixedWideCharSupport} // support for ftWideFixedChar
+{$ENDIF}
+
+// always use std methods for TDataset-compatible drivers
+{$DEFINE Drivers_CompatibilityMode}
+
+// bug in Delphi2009 with AsAnsiString
+{.$DEFINE DELPHI2009_USE_AsAnsiString_for_TStringField}
+
+//
+{.$DEFINE USE_LOCALDATAADAPTER}
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3.RODL b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3.RODL
new file mode 100644
index 0000000..d9d82c1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3.RODL
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Async.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Async.pas
new file mode 100644
index 0000000..e823d65
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Async.pas
@@ -0,0 +1,367 @@
+unit DataAbstract3_Async;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROXMLIntf, uROClasses, uROTypes, uROClientIntf, uROAsync,
+ {Project:} DataAbstract3_Intf;
+
+type
+ { IDARemoteService_Async }
+ IDARemoteService_Async = interface(IROAsyncInterface)
+ ['{F8299772-C66E-4D77-A4F9-78400662810B}']
+ procedure Invoke_GetDatasetSchema(const aDatasetName: AnsiString);
+ procedure Invoke_GetDatasetScripts(const DatasetNames: AnsiString);
+ procedure Invoke_GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+ procedure Invoke_GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+ procedure Invoke_UpdateData(const Delta: Binary);
+ procedure Invoke_ExecuteSQLCommand(const SQL: AnsiString);
+ procedure Invoke_GetSchemaAsXML;
+ procedure Invoke_GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray);
+ procedure Invoke_ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray);
+ function Retrieve_GetDatasetSchema: Binary;
+ function Retrieve_GetDatasetScripts: AnsiString;
+ function Retrieve_GetDatasetData: Binary;
+ function Retrieve_GetDatasetDataEx: Binary;
+ function Retrieve_UpdateData: Binary;
+ function Retrieve_ExecuteSQLCommand: Integer;
+ function Retrieve_GetSchemaAsXML: AnsiString;
+ function Retrieve_GetMultipleDatasets: Binary;
+ function Retrieve_ExecuteSQLCommandEx: Integer;
+ end;
+
+ { IDALoginService_Async }
+ IDALoginService_Async = interface(IDARemoteService_Async)
+ ['{5A9C9231-1C8D-4436-88E1-07AD23D7BEF3}']
+ procedure Invoke_Login(const UserID: AnsiString; const Password: AnsiString);
+ procedure Invoke_Logout;
+ function Retrieve_Login(out LoginInfo: TDALoginInfo): Boolean;
+ end;
+
+ { CoDARemoteService_Async }
+ CoDARemoteService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDARemoteService_Async;
+ end;
+
+ { CoDALoginService_Async }
+ CoDALoginService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDALoginService_Async;
+ end;
+
+ { TDARemoteService_AsyncProxy }
+ TDARemoteService_AsyncProxy = class(TROAsyncProxy, IDARemoteService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetDatasetSchema(const aDatasetName: AnsiString);
+ procedure Invoke_GetDatasetScripts(const DatasetNames: AnsiString);
+ procedure Invoke_GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+ procedure Invoke_GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+ procedure Invoke_UpdateData(const Delta: Binary);
+ procedure Invoke_ExecuteSQLCommand(const SQL: AnsiString);
+ procedure Invoke_GetSchemaAsXML;
+ procedure Invoke_GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray);
+ procedure Invoke_ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray);
+ function Retrieve_GetDatasetSchema: Binary;
+ function Retrieve_GetDatasetScripts: AnsiString;
+ function Retrieve_GetDatasetData: Binary;
+ function Retrieve_GetDatasetDataEx: Binary;
+ function Retrieve_UpdateData: Binary;
+ function Retrieve_ExecuteSQLCommand: Integer;
+ function Retrieve_GetSchemaAsXML: AnsiString;
+ function Retrieve_GetMultipleDatasets: Binary;
+ function Retrieve_ExecuteSQLCommandEx: Integer;
+ end;
+
+ { TDALoginService_AsyncProxy }
+ TDALoginService_AsyncProxy = class(TDARemoteService_AsyncProxy, IDALoginService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_Login(const UserID: AnsiString; const Password: AnsiString);
+ procedure Invoke_Logout;
+ function Retrieve_Login(out LoginInfo: TDALoginInfo): Boolean;
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils;
+
+{ CoDARemoteService }
+
+class function CoDARemoteService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDARemoteService_Async;
+begin
+ result := TDARemoteService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDARemoteService_AsyncProxy }
+
+function TDARemoteService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'DARemoteService';
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetDatasetSchema(const aDatasetName: AnsiString);
+begin
+ __AssertProxyNotBusy('GetDatasetSchema');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetSchema');
+ __Message.Write('aDatasetName', TypeInfo(AnsiString), aDatasetName, []);
+ __DispatchAsyncRequest('GetDatasetSchema',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetDatasetSchema: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetDatasetSchema');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetDatasetScripts(const DatasetNames: AnsiString);
+begin
+ __AssertProxyNotBusy('GetDatasetScripts');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetScripts');
+ __Message.Write('DatasetNames', TypeInfo(AnsiString), DatasetNames, []);
+ __DispatchAsyncRequest('GetDatasetScripts',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetDatasetScripts: AnsiString;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetDatasetScripts');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(AnsiString), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+begin
+ __AssertProxyNotBusy('GetDatasetData');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetData');
+ __Message.Write('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Write('Params', TypeInfo(AnsiString), Params, []);
+ __Message.Write('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+ __DispatchAsyncRequest('GetDatasetData',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetDatasetData: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetDatasetData');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer);
+begin
+ __AssertProxyNotBusy('GetDatasetDataEx');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetDataEx');
+ __Message.Write('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Write('Params', TypeInfo(TDADatasetParamArray), Params, []);
+ __Message.Write('UserFilter', TypeInfo(AnsiString), UserFilter, []);
+ __Message.Write('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+ __DispatchAsyncRequest('GetDatasetDataEx',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetDatasetDataEx: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetDatasetDataEx');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_UpdateData(const Delta: Binary);
+begin
+ __AssertProxyNotBusy('UpdateData');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'UpdateData');
+ __Message.Write('Delta', TypeInfo(Binary), Delta, []);
+ __DispatchAsyncRequest('UpdateData',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_UpdateData: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('UpdateData');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_ExecuteSQLCommand(const SQL: AnsiString);
+begin
+ __AssertProxyNotBusy('ExecuteSQLCommand');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'ExecuteSQLCommand');
+ __Message.Write('SQL', TypeInfo(AnsiString), SQL, []);
+ __DispatchAsyncRequest('ExecuteSQLCommand',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_ExecuteSQLCommand: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('ExecuteSQLCommand');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetSchemaAsXML;
+begin
+ __AssertProxyNotBusy('GetSchemaAsXML');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetSchemaAsXML');
+ __DispatchAsyncRequest('GetSchemaAsXML',__Message);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetSchemaAsXML: AnsiString;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetSchemaAsXML');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(AnsiString), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray);
+begin
+ __AssertProxyNotBusy('GetMultipleDatasets');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetMultipleDatasets');
+ __Message.Write('DatasetRequestInfoArray', TypeInfo(TDADatasetRequestInfoArray), DatasetRequestInfoArray, []);
+ __DispatchAsyncRequest('GetMultipleDatasets',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_GetMultipleDatasets: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetMultipleDatasets');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDARemoteService_AsyncProxy.Invoke_ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray);
+begin
+ __AssertProxyNotBusy('ExecuteSQLCommandEx');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'ExecuteSQLCommandEx');
+ __Message.Write('CommandName', TypeInfo(AnsiString), CommandName, []);
+ __Message.Write('Params', TypeInfo(TDADatasetParamArray), Params, []);
+ __DispatchAsyncRequest('ExecuteSQLCommandEx',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDARemoteService_AsyncProxy.Retrieve_ExecuteSQLCommandEx: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('ExecuteSQLCommandEx');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+
+{ CoDALoginService }
+
+class function CoDALoginService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDALoginService_Async;
+begin
+ result := TDALoginService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDALoginService_AsyncProxy }
+
+function TDALoginService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'DALoginService';
+end;
+
+procedure TDALoginService_AsyncProxy.Invoke_Login(const UserID: AnsiString; const Password: AnsiString);
+begin
+ __AssertProxyNotBusy('Login');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'Login');
+ __Message.Write('UserID', TypeInfo(AnsiString), UserID, []);
+ __Message.Write('Password', TypeInfo(AnsiString), Password, []);
+ __DispatchAsyncRequest('Login',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDALoginService_AsyncProxy.Retrieve_Login(out LoginInfo: TDALoginInfo): Boolean;
+var __response:TStream;
+begin
+ LoginInfo := nil;
+ __response := __RetrieveAsyncResponse('Login');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('LoginInfo', TypeInfo(TDALoginInfo), LoginInfo, []);
+
+ __response.Free();
+end;
+
+procedure TDALoginService_AsyncProxy.Invoke_Logout;
+begin
+ __AssertProxyNotBusy('Logout');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'Logout');
+ __DispatchAsyncRequest('Logout',__Message, false);
+end;
+
+
+initialization
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Intf.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Intf.pas
new file mode 100644
index 0000000..c1f4134
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Intf.pas
@@ -0,0 +1,1367 @@
+unit DataAbstract3_Intf;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf;
+
+const
+ { Library ID }
+ LibraryUID = '{2966A4BF-569C-45AA-8F34-CF1E155FD77A}';
+ TargetNamespace = '';
+
+ { Service Interface ID's }
+ IDARemoteService_IID : TGUID = '{C532E842-0AA9-4253-A9BF-AFCF22885B97}';
+ IDALoginService_IID : TGUID = '{58550AA0-B64F-495A-B2F8-C981D4C39180}';
+
+ { Event ID's }
+
+type
+ { Forward declarations }
+ IDARemoteService = interface;
+ IDALoginService = interface;
+
+ TDADatasetParamArray = class;
+ TDADatasetRequestInfoArray = class;
+ TDAStringArray = class;
+
+ TDADatasetParam = class;
+ TDADatasetRequestInfo = class;
+ TDALoginInfo = class;
+
+
+ { TDADatasetParam }
+ TDADatasetParam = class(TROComplexType)
+ private
+ fName: AnsiString;
+ fValue: Variant;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property Name:AnsiString read fName write fName;
+ property Value:Variant read fValue write fValue;
+ end;
+
+ { TDADatasetParamCollection }
+ TDADatasetParamCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TDADatasetParam;
+ procedure SetItems(aIndex: integer; const Value: TDADatasetParam);
+ public
+ constructor Create; overload;
+ function Add: TDADatasetParam; reintroduce;
+ procedure SaveToArray(anArray: TDADatasetParamArray);
+ procedure LoadFromArray(anArray: TDADatasetParamArray);
+ property Items[Index: integer]:TDADatasetParam read GetItems write SetItems; default;
+ end;
+
+ { TDADatasetRequestInfo }
+ TDADatasetRequestInfo = class(TROComplexType)
+ private
+ fDatasetName: AnsiString;
+ fIncludeSchema: Boolean;
+ fMaxRecords: Integer;
+ fParams: TDADatasetParamArray;
+ function GetParams: TDADatasetParamArray;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property DatasetName:AnsiString read fDatasetName write fDatasetName;
+ property IncludeSchema:Boolean read fIncludeSchema write fIncludeSchema;
+ property MaxRecords:Integer read fMaxRecords write fMaxRecords;
+ property Params:TDADatasetParamArray read GetParams write fParams;
+ end;
+
+ { TDADatasetRequestInfoCollection }
+ TDADatasetRequestInfoCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TDADatasetRequestInfo;
+ procedure SetItems(aIndex: integer; const Value: TDADatasetRequestInfo);
+ public
+ constructor Create; overload;
+ function Add: TDADatasetRequestInfo; reintroduce;
+ procedure SaveToArray(anArray: TDADatasetRequestInfoArray);
+ procedure LoadFromArray(anArray: TDADatasetRequestInfoArray);
+ property Items[Index: integer]:TDADatasetRequestInfo read GetItems write SetItems; default;
+ end;
+
+ { TDALoginInfo }
+ TDALoginInfo = class(TROComplexType)
+ private
+ fSessionID: AnsiString;
+ fUserID: AnsiString;
+ fPrivileges: TDAStringArray;
+ fAttributes: TDAStringArray;
+ fData: Binary;
+ function GetPrivileges: TDAStringArray;
+ function GetAttributes: TDAStringArray;
+ function GetData: Binary;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property SessionID:AnsiString read fSessionID write fSessionID;
+ property UserID:AnsiString read fUserID write fUserID;
+ property Privileges:TDAStringArray read GetPrivileges write fPrivileges;
+ property Attributes:TDAStringArray read GetAttributes write fAttributes;
+ property Data:Binary read GetData write fData;
+ end;
+
+ { TDALoginInfoCollection }
+ TDALoginInfoCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TDALoginInfo;
+ procedure SetItems(aIndex: integer; const Value: TDALoginInfo);
+ public
+ constructor Create; overload;
+ function Add: TDALoginInfo; reintroduce;
+ property Items[Index: integer]:TDALoginInfo read GetItems write SetItems; default;
+ end;
+
+ { TDADatasetParamArray }
+ TDADatasetParamArray_TDADatasetParam = array of TDADatasetParam;
+ TDADatasetParamArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : TDADatasetParamArray_TDADatasetParam;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): TDADatasetParam;
+ procedure SetItems(aIndex: integer; const Value: TDADatasetParam);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemClass: TClass; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure SetItemRef(aIndex: integer; Ref: pointer); override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add: TDADatasetParam; overload;
+ function Add(const Value: TDADatasetParam):integer; overload;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:TDADatasetParam read GetItems write SetItems; default;
+ property InnerArray: TDADatasetParamArray_TDADatasetParam read fItems;
+ end;
+
+ { TDADatasetRequestInfoArray }
+ TDADatasetRequestInfoArray_TDADatasetRequestInfo = array of TDADatasetRequestInfo;
+ TDADatasetRequestInfoArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : TDADatasetRequestInfoArray_TDADatasetRequestInfo;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): TDADatasetRequestInfo;
+ procedure SetItems(aIndex: integer; const Value: TDADatasetRequestInfo);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemClass: TClass; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure SetItemRef(aIndex: integer; Ref: pointer); override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add: TDADatasetRequestInfo; overload;
+ function Add(const Value: TDADatasetRequestInfo):integer; overload;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:TDADatasetRequestInfo read GetItems write SetItems; default;
+ property InnerArray: TDADatasetRequestInfoArray_TDADatasetRequestInfo read fItems;
+ end;
+
+ { TDAStringArray }
+ TDAStringArray_AnsiString = array of AnsiString;
+ TDAStringArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : TDAStringArray_AnsiString;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): AnsiString;
+ procedure SetItems(aIndex: integer; const Value: AnsiString);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add(const Value:AnsiString): integer;
+ function GetIndex(const aPropertyName : string;
+ const aPropertyValue : Variant;
+ StartFrom : integer = 0;
+ Options : TROSearchOptions = [soIgnoreCase]) : integer; override;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:AnsiString read GetItems write SetItems; default;
+ property InnerArray: TDAStringArray_AnsiString read fItems;
+ end;
+
+ { IDARemoteService }
+ IDARemoteService = interface
+ ['{C532E842-0AA9-4253-A9BF-AFCF22885B97}']
+ function GetDatasetSchema(const aDatasetName: AnsiString): Binary;
+ function GetDatasetScripts(const DatasetNames: AnsiString): AnsiString;
+ function GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer): Binary;
+ function GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary;
+ function UpdateData(const Delta: Binary): Binary;
+ function ExecuteSQLCommand(const SQL: AnsiString): Integer;
+ function GetSchemaAsXML: AnsiString;
+ function GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): Binary;
+ function ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray): Integer;
+ end;
+
+ { CoDARemoteService }
+ CoDARemoteService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDARemoteService;
+ end;
+
+ { TDARemoteService_Proxy }
+ TDARemoteService_Proxy = class(TROProxy, IDARemoteService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetDatasetSchema(const aDatasetName: AnsiString): Binary;
+ function GetDatasetScripts(const DatasetNames: AnsiString): AnsiString;
+ function GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer): Binary;
+ function GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary;
+ function UpdateData(const Delta: Binary): Binary;
+ function ExecuteSQLCommand(const SQL: AnsiString): Integer;
+ function GetSchemaAsXML: AnsiString;
+ function GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): Binary;
+ function ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray): Integer;
+ end;
+
+ { IDALoginService }
+ IDALoginService = interface(IDARemoteService)
+ ['{58550AA0-B64F-495A-B2F8-C981D4C39180}']
+ function Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean;
+ procedure Logout;
+ end;
+
+ { CoDALoginService }
+ CoDALoginService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDALoginService;
+ end;
+
+ { TDALoginService_Proxy }
+ TDALoginService_Proxy = class(TDARemoteService_Proxy, IDALoginService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean;
+ procedure Logout;
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils,
+ {RemObjects:} uROEventRepository, uROSerializer, uRORes;
+
+{ TDADatasetParamArray }
+
+procedure TDADatasetParamArray.Assign(iSource: TPersistent);
+var lSource:TDADatasetParamArray;
+ i:integer;
+begin
+ if (iSource is TDADatasetParamArray) then begin
+ lSource := TDADatasetParamArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ if Assigned(lSource.Items[i]) then begin
+ Items[i].Assign(lSource.Items[i]);
+ end;
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function TDADatasetParamArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(TDADatasetParam);
+end;
+
+class function TDADatasetParamArray.GetItemClass: TClass;
+begin
+ result := TDADatasetParam;
+end;
+
+class function TDADatasetParamArray.GetItemSize: integer;
+begin
+ result := SizeOf(TDADatasetParam);
+end;
+
+function TDADatasetParamArray.GetItems(aIndex: integer): TDADatasetParam;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function TDADatasetParamArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+procedure TDADatasetParamArray.SetItemRef(aIndex: integer; Ref: pointer);
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if Ref <> fItems[aIndex] then begin
+ if fItems[aIndex] <> nil then fItems[aIndex].Free;
+ fItems[aIndex] := Ref;
+ end;
+end;
+
+procedure TDADatasetParamArray.Clear;
+var i: integer;
+begin
+ for i := 0 to (Count-1) do fItems[i].Free();
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure TDADatasetParamArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ fItems[aIndex].Free();
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if fItems[aIndex] <> Value then begin
+ fItems[aIndex].Free;
+ fItems[aIndex] := Value;
+ end;
+end;
+
+procedure TDADatasetParamArray.Resize(ElementCount: integer);
+var i: Integer;
+begin
+ if fCount = ElementCount then Exit;
+ for i := FCount -1 downto ElementCount do
+ FItems[i].Free;
+ SetLength(fItems, ElementCount);
+ for i := FCount to ElementCount -1 do
+ FItems[i] := TDADatasetParam.Create;
+ FCount := ElementCount;
+end;
+
+function TDADatasetParamArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure TDADatasetParamArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function TDADatasetParamArray.Add: TDADatasetParam;
+begin
+ result := TDADatasetParam.Create;
+ Add(Result);
+end;
+
+function TDADatasetParamArray.Add(const Value:TDADatasetParam): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+procedure TDADatasetParamArray.ReadComplex(ASerializer: TObject);
+var
+ lval: TDADatasetParam;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), TDADatasetParam, lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure TDADatasetParamArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], TDADatasetParam, i);
+end;
+
+{ TDADatasetRequestInfoArray }
+
+procedure TDADatasetRequestInfoArray.Assign(iSource: TPersistent);
+var lSource:TDADatasetRequestInfoArray;
+ i:integer;
+begin
+ if (iSource is TDADatasetRequestInfoArray) then begin
+ lSource := TDADatasetRequestInfoArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ if Assigned(lSource.Items[i]) then begin
+ Items[i].Assign(lSource.Items[i]);
+ end;
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function TDADatasetRequestInfoArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(TDADatasetRequestInfo);
+end;
+
+class function TDADatasetRequestInfoArray.GetItemClass: TClass;
+begin
+ result := TDADatasetRequestInfo;
+end;
+
+class function TDADatasetRequestInfoArray.GetItemSize: integer;
+begin
+ result := SizeOf(TDADatasetRequestInfo);
+end;
+
+function TDADatasetRequestInfoArray.GetItems(aIndex: integer): TDADatasetRequestInfo;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function TDADatasetRequestInfoArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+procedure TDADatasetRequestInfoArray.SetItemRef(aIndex: integer; Ref: pointer);
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if Ref <> fItems[aIndex] then begin
+ if fItems[aIndex] <> nil then fItems[aIndex].Free;
+ fItems[aIndex] := Ref;
+ end;
+end;
+
+procedure TDADatasetRequestInfoArray.Clear;
+var i: integer;
+begin
+ for i := 0 to (Count-1) do fItems[i].Free();
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure TDADatasetRequestInfoArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ fItems[aIndex].Free();
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if fItems[aIndex] <> Value then begin
+ fItems[aIndex].Free;
+ fItems[aIndex] := Value;
+ end;
+end;
+
+procedure TDADatasetRequestInfoArray.Resize(ElementCount: integer);
+var i: Integer;
+begin
+ if fCount = ElementCount then Exit;
+ for i := FCount -1 downto ElementCount do
+ FItems[i].Free;
+ SetLength(fItems, ElementCount);
+ for i := FCount to ElementCount -1 do
+ FItems[i] := TDADatasetRequestInfo.Create;
+ FCount := ElementCount;
+end;
+
+function TDADatasetRequestInfoArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure TDADatasetRequestInfoArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function TDADatasetRequestInfoArray.Add: TDADatasetRequestInfo;
+begin
+ result := TDADatasetRequestInfo.Create;
+ Add(Result);
+end;
+
+function TDADatasetRequestInfoArray.Add(const Value:TDADatasetRequestInfo): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+procedure TDADatasetRequestInfoArray.ReadComplex(ASerializer: TObject);
+var
+ lval: TDADatasetRequestInfo;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), TDADatasetRequestInfo, lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure TDADatasetRequestInfoArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], TDADatasetRequestInfo, i);
+end;
+
+{ TDAStringArray }
+
+procedure TDAStringArray.Assign(iSource: TPersistent);
+var lSource:TDAStringArray;
+ i:integer;
+begin
+ if (iSource is TDAStringArray) then begin
+ lSource := TDAStringArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ Items[i] := lSource.Items[i];
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function TDAStringArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(AnsiString);
+end;
+
+class function TDAStringArray.GetItemSize: integer;
+begin
+ result := SizeOf(AnsiString);
+end;
+
+function TDAStringArray.GetItems(aIndex: integer): AnsiString;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function TDAStringArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := @fItems[aIndex];
+end;
+
+procedure TDAStringArray.Clear;
+begin
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure TDAStringArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ fItems[aIndex] := Value;
+end;
+
+procedure TDAStringArray.Resize(ElementCount: integer);
+begin
+ if fCount = ElementCount then Exit;
+ SetLength(fItems, ElementCount);
+ FCount := ElementCount;
+end;
+
+function TDAStringArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure TDAStringArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function TDAStringArray.Add(const Value: AnsiString): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+function TDAStringArray.GetIndex(const aPropertyName: string;
+ const aPropertyValue: Variant; StartFrom: integer;
+ Options: TROSearchOptions): integer;
+begin
+ result := -1;
+end;
+
+procedure TDAStringArray.ReadComplex(ASerializer: TObject);
+var
+ lval: AnsiString;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure TDAStringArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);
+end;
+
+{ TDADatasetParam }
+
+procedure TDADatasetParam.Assign(iSource: TPersistent);
+var lSource: DataAbstract3_Intf.TDADatasetParam;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract3_Intf.TDADatasetParam) then begin
+ lSource := DataAbstract3_Intf.TDADatasetParam(iSource);
+ Name := lSource.Name;
+ Value := lSource.Value;
+ end;
+end;
+
+procedure TDADatasetParam.ReadComplex(ASerializer: TObject);
+var
+ l_Name: AnsiString;
+ l_Value: Variant;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_Name := Name;
+ TROSerializer(ASerializer).ReadUTF8String('Name', l_Name);
+ Name := l_Name;
+ l_Value := Value;
+ TROSerializer(ASerializer).ReadVariant('Value', l_Value);
+ Value := l_Value;
+ end
+ else begin
+ l_Name := Name;
+ TROSerializer(ASerializer).ReadUTF8String('Name', l_Name);
+ Name := l_Name;
+ l_Value := Value;
+ TROSerializer(ASerializer).ReadVariant('Value', l_Value);
+ Value := l_Value;
+ end;
+end;
+
+procedure TDADatasetParam.WriteComplex(ASerializer: TObject);
+var
+ l_Name: AnsiString;
+ l_Value: Variant;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(TDADatasetParam);
+ l_Name := Name;
+ TROSerializer(ASerializer).WriteUTF8String('Name', l_Name);
+ l_Value := Value;
+ TROSerializer(ASerializer).WriteVariant('Value', l_Value);
+ end
+ else begin
+ l_Name := Name;
+ TROSerializer(ASerializer).WriteUTF8String('Name', l_Name);
+ l_Value := Value;
+ TROSerializer(ASerializer).WriteVariant('Value', l_Value);
+ end;
+end;
+
+{ TDADatasetParamCollection }
+constructor TDADatasetParamCollection.Create;
+begin
+ inherited Create(TDADatasetParam);
+end;
+
+constructor TDADatasetParamCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TDADatasetParamCollection.Add: TDADatasetParam;
+begin
+ result := TDADatasetParam(inherited Add);
+end;
+
+function TDADatasetParamCollection.GetItems(aIndex: integer): TDADatasetParam;
+begin
+ result := TDADatasetParam(inherited Items[aIndex]);
+end;
+
+procedure TDADatasetParamCollection.LoadFromArray(anArray: TDADatasetParamArray);
+var i : integer;
+begin
+ Clear;
+ for i := 0 to (anArray.Count-1) do
+ Add.Assign(anArray[i]);
+end;
+
+procedure TDADatasetParamCollection.SaveToArray(anArray: TDADatasetParamArray);
+var i : integer;
+begin
+ anArray.Clear;
+ anArray.Resize(Count);
+ for i := 0 to (Count-1) do begin
+ anArray[i] := TDADatasetParam.Create;
+ anArray[i].Assign(Items[i]);
+ end;
+end;
+
+procedure TDADatasetParamCollection.SetItems(aIndex: integer; const Value: TDADatasetParam);
+begin
+ TDADatasetParam(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ TDADatasetRequestInfo }
+
+procedure TDADatasetRequestInfo.Assign(iSource: TPersistent);
+var lSource: DataAbstract3_Intf.TDADatasetRequestInfo;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract3_Intf.TDADatasetRequestInfo) then begin
+ lSource := DataAbstract3_Intf.TDADatasetRequestInfo(iSource);
+ DatasetName := lSource.DatasetName;
+ IncludeSchema := lSource.IncludeSchema;
+ MaxRecords := lSource.MaxRecords;
+ Params.Assign(lSource.Params);
+ end;
+end;
+
+function TDADatasetRequestInfo.GetParams: TDADatasetParamArray;
+begin
+ if (fParams = nil) then fParams := TDADatasetParamArray.Create();
+ result := fParams;
+end;
+
+procedure TDADatasetRequestInfo.ReadComplex(ASerializer: TObject);
+var
+ l_DatasetName: AnsiString;
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Params: TDADatasetParamArray;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_DatasetName := DatasetName;
+ TROSerializer(ASerializer).ReadUTF8String('DatasetName', l_DatasetName);
+ DatasetName := l_DatasetName;
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Params := Params;
+ TROSerializer(ASerializer).ReadArray('Params', TDADatasetParamArray, l_Params);
+ if Params <> l_Params then Params.Free;
+ Params := l_Params;
+ end
+ else begin
+ l_DatasetName := DatasetName;
+ TROSerializer(ASerializer).ReadUTF8String('DatasetName', l_DatasetName);
+ DatasetName := l_DatasetName;
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Params := Params;
+ TROSerializer(ASerializer).ReadArray('Params', TDADatasetParamArray, l_Params);
+ if Params <> l_Params then Params.Free;
+ Params := l_Params;
+ end;
+end;
+
+procedure TDADatasetRequestInfo.WriteComplex(ASerializer: TObject);
+var
+ l_DatasetName: AnsiString;
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Params: TDADatasetParamArray;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(TDADatasetRequestInfo);
+ l_DatasetName := DatasetName;
+ TROSerializer(ASerializer).WriteUTF8String('DatasetName', l_DatasetName);
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Params := Params;
+ TROSerializer(ASerializer).WriteArray('Params', l_Params, TDADatasetParamArray);
+ end
+ else begin
+ l_DatasetName := DatasetName;
+ TROSerializer(ASerializer).WriteUTF8String('DatasetName', l_DatasetName);
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Params := Params;
+ TROSerializer(ASerializer).WriteArray('Params', l_Params, TDADatasetParamArray);
+ end;
+end;
+
+{ TDADatasetRequestInfoCollection }
+constructor TDADatasetRequestInfoCollection.Create;
+begin
+ inherited Create(TDADatasetRequestInfo);
+end;
+
+constructor TDADatasetRequestInfoCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TDADatasetRequestInfoCollection.Add: TDADatasetRequestInfo;
+begin
+ result := TDADatasetRequestInfo(inherited Add);
+end;
+
+function TDADatasetRequestInfoCollection.GetItems(aIndex: integer): TDADatasetRequestInfo;
+begin
+ result := TDADatasetRequestInfo(inherited Items[aIndex]);
+end;
+
+procedure TDADatasetRequestInfoCollection.LoadFromArray(anArray: TDADatasetRequestInfoArray);
+var i : integer;
+begin
+ Clear;
+ for i := 0 to (anArray.Count-1) do
+ Add.Assign(anArray[i]);
+end;
+
+procedure TDADatasetRequestInfoCollection.SaveToArray(anArray: TDADatasetRequestInfoArray);
+var i : integer;
+begin
+ anArray.Clear;
+ anArray.Resize(Count);
+ for i := 0 to (Count-1) do begin
+ anArray[i] := TDADatasetRequestInfo.Create;
+ anArray[i].Assign(Items[i]);
+ end;
+end;
+
+procedure TDADatasetRequestInfoCollection.SetItems(aIndex: integer; const Value: TDADatasetRequestInfo);
+begin
+ TDADatasetRequestInfo(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ TDALoginInfo }
+
+procedure TDALoginInfo.Assign(iSource: TPersistent);
+var lSource: DataAbstract3_Intf.TDALoginInfo;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract3_Intf.TDALoginInfo) then begin
+ lSource := DataAbstract3_Intf.TDALoginInfo(iSource);
+ SessionID := lSource.SessionID;
+ UserID := lSource.UserID;
+ Privileges.Assign(lSource.Privileges);
+ Attributes.Assign(lSource.Attributes);
+ Data.Assign(lSource.Data);
+ end;
+end;
+
+function TDALoginInfo.GetPrivileges: TDAStringArray;
+begin
+ if (fPrivileges = nil) then fPrivileges := TDAStringArray.Create();
+ result := fPrivileges;
+end;
+
+function TDALoginInfo.GetAttributes: TDAStringArray;
+begin
+ if (fAttributes = nil) then fAttributes := TDAStringArray.Create();
+ result := fAttributes;
+end;
+
+function TDALoginInfo.GetData: Binary;
+begin
+ if (fData = nil) then fData := Binary.Create();
+ result := fData;
+end;
+
+procedure TDALoginInfo.ReadComplex(ASerializer: TObject);
+var
+ l_Attributes: TDAStringArray;
+ l_Data: Binary;
+ l_Privileges: TDAStringArray;
+ l_SessionID: AnsiString;
+ l_UserID: AnsiString;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
+ SessionID := l_SessionID;
+ l_UserID := UserID;
+ TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID);
+ UserID := l_UserID;
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).ReadArray('Privileges', TDAStringArray, l_Privileges);
+ if Privileges <> l_Privileges then Privileges.Free;
+ Privileges := l_Privileges;
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).ReadArray('Attributes', TDAStringArray, l_Attributes);
+ if Attributes <> l_Attributes then Attributes.Free;
+ Attributes := l_Attributes;
+ l_Data := Data;
+ TROSerializer(ASerializer).ReadBinary('Data', l_Data);
+ if Data <> l_Data then Data.Free;
+ Data := l_Data;
+ end
+ else begin
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).ReadArray('Attributes', TDAStringArray, l_Attributes);
+ if Attributes <> l_Attributes then Attributes.Free;
+ Attributes := l_Attributes;
+ l_Data := Data;
+ TROSerializer(ASerializer).ReadBinary('Data', l_Data);
+ if Data <> l_Data then Data.Free;
+ Data := l_Data;
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).ReadArray('Privileges', TDAStringArray, l_Privileges);
+ if Privileges <> l_Privileges then Privileges.Free;
+ Privileges := l_Privileges;
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
+ SessionID := l_SessionID;
+ l_UserID := UserID;
+ TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID);
+ UserID := l_UserID;
+ end;
+end;
+
+procedure TDALoginInfo.WriteComplex(ASerializer: TObject);
+var
+ l_Attributes: TDAStringArray;
+ l_Data: Binary;
+ l_Privileges: TDAStringArray;
+ l_SessionID: AnsiString;
+ l_UserID: AnsiString;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(TDALoginInfo);
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
+ l_UserID := UserID;
+ TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID);
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges, TDAStringArray);
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes, TDAStringArray);
+ l_Data := Data;
+ TROSerializer(ASerializer).WriteBinary('Data', l_Data);
+ end
+ else begin
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes, TDAStringArray);
+ l_Data := Data;
+ TROSerializer(ASerializer).WriteBinary('Data', l_Data);
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges, TDAStringArray);
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
+ l_UserID := UserID;
+ TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID);
+ end;
+end;
+
+{ TDALoginInfoCollection }
+constructor TDALoginInfoCollection.Create;
+begin
+ inherited Create(TDALoginInfo);
+end;
+
+constructor TDALoginInfoCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TDALoginInfoCollection.Add: TDALoginInfo;
+begin
+ result := TDALoginInfo(inherited Add);
+end;
+
+function TDALoginInfoCollection.GetItems(aIndex: integer): TDALoginInfo;
+begin
+ result := TDALoginInfo(inherited Items[aIndex]);
+end;
+
+procedure TDALoginInfoCollection.SetItems(aIndex: integer; const Value: TDALoginInfo);
+begin
+ TDALoginInfo(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ CoDARemoteService }
+
+class function CoDARemoteService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDARemoteService;
+begin
+ result := TDARemoteService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDARemoteService_Proxy }
+
+function TDARemoteService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'DARemoteService';
+end;
+
+function TDARemoteService_Proxy.GetDatasetSchema(const aDatasetName: AnsiString): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetSchema');
+ __Message.Write('aDatasetName', TypeInfo(AnsiString), aDatasetName, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.GetDatasetScripts(const DatasetNames: AnsiString): AnsiString;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetScripts');
+ __Message.Write('DatasetNames', TypeInfo(AnsiString), DatasetNames, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(AnsiString), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetData');
+ __Message.Write('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Write('Params', TypeInfo(AnsiString), Params, []);
+ __Message.Write('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetDatasetDataEx');
+ __Message.Write('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Write('Params', TypeInfo(DataAbstract3_Intf.TDADatasetParamArray), Params, []);
+ __Message.Write('UserFilter', TypeInfo(AnsiString), UserFilter, []);
+ __Message.Write('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Write('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.UpdateData(const Delta: Binary): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'UpdateData');
+ __Message.Write('Delta', TypeInfo(Binary), Delta, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.ExecuteSQLCommand(const SQL: AnsiString): Integer;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'ExecuteSQLCommand');
+ __Message.Write('SQL', TypeInfo(AnsiString), SQL, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.GetSchemaAsXML: AnsiString;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetSchemaAsXML');
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(AnsiString), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'GetMultipleDatasets');
+ __Message.Write('DatasetRequestInfoArray', TypeInfo(DataAbstract3_Intf.TDADatasetRequestInfoArray), DatasetRequestInfoArray, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDARemoteService_Proxy.ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray): Integer;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'ExecuteSQLCommandEx');
+ __Message.Write('CommandName', TypeInfo(AnsiString), CommandName, []);
+ __Message.Write('Params', TypeInfo(DataAbstract3_Intf.TDADatasetParamArray), Params, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+{ CoDALoginService }
+
+class function CoDALoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDALoginService;
+begin
+ result := TDALoginService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDALoginService_Proxy }
+
+function TDALoginService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'DALoginService';
+end;
+
+function TDALoginService_Proxy.Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean;
+begin
+ try
+ LoginInfo := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'Login');
+ __Message.Write('UserID', TypeInfo(AnsiString), UserID, []);
+ __Message.Write('Password', TypeInfo(AnsiString), Password, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('LoginInfo', TypeInfo(DataAbstract3_Intf.TDALoginInfo), LoginInfo, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+procedure TDALoginService_Proxy.Logout;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract3', __InterfaceName, 'Logout');
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ finally
+ __Message.FreeStream;
+ end
+end;
+
+initialization
+ RegisterROClass(TDADatasetParam);
+ RegisterROClass(TDADatasetRequestInfo);
+ RegisterROClass(TDALoginInfo);
+ RegisterROClass(TDADatasetParamArray);
+ RegisterROClass(TDADatasetRequestInfoArray);
+ RegisterROClass(TDAStringArray);
+ RegisterProxyClass(IDARemoteService_IID, TDARemoteService_Proxy);
+ RegisterProxyClass(IDALoginService_IID, TDALoginService_Proxy);
+
+
+finalization
+ UnregisterROClass(TDADatasetParam);
+ UnregisterROClass(TDADatasetRequestInfo);
+ UnregisterROClass(TDALoginInfo);
+ UnregisterROClass(TDADatasetParamArray);
+ UnregisterROClass(TDADatasetRequestInfoArray);
+ UnregisterROClass(TDAStringArray);
+ UnregisterProxyClass(IDARemoteService_IID);
+ UnregisterProxyClass(IDALoginService_IID);
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Invk.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Invk.pas
new file mode 100644
index 0000000..9ad9018
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract3_Invk.pas
@@ -0,0 +1,365 @@
+unit DataAbstract3_Invk;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes,
+ {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf,
+ {Generated:} DataAbstract3_Intf;
+
+type
+ TDARemoteService_Invoker = class(TROInvoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_GetDatasetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetDatasetScripts(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetDatasetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetDatasetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_UpdateData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_ExecuteSQLCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetSchemaAsXML(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetMultipleDatasets(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_ExecuteSQLCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TDALoginService_Invoker = class(TDARemoteService_Invoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+implementation
+
+uses
+ {RemObjects:} uRORes, uROClient;
+
+{ TDARemoteService_Invoker }
+
+constructor TDARemoteService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetDatasetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDatasetSchema(const aDatasetName: AnsiString): Binary; }
+var
+ aDatasetName: AnsiString;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('aDatasetName', TypeInfo(AnsiString), aDatasetName, []);
+
+ lResult := (__Instance as IDARemoteService).GetDatasetSchema(aDatasetName);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetDatasetSchemaResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetDatasetScripts(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDatasetScripts(const DatasetNames: AnsiString): AnsiString; }
+var
+ DatasetNames: AnsiString;
+ lResult: AnsiString;
+begin
+ try
+ __Message.Read('DatasetNames', TypeInfo(AnsiString), DatasetNames, []);
+
+ lResult := (__Instance as IDARemoteService).GetDatasetScripts(DatasetNames);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetDatasetScriptsResponse');
+ __Message.Write('Result', TypeInfo(AnsiString), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetDatasetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDatasetData(const DatasetName: AnsiString; const Params: AnsiString; const IncludeSchema: Boolean; const MaxRecords: Integer): Binary; }
+var
+ DatasetName: AnsiString;
+ Params: AnsiString;
+ IncludeSchema: Boolean;
+ MaxRecords: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Read('Params', TypeInfo(AnsiString), Params, []);
+ __Message.Read('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+
+ lResult := (__Instance as IDARemoteService).GetDatasetData(DatasetName, Params, IncludeSchema, MaxRecords);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetDatasetDataResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetDatasetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDatasetDataEx(const DatasetName: AnsiString; const Params: TDADatasetParamArray; const UserFilter: AnsiString; const IncludeSchema: Boolean;
+ const MaxRecords: Integer): Binary; }
+var
+ DatasetName: AnsiString;
+ Params: DataAbstract3_Intf.TDADatasetParamArray;
+ UserFilter: AnsiString;
+ IncludeSchema: Boolean;
+ MaxRecords: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ Params := nil;
+ lResult := nil;
+ try
+ __Message.Read('DatasetName', TypeInfo(AnsiString), DatasetName, []);
+ __Message.Read('Params', TypeInfo(DataAbstract3_Intf.TDADatasetParamArray), Params, []);
+ __Message.Read('UserFilter', TypeInfo(AnsiString), UserFilter, []);
+ __Message.Read('IncludeSchema', TypeInfo(Boolean), IncludeSchema, []);
+ __Message.Read('MaxRecords', TypeInfo(Integer), MaxRecords, []);
+
+ lResult := (__Instance as IDARemoteService).GetDatasetDataEx(DatasetName, Params, UserFilter, IncludeSchema, MaxRecords);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetDatasetDataExResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(Params);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_UpdateData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function UpdateData(const Delta: Binary): Binary; }
+var
+ Delta: Binary;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ Delta := nil;
+ lResult := nil;
+ try
+ __Message.Read('Delta', TypeInfo(Binary), Delta, []);
+
+ lResult := (__Instance as IDARemoteService).UpdateData(Delta);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'UpdateDataResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(Delta);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_ExecuteSQLCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExecuteSQLCommand(const SQL: AnsiString): Integer; }
+var
+ SQL: AnsiString;
+ lResult: Integer;
+begin
+ try
+ __Message.Read('SQL', TypeInfo(AnsiString), SQL, []);
+
+ lResult := (__Instance as IDARemoteService).ExecuteSQLCommand(SQL);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'ExecuteSQLCommandResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetSchemaAsXML(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetSchemaAsXML: AnsiString; }
+var
+ lResult: AnsiString;
+begin
+ try
+ lResult := (__Instance as IDARemoteService).GetSchemaAsXML;
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetSchemaAsXMLResponse');
+ __Message.Write('Result', TypeInfo(AnsiString), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_GetMultipleDatasets(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetMultipleDatasets(const DatasetRequestInfoArray: TDADatasetRequestInfoArray): Binary; }
+var
+ DatasetRequestInfoArray: DataAbstract3_Intf.TDADatasetRequestInfoArray;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ DatasetRequestInfoArray := nil;
+ lResult := nil;
+ try
+ __Message.Read('DatasetRequestInfoArray', TypeInfo(DataAbstract3_Intf.TDADatasetRequestInfoArray), DatasetRequestInfoArray, []);
+
+ lResult := (__Instance as IDARemoteService).GetMultipleDatasets(DatasetRequestInfoArray);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'GetMultipleDatasetsResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(DatasetRequestInfoArray);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDARemoteService_Invoker.Invoke_ExecuteSQLCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExecuteSQLCommandEx(const CommandName: AnsiString; const Params: TDADatasetParamArray): Integer; }
+var
+ CommandName: AnsiString;
+ Params: DataAbstract3_Intf.TDADatasetParamArray;
+ lResult: Integer;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ Params := nil;
+ try
+ __Message.Read('CommandName', TypeInfo(AnsiString), CommandName, []);
+ __Message.Read('Params', TypeInfo(DataAbstract3_Intf.TDADatasetParamArray), Params, []);
+
+ lResult := (__Instance as IDARemoteService).ExecuteSQLCommandEx(CommandName, Params);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DARemoteService', 'ExecuteSQLCommandExResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(Params);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TDALoginService_Invoker }
+
+constructor TDALoginService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TDALoginService_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function Login(const UserID: AnsiString; const Password: AnsiString; out LoginInfo: TDALoginInfo): Boolean; }
+var
+ UserID: AnsiString;
+ Password: AnsiString;
+ LoginInfo: DataAbstract3_Intf.TDALoginInfo;
+ lResult: Boolean;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ LoginInfo := nil;
+ try
+ __Message.Read('UserID', TypeInfo(AnsiString), UserID, []);
+ __Message.Read('Password', TypeInfo(AnsiString), Password, []);
+
+ lResult := (__Instance as IDALoginService).Login(UserID, Password, LoginInfo);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DALoginService', 'LoginResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('LoginInfo', TypeInfo(DataAbstract3_Intf.TDALoginInfo), LoginInfo, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(LoginInfo);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDALoginService_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ procedure Logout; }
+begin
+ try
+ (__Instance as IDALoginService).Logout;
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract3', 'DALoginService', 'LogoutResponse');
+ __Message.Finalize;
+
+ __oResponseOptions := [roNoResponse];
+
+ finally
+ end;
+end;
+
+initialization
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4.RODL b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4.RODL
new file mode 100644
index 0000000..1201aae
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4.RODL
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Async.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Async.pas
new file mode 100644
index 0000000..3db4e4d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Async.pas
@@ -0,0 +1,645 @@
+unit DataAbstract4_Async;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROXMLIntf, uROClasses, uROTypes, uROClientIntf, uROAsync,
+ {Project:} DataAbstract4_Intf;
+
+type
+ { IDataAbstractService_Async }
+ IDataAbstractService_Async = interface(IROAsyncInterface)
+ ['{B4C1D84D-1C6F-4E5A-8839-0C9F7EA5431B}']
+ procedure Invoke_GetSchema(const aFilter: Utf8String);
+ procedure Invoke_GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray);
+ procedure Invoke_UpdateData(const aDelta: Binary);
+ procedure Invoke_ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray);
+ procedure Invoke_ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray);
+ procedure Invoke_GetTableSchema(const aTableNameArray: StringArray);
+ procedure Invoke_GetCommandSchema(const aCommandNameArray: StringArray);
+ procedure Invoke_SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer);
+ procedure Invoke_SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring);
+ procedure Invoke_SQLExecuteCommand(const aSQLText: Utf8String);
+ procedure Invoke_SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring);
+ procedure Invoke_GetDatasetScripts(const DatasetNames: Utf8String);
+ procedure Invoke_RegisterForDataChangeNotification(const aTableName: Utf8String);
+ procedure Invoke_UnregisterForDataChangeNotification(const aTableName: Utf8String);
+ function Retrieve_GetSchema: Utf8String;
+ function Retrieve_GetData: Binary;
+ function Retrieve_UpdateData: Binary;
+ function Retrieve_ExecuteCommand: Integer;
+ function Retrieve_ExecuteCommandEx(out aOutputParameters: DataParameterArray): Integer;
+ function Retrieve_GetTableSchema: Utf8String;
+ function Retrieve_GetCommandSchema: Utf8String;
+ function Retrieve_SQLGetData: Binary;
+ function Retrieve_SQLGetDataEx: Binary;
+ function Retrieve_SQLExecuteCommand: Integer;
+ function Retrieve_SQLExecuteCommandEx: Integer;
+ function Retrieve_GetDatasetScripts: Utf8String;
+ end;
+
+ { IBaseLoginService_Async }
+ IBaseLoginService_Async = interface(IROAsyncInterface)
+ ['{45A761A3-80E9-43E6-86BC-E96693551453}']
+ procedure Invoke_Logout;
+ end;
+
+ { IMultiDbLoginService_Async }
+ IMultiDbLoginService_Async = interface(IBaseLoginService_Async)
+ ['{8EBB1878-ECD9-4F4E-8A87-E26D51FD0ADD}']
+ procedure Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String);
+ function Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { IMultiDbLoginServiceV5_Async }
+ IMultiDbLoginServiceV5_Async = interface(IMultiDbLoginService_Async)
+ ['{292C3E8B-B263-4D95-9EE6-41DA014ACDF3}']
+ procedure Invoke_GetConnectionNames;
+ procedure Invoke_GetDefaultConnectionName;
+ function Retrieve_GetConnectionNames: StringArray;
+ function Retrieve_GetDefaultConnectionName: Utf8String;
+ end;
+
+ { ISimpleLoginService_Async }
+ ISimpleLoginService_Async = interface(IBaseLoginService_Async)
+ ['{74BC5406-7AA7-45CD-8012-193C38DF62E9}']
+ procedure Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String);
+ function Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { CoDataAbstractService_Async }
+ CoDataAbstractService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataAbstractService_Async;
+ end;
+
+ { CoBaseLoginService_Async }
+ CoBaseLoginService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IBaseLoginService_Async;
+ end;
+
+ { CoMultiDbLoginService_Async }
+ CoMultiDbLoginService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginService_Async;
+ end;
+
+ { CoMultiDbLoginServiceV5_Async }
+ CoMultiDbLoginServiceV5_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginServiceV5_Async;
+ end;
+
+ { CoSimpleLoginService_Async }
+ CoSimpleLoginService_Async = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ISimpleLoginService_Async;
+ end;
+
+ { TDataAbstractService_AsyncProxy }
+ TDataAbstractService_AsyncProxy = class(TROAsyncProxy, IDataAbstractService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetSchema(const aFilter: Utf8String);
+ procedure Invoke_GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray);
+ procedure Invoke_UpdateData(const aDelta: Binary);
+ procedure Invoke_ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray);
+ procedure Invoke_ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray);
+ procedure Invoke_GetTableSchema(const aTableNameArray: StringArray);
+ procedure Invoke_GetCommandSchema(const aCommandNameArray: StringArray);
+ procedure Invoke_SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer);
+ procedure Invoke_SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring);
+ procedure Invoke_SQLExecuteCommand(const aSQLText: Utf8String);
+ procedure Invoke_SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring);
+ procedure Invoke_GetDatasetScripts(const DatasetNames: Utf8String);
+ procedure Invoke_RegisterForDataChangeNotification(const aTableName: Utf8String);
+ procedure Invoke_UnregisterForDataChangeNotification(const aTableName: Utf8String);
+ function Retrieve_GetSchema: Utf8String;
+ function Retrieve_GetData: Binary;
+ function Retrieve_UpdateData: Binary;
+ function Retrieve_ExecuteCommand: Integer;
+ function Retrieve_ExecuteCommandEx(out aOutputParameters: DataParameterArray): Integer;
+ function Retrieve_GetTableSchema: Utf8String;
+ function Retrieve_GetCommandSchema: Utf8String;
+ function Retrieve_SQLGetData: Binary;
+ function Retrieve_SQLGetDataEx: Binary;
+ function Retrieve_SQLExecuteCommand: Integer;
+ function Retrieve_SQLExecuteCommandEx: Integer;
+ function Retrieve_GetDatasetScripts: Utf8String;
+ end;
+
+ { TBaseLoginService_AsyncProxy }
+ TBaseLoginService_AsyncProxy = class(TROAsyncProxy, IBaseLoginService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_Logout;
+ end;
+
+ { TMultiDbLoginService_AsyncProxy }
+ TMultiDbLoginService_AsyncProxy = class(TBaseLoginService_AsyncProxy, IMultiDbLoginService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String);
+ function Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { TMultiDbLoginServiceV5_AsyncProxy }
+ TMultiDbLoginServiceV5_AsyncProxy = class(TMultiDbLoginService_AsyncProxy, IMultiDbLoginServiceV5_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_GetConnectionNames;
+ procedure Invoke_GetDefaultConnectionName;
+ function Retrieve_GetConnectionNames: StringArray;
+ function Retrieve_GetDefaultConnectionName: Utf8String;
+ end;
+
+ { TSimpleLoginService_AsyncProxy }
+ TSimpleLoginService_AsyncProxy = class(TBaseLoginService_AsyncProxy, ISimpleLoginService_Async)
+ private
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String);
+ function Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils;
+
+{ CoDataAbstractService }
+
+class function CoDataAbstractService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataAbstractService_Async;
+begin
+ result := TDataAbstractService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDataAbstractService_AsyncProxy }
+
+function TDataAbstractService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'DataAbstractService';
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_GetSchema(const aFilter: Utf8String);
+begin
+ __AssertProxyNotBusy('GetSchema');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetSchema');
+ __Message.Write('aFilter', TypeInfo(Utf8String), aFilter, []);
+ __DispatchAsyncRequest('GetSchema',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_GetSchema: Utf8String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetSchema');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Utf8String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray);
+begin
+ __AssertProxyNotBusy('GetData');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetData');
+ __Message.Write('aTableNameArray', TypeInfo(StringArray), aTableNameArray, []);
+ __Message.Write('aTableRequestInfoArray', TypeInfo(TableRequestInfoArray), aTableRequestInfoArray, []);
+ __DispatchAsyncRequest('GetData',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_GetData: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetData');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_UpdateData(const aDelta: Binary);
+begin
+ __AssertProxyNotBusy('UpdateData');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'UpdateData');
+ __Message.Write('aDelta', TypeInfo(Binary), aDelta, []);
+ __DispatchAsyncRequest('UpdateData',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_UpdateData: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('UpdateData');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray);
+begin
+ __AssertProxyNotBusy('ExecuteCommand');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'ExecuteCommand');
+ __Message.Write('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Write('aParameterArray', TypeInfo(DataParameterArray), aParameterArray, []);
+ __DispatchAsyncRequest('ExecuteCommand',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_ExecuteCommand: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('ExecuteCommand');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray);
+begin
+ __AssertProxyNotBusy('ExecuteCommandEx');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'ExecuteCommandEx');
+ __Message.Write('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Write('aInputParameters', TypeInfo(DataParameterArray), aInputParameters, []);
+ __DispatchAsyncRequest('ExecuteCommandEx',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_ExecuteCommandEx(out aOutputParameters: DataParameterArray): Integer;
+var __response:TStream;
+begin
+ aOutputParameters := nil;
+ __response := __RetrieveAsyncResponse('ExecuteCommandEx');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+ __Message.Read('aOutputParameters', TypeInfo(DataParameterArray), aOutputParameters, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_GetTableSchema(const aTableNameArray: StringArray);
+begin
+ __AssertProxyNotBusy('GetTableSchema');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetTableSchema');
+ __Message.Write('aTableNameArray', TypeInfo(StringArray), aTableNameArray, []);
+ __DispatchAsyncRequest('GetTableSchema',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_GetTableSchema: Utf8String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetTableSchema');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Utf8String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_GetCommandSchema(const aCommandNameArray: StringArray);
+begin
+ __AssertProxyNotBusy('GetCommandSchema');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetCommandSchema');
+ __Message.Write('aCommandNameArray', TypeInfo(StringArray), aCommandNameArray, []);
+ __DispatchAsyncRequest('GetCommandSchema',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_GetCommandSchema: Utf8String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetCommandSchema');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Utf8String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer);
+begin
+ __AssertProxyNotBusy('SQLGetData');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLGetData');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Write('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+ __DispatchAsyncRequest('SQLGetData',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_SQLGetData: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('SQLGetData');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring);
+begin
+ __AssertProxyNotBusy('SQLGetDataEx');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLGetDataEx');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Write('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+ __Message.Write('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+ __DispatchAsyncRequest('SQLGetDataEx',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_SQLGetDataEx: Binary;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('SQLGetDataEx');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Binary), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_SQLExecuteCommand(const aSQLText: Utf8String);
+begin
+ __AssertProxyNotBusy('SQLExecuteCommand');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLExecuteCommand');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __DispatchAsyncRequest('SQLExecuteCommand',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_SQLExecuteCommand: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('SQLExecuteCommand');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring);
+begin
+ __AssertProxyNotBusy('SQLExecuteCommandEx');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLExecuteCommandEx');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+ __DispatchAsyncRequest('SQLExecuteCommandEx',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_SQLExecuteCommandEx: Integer;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('SQLExecuteCommandEx');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Integer), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_GetDatasetScripts(const DatasetNames: Utf8String);
+begin
+ __AssertProxyNotBusy('GetDatasetScripts');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetDatasetScripts');
+ __Message.Write('DatasetNames', TypeInfo(Utf8String), DatasetNames, []);
+ __DispatchAsyncRequest('GetDatasetScripts',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TDataAbstractService_AsyncProxy.Retrieve_GetDatasetScripts: Utf8String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetDatasetScripts');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Utf8String), Result, []);
+
+ __response.Free();
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_RegisterForDataChangeNotification(const aTableName: Utf8String);
+begin
+ __AssertProxyNotBusy('RegisterForDataChangeNotification');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'RegisterForDataChangeNotification');
+ __Message.Write('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __DispatchAsyncRequest('RegisterForDataChangeNotification',__Message, false);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+procedure TDataAbstractService_AsyncProxy.Invoke_UnregisterForDataChangeNotification(const aTableName: Utf8String);
+begin
+ __AssertProxyNotBusy('UnregisterForDataChangeNotification');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'UnregisterForDataChangeNotification');
+ __Message.Write('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __DispatchAsyncRequest('UnregisterForDataChangeNotification',__Message, false);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+
+{ CoSimpleLoginService }
+
+class function CoSimpleLoginService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ISimpleLoginService_Async;
+begin
+ result := TSimpleLoginService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TSimpleLoginService_AsyncProxy }
+
+function TSimpleLoginService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'SimpleLoginService';
+end;
+
+procedure TSimpleLoginService_AsyncProxy.Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String);
+begin
+ __AssertProxyNotBusy('Login');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Login');
+ __Message.Write('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Write('aPassword', TypeInfo(Utf8String), aPassword, []);
+ __DispatchAsyncRequest('Login',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TSimpleLoginService_AsyncProxy.Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+var __response:TStream;
+begin
+ aUserInfo := nil;
+ __response := __RetrieveAsyncResponse('Login');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('aUserInfo', TypeInfo(UserInfo), aUserInfo, []);
+
+ __response.Free();
+end;
+
+
+{ CoBaseLoginService }
+
+class function CoBaseLoginService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IBaseLoginService_Async;
+begin
+ result := TBaseLoginService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TBaseLoginService_AsyncProxy }
+
+function TBaseLoginService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'BaseLoginService';
+end;
+
+procedure TBaseLoginService_AsyncProxy.Invoke_Logout;
+begin
+ __AssertProxyNotBusy('Logout');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Logout');
+ __DispatchAsyncRequest('Logout',__Message, false);
+end;
+
+
+{ CoMultiDbLoginService }
+
+class function CoMultiDbLoginService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginService_Async;
+begin
+ result := TMultiDbLoginService_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TMultiDbLoginService_AsyncProxy }
+
+function TMultiDbLoginService_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'MultiDbLoginService';
+end;
+
+procedure TMultiDbLoginService_AsyncProxy.Invoke_Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String);
+begin
+ __AssertProxyNotBusy('Login');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Login');
+ __Message.Write('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Write('aPassword', TypeInfo(Utf8String), aPassword, []);
+ __Message.Write('aConnectionName', TypeInfo(Utf8String), aConnectionName, []);
+ __DispatchAsyncRequest('Login',__Message);
+ __Message.UnsetAttributes(__TransportChannel);
+end;
+
+function TMultiDbLoginService_AsyncProxy.Retrieve_Login(out aUserInfo: UserInfo): Boolean;
+var __response:TStream;
+begin
+ aUserInfo := nil;
+ __response := __RetrieveAsyncResponse('Login');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Boolean), Result, []);
+ __Message.Read('aUserInfo', TypeInfo(UserInfo), aUserInfo, []);
+
+ __response.Free();
+end;
+
+
+{ CoMultiDbLoginServiceV5 }
+
+class function CoMultiDbLoginServiceV5_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginServiceV5_Async;
+begin
+ result := TMultiDbLoginServiceV5_AsyncProxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TMultiDbLoginServiceV5_AsyncProxy }
+
+function TMultiDbLoginServiceV5_AsyncProxy.__GetInterfaceName:string;
+begin
+ result := 'MultiDbLoginServiceV5';
+end;
+
+procedure TMultiDbLoginServiceV5_AsyncProxy.Invoke_GetConnectionNames;
+begin
+ __AssertProxyNotBusy('GetConnectionNames');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetConnectionNames');
+ __DispatchAsyncRequest('GetConnectionNames',__Message);
+end;
+
+function TMultiDbLoginServiceV5_AsyncProxy.Retrieve_GetConnectionNames: StringArray;
+var __response:TStream;
+begin
+ result := nil;
+ __response := __RetrieveAsyncResponse('GetConnectionNames');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(StringArray), Result, []);
+
+ __response.Free();
+end;
+
+procedure TMultiDbLoginServiceV5_AsyncProxy.Invoke_GetDefaultConnectionName;
+begin
+ __AssertProxyNotBusy('GetDefaultConnectionName');
+
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetDefaultConnectionName');
+ __DispatchAsyncRequest('GetDefaultConnectionName',__Message);
+end;
+
+function TMultiDbLoginServiceV5_AsyncProxy.Retrieve_GetDefaultConnectionName: Utf8String;
+var __response:TStream;
+begin
+ __response := __RetrieveAsyncResponse('GetDefaultConnectionName');
+ __Message.ReadFromStream(__response);
+
+ __Message.Read('Result', TypeInfo(Utf8String), Result, []);
+
+ __response.Free();
+end;
+
+
+initialization
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Intf.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Intf.pas
new file mode 100644
index 0000000..53131e6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Intf.pas
@@ -0,0 +1,2496 @@
+unit DataAbstract4_Intf;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, TypInfo,
+ {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf;
+
+const
+ { Library ID }
+ LibraryUID = '{DC8B7BE2-14AF-402D-B1F8-E1008B6FA4F6}';
+ TargetNamespace = '';
+
+ { Service Interface ID's }
+ IDataAbstractService_IID : TGUID = '{4C2EC238-4FB4-434E-8CFF-ED25EEFF1525}';
+ ISimpleLoginService_IID : TGUID = '{B186853B-168B-4E33-B798-467444BFC8C6}';
+ IBaseLoginService_IID : TGUID = '{C349DB54-9DFB-454E-AD23-6F2166A624A6}';
+ IMultiDbLoginService_IID : TGUID = '{2C6D5764-01CE-447A-8264-27210B2C7371}';
+ IMultiDbLoginServiceV5_IID : TGUID = '{5A78AB01-2097-4473-A4D5-78980FFD90E4}';
+
+ { Event ID's }
+ EID_DataChangeNotification = 'DataChangeNotification';
+
+type
+ { Forward declarations }
+ IDataAbstractService = interface;
+ ISimpleLoginService = interface;
+ IBaseLoginService = interface;
+ IMultiDbLoginService = interface;
+ IMultiDbLoginServiceV5 = interface;
+
+ DataParameterArray = class;
+ TableRequestInfoArray = class;
+ StringArray = class;
+ VariantArray = class;
+ ColumnSortingArray = class;
+
+ DataParameter = class;
+ TableRequestInfo = class;
+ UserInfo = class;
+ TableRequestInfoV5 = class;
+ ColumnSorting = class;
+ TableRequestInfoV6 = class;
+
+ IDataChangeNotification = interface;
+
+
+ { Enumerateds }
+ ColumnSortDirection = (ColumnSortDirection_Ascending,ColumnSortDirection_Descending);
+
+ { DataParameter }
+ DataParameter = class(TROComplexType)
+ private
+ fName: Utf8String;
+ fValue: Variant;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property Name:Utf8String read fName write fName;
+ property Value:Variant read fValue write fValue;
+ end;
+
+ { DataParameterCollection }
+ DataParameterCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): DataParameter;
+ procedure SetItems(aIndex: integer; const Value: DataParameter);
+ public
+ constructor Create; overload;
+ function Add: DataParameter; reintroduce;
+ procedure SaveToArray(anArray: DataParameterArray);
+ procedure LoadFromArray(anArray: DataParameterArray);
+ property Items[Index: integer]:DataParameter read GetItems write SetItems; default;
+ end;
+
+ { TableRequestInfo }
+ TableRequestInfo = class(TROComplexType)
+ private
+ fUserFilter: Utf8String;
+ fIncludeSchema: Boolean;
+ fMaxRecords: Integer;
+ fParameters: DataParameterArray;
+ function GetParameters: DataParameterArray;
+ public
+ constructor Create(aCollection : TCollection); override;
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property UserFilter:Utf8String read fUserFilter write fUserFilter;
+ property IncludeSchema:Boolean read fIncludeSchema write fIncludeSchema;
+ property MaxRecords:Integer read fMaxRecords write fMaxRecords;
+ property Parameters:DataParameterArray read GetParameters write fParameters;
+ end;
+
+ { TableRequestInfoCollection }
+ TableRequestInfoCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TableRequestInfo;
+ procedure SetItems(aIndex: integer; const Value: TableRequestInfo);
+ public
+ constructor Create; overload;
+ function Add: TableRequestInfo; reintroduce;
+ procedure SaveToArray(anArray: TableRequestInfoArray);
+ procedure LoadFromArray(anArray: TableRequestInfoArray);
+ property Items[Index: integer]:TableRequestInfo read GetItems write SetItems; default;
+ end;
+
+ { TableRequestInfoV6 }
+ TableRequestInfoV6 = class(TableRequestInfo)
+ private
+ fSql: Widestring;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property Sql:Widestring read fSql write fSql;
+ end;
+
+ { TableRequestInfoV6Collection }
+ TableRequestInfoV6Collection = class(TableRequestInfoCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TableRequestInfoV6;
+ procedure SetItems(aIndex: integer; const Value: TableRequestInfoV6);
+ public
+ constructor Create; overload;
+ function Add: TableRequestInfoV6; reintroduce;
+ property Items[Index: integer]:TableRequestInfoV6 read GetItems write SetItems; default;
+ end;
+
+ { TableRequestInfoV5 }
+ TableRequestInfoV5 = class(TableRequestInfo)
+ private
+ fWhereClause: IXmlNode;
+ fDynamicSelectFieldNames: StringArray;
+ fSorting: ColumnSorting;
+ function GetDynamicSelectFieldNames: StringArray;
+ function GetSorting: ColumnSorting;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property WhereClause:IXmlNode read fWhereClause write fWhereClause;
+ property DynamicSelectFieldNames:StringArray read GetDynamicSelectFieldNames write fDynamicSelectFieldNames;
+ property Sorting:ColumnSorting read GetSorting write fSorting;
+ end;
+
+ { TableRequestInfoV5Collection }
+ TableRequestInfoV5Collection = class(TableRequestInfoCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): TableRequestInfoV5;
+ procedure SetItems(aIndex: integer; const Value: TableRequestInfoV5);
+ public
+ constructor Create; overload;
+ function Add: TableRequestInfoV5; reintroduce;
+ property Items[Index: integer]:TableRequestInfoV5 read GetItems write SetItems; default;
+ end;
+
+ { UserInfo }
+ UserInfo = class(TROComplexType)
+ private
+ fSessionID: Utf8String;
+ fUserID: Utf8String;
+ fPrivileges: StringArray;
+ fAttributes: VariantArray;
+ fUserData: Binary;
+ function GetPrivileges: StringArray;
+ function GetAttributes: VariantArray;
+ function GetUserData: Binary;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property SessionID:Utf8String read fSessionID write fSessionID;
+ property UserID:Utf8String read fUserID write fUserID;
+ property Privileges:StringArray read GetPrivileges write fPrivileges;
+ property Attributes:VariantArray read GetAttributes write fAttributes;
+ property UserData:Binary read GetUserData write fUserData;
+ end;
+
+ { UserInfoCollection }
+ UserInfoCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): UserInfo;
+ procedure SetItems(aIndex: integer; const Value: UserInfo);
+ public
+ constructor Create; overload;
+ function Add: UserInfo; reintroduce;
+ property Items[Index: integer]:UserInfo read GetItems write SetItems; default;
+ end;
+
+ { ColumnSorting }
+ ColumnSorting = class(TROComplexType)
+ private
+ fFieldName: Utf8String;
+ fSortDirection: ColumnSortDirection;
+ public
+ procedure Assign(iSource: TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ published
+ property FieldName:Utf8String read fFieldName write fFieldName;
+ property SortDirection:ColumnSortDirection read fSortDirection write fSortDirection;
+ end;
+
+ { ColumnSortingCollection }
+ ColumnSortingCollection = class(TROCollection)
+ protected
+ constructor Create(aItemClass: TCollectionItemClass); overload;
+ function GetItems(aIndex: integer): ColumnSorting;
+ procedure SetItems(aIndex: integer; const Value: ColumnSorting);
+ public
+ constructor Create; overload;
+ function Add: ColumnSorting; reintroduce;
+ procedure SaveToArray(anArray: ColumnSortingArray);
+ procedure LoadFromArray(anArray: ColumnSortingArray);
+ property Items[Index: integer]:ColumnSorting read GetItems write SetItems; default;
+ end;
+
+ { DataParameterArray }
+ DataParameterArray_DataParameter = array of DataParameter;
+ DataParameterArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : DataParameterArray_DataParameter;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): DataParameter;
+ procedure SetItems(aIndex: integer; const Value: DataParameter);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemClass: TClass; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure SetItemRef(aIndex: integer; Ref: pointer); override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add: DataParameter; overload;
+ function Add(const Value: DataParameter):integer; overload;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:DataParameter read GetItems write SetItems; default;
+ property InnerArray: DataParameterArray_DataParameter read fItems;
+ end;
+
+ { TableRequestInfoArray }
+ TableRequestInfoArray_TableRequestInfo = array of TableRequestInfo;
+ TableRequestInfoArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : TableRequestInfoArray_TableRequestInfo;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): TableRequestInfo;
+ procedure SetItems(aIndex: integer; const Value: TableRequestInfo);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemClass: TClass; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure SetItemRef(aIndex: integer; Ref: pointer); override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add: TableRequestInfo; overload;
+ function Add(const Value: TableRequestInfo):integer; overload;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:TableRequestInfo read GetItems write SetItems; default;
+ property InnerArray: TableRequestInfoArray_TableRequestInfo read fItems;
+ end;
+
+ { StringArray }
+ StringArray_Utf8String = array of Utf8String;
+ StringArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : StringArray_Utf8String;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): Utf8String;
+ procedure SetItems(aIndex: integer; const Value: Utf8String);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add(const Value:Utf8String): integer;
+ function GetIndex(const aPropertyName : string;
+ const aPropertyValue : Variant;
+ StartFrom : integer = 0;
+ Options : TROSearchOptions = [soIgnoreCase]) : integer; override;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:Utf8String read GetItems write SetItems; default;
+ property InnerArray: StringArray_Utf8String read fItems;
+ end;
+
+ { VariantArray }
+ VariantArray_Variant = array of Variant;
+ VariantArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : VariantArray_Variant;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): Variant;
+ procedure SetItems(aIndex: integer; const Value: Variant);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add(const Value:Variant): integer;
+ function GetIndex(const aPropertyName : string;
+ const aPropertyValue : Variant;
+ StartFrom : integer = 0;
+ Options : TROSearchOptions = [soIgnoreCase]) : integer; override;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:Variant read GetItems write SetItems; default;
+ property InnerArray: VariantArray_Variant read fItems;
+ end;
+
+ { ColumnSortingArray }
+ ColumnSortingArray_ColumnSorting = array of ColumnSorting;
+ ColumnSortingArray = class(TROArray)
+ private
+ fCount: Integer;
+ fItems : ColumnSortingArray_ColumnSorting;
+ protected
+ procedure Grow; virtual;
+ function GetItems(aIndex: integer): ColumnSorting;
+ procedure SetItems(aIndex: integer; const Value: ColumnSorting);
+ function GetCount: integer; override;
+ public
+ class function GetItemType: PTypeInfo; override;
+ class function GetItemClass: TClass; override;
+ class function GetItemSize: integer; override;
+
+ function GetItemRef(aIndex: integer): pointer; override;
+ procedure SetItemRef(aIndex: integer; Ref: pointer); override;
+ procedure Clear; override;
+ procedure Delete(aIndex: integer); override;
+ procedure Resize(ElementCount: integer); override;
+
+ procedure Assign(iSource:TPersistent); override;
+ procedure ReadComplex(ASerializer: TObject); override;
+ procedure WriteComplex(ASerializer: TObject); override;
+ function Add: ColumnSorting; overload;
+ function Add(const Value: ColumnSorting):integer; overload;
+
+ property Count : integer read GetCount;
+ property Items[Index: integer]:ColumnSorting read GetItems write SetItems; default;
+ property InnerArray: ColumnSortingArray_ColumnSorting read fItems;
+ end;
+
+ { IDataAbstractService }
+ IDataAbstractService = interface
+ ['{4C2EC238-4FB4-434E-8CFF-ED25EEFF1525}']
+ function GetSchema(const aFilter: Utf8String): Utf8String;
+ function GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary;
+ function UpdateData(const aDelta: Binary): Binary;
+ function ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer;
+ function ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray; out aOutputParameters: DataParameterArray): Integer;
+ function GetTableSchema(const aTableNameArray: StringArray): Utf8String;
+ function GetCommandSchema(const aCommandNameArray: StringArray): Utf8String;
+ function SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary;
+ function SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring): Binary;
+ function SQLExecuteCommand(const aSQLText: Utf8String): Integer;
+ function SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer;
+ function GetDatasetScripts(const DatasetNames: Utf8String): Utf8String;
+ procedure RegisterForDataChangeNotification(const aTableName: Utf8String);
+ procedure UnregisterForDataChangeNotification(const aTableName: Utf8String);
+ end;
+
+ { CoDataAbstractService }
+ CoDataAbstractService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataAbstractService;
+ end;
+
+ { TDataAbstractService_Proxy }
+ TDataAbstractService_Proxy = class(TROProxy, IDataAbstractService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetSchema(const aFilter: Utf8String): Utf8String;
+ function GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary;
+ function UpdateData(const aDelta: Binary): Binary;
+ function ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer;
+ function ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray; out aOutputParameters: DataParameterArray): Integer;
+ function GetTableSchema(const aTableNameArray: StringArray): Utf8String;
+ function GetCommandSchema(const aCommandNameArray: StringArray): Utf8String;
+ function SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary;
+ function SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring): Binary;
+ function SQLExecuteCommand(const aSQLText: Utf8String): Integer;
+ function SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer;
+ function GetDatasetScripts(const DatasetNames: Utf8String): Utf8String;
+ procedure RegisterForDataChangeNotification(const aTableName: Utf8String);
+ procedure UnregisterForDataChangeNotification(const aTableName: Utf8String);
+ end;
+
+ { IBaseLoginService }
+ IBaseLoginService = interface
+ ['{C349DB54-9DFB-454E-AD23-6F2166A624A6}']
+ procedure Logout;
+ end;
+
+ { CoBaseLoginService }
+ CoBaseLoginService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IBaseLoginService;
+ end;
+
+ { TBaseLoginService_Proxy }
+ TBaseLoginService_Proxy = class(TROProxy, IBaseLoginService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ procedure Logout;
+ end;
+
+ { IMultiDbLoginService }
+ IMultiDbLoginService = interface(IBaseLoginService)
+ ['{2C6D5764-01CE-447A-8264-27210B2C7371}']
+ function Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String; out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { CoMultiDbLoginService }
+ CoMultiDbLoginService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginService;
+ end;
+
+ { TMultiDbLoginService_Proxy }
+ TMultiDbLoginService_Proxy = class(TBaseLoginService_Proxy, IMultiDbLoginService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String; out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { IMultiDbLoginServiceV5 }
+ IMultiDbLoginServiceV5 = interface(IMultiDbLoginService)
+ ['{5A78AB01-2097-4473-A4D5-78980FFD90E4}']
+ function GetConnectionNames: StringArray;
+ function GetDefaultConnectionName: Utf8String;
+ end;
+
+ { CoMultiDbLoginServiceV5 }
+ CoMultiDbLoginServiceV5 = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginServiceV5;
+ end;
+
+ { TMultiDbLoginServiceV5_Proxy }
+ TMultiDbLoginServiceV5_Proxy = class(TMultiDbLoginService_Proxy, IMultiDbLoginServiceV5)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function GetConnectionNames: StringArray;
+ function GetDefaultConnectionName: Utf8String;
+ end;
+
+ { ISimpleLoginService }
+ ISimpleLoginService = interface(IBaseLoginService)
+ ['{B186853B-168B-4E33-B798-467444BFC8C6}']
+ function Login(const aUserID: Utf8String; const aPassword: Utf8String; out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { CoSimpleLoginService }
+ CoSimpleLoginService = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ISimpleLoginService;
+ end;
+
+ { TSimpleLoginService_Proxy }
+ TSimpleLoginService_Proxy = class(TBaseLoginService_Proxy, ISimpleLoginService)
+ protected
+ function __GetInterfaceName:string; override;
+
+ function Login(const aUserID: Utf8String; const aPassword: Utf8String; out aUserInfo: UserInfo): Boolean;
+ end;
+
+ { IDataChangeNotification }
+ IDataChangeNotification = interface
+ ['{1309480C-AEF8-48E0-A27F-E6090F441B46}']
+ procedure OnDataTableChanged(const aTableName: Utf8String; const aDelta: Binary);
+ end;
+
+ { IDataChangeNotification_Writer }
+ IDataChangeNotification_Writer = interface(IROEventWriter)
+ ['{1309480C-AEF8-48E0-A27F-E6090F441B46}']
+ procedure OnDataTableChanged(const __Sender : TGUID; const aTableName: Utf8String; const aDelta: Binary);
+ end;
+
+implementation
+
+uses
+ {vcl:} SysUtils,
+ {RemObjects:} uROEventRepository, uROSerializer, uRORes;
+
+{ DataParameterArray }
+
+procedure DataParameterArray.Assign(iSource: TPersistent);
+var lSource:DataParameterArray;
+ i:integer;
+begin
+ if (iSource is DataParameterArray) then begin
+ lSource := DataParameterArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ if Assigned(lSource.Items[i]) then begin
+ Items[i].Assign(lSource.Items[i]);
+ end;
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function DataParameterArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(DataParameter);
+end;
+
+class function DataParameterArray.GetItemClass: TClass;
+begin
+ result := DataParameter;
+end;
+
+class function DataParameterArray.GetItemSize: integer;
+begin
+ result := SizeOf(DataParameter);
+end;
+
+function DataParameterArray.GetItems(aIndex: integer): DataParameter;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function DataParameterArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+procedure DataParameterArray.SetItemRef(aIndex: integer; Ref: pointer);
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if Ref <> fItems[aIndex] then begin
+ if fItems[aIndex] <> nil then fItems[aIndex].Free;
+ fItems[aIndex] := Ref;
+ end;
+end;
+
+procedure DataParameterArray.Clear;
+var i: integer;
+begin
+ for i := 0 to (Count-1) do fItems[i].Free();
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure DataParameterArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ fItems[aIndex].Free();
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if fItems[aIndex] <> Value then begin
+ fItems[aIndex].Free;
+ fItems[aIndex] := Value;
+ end;
+end;
+
+procedure DataParameterArray.Resize(ElementCount: integer);
+var i: Integer;
+begin
+ if fCount = ElementCount then Exit;
+ for i := FCount -1 downto ElementCount do
+ FItems[i].Free;
+ SetLength(fItems, ElementCount);
+ for i := FCount to ElementCount -1 do
+ FItems[i] := DataParameter.Create;
+ FCount := ElementCount;
+end;
+
+function DataParameterArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure DataParameterArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function DataParameterArray.Add: DataParameter;
+begin
+ result := DataParameter.Create;
+ Add(Result);
+end;
+
+function DataParameterArray.Add(const Value:DataParameter): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+procedure DataParameterArray.ReadComplex(ASerializer: TObject);
+var
+ lval: DataParameter;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), DataParameter, lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure DataParameterArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], DataParameter, i);
+end;
+
+{ TableRequestInfoArray }
+
+procedure TableRequestInfoArray.Assign(iSource: TPersistent);
+var lSource:TableRequestInfoArray;
+ i:integer;
+begin
+ if (iSource is TableRequestInfoArray) then begin
+ lSource := TableRequestInfoArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ if Assigned(lSource.Items[i]) then begin
+ Items[i].Assign(lSource.Items[i]);
+ end;
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function TableRequestInfoArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(TableRequestInfo);
+end;
+
+class function TableRequestInfoArray.GetItemClass: TClass;
+begin
+ result := TableRequestInfo;
+end;
+
+class function TableRequestInfoArray.GetItemSize: integer;
+begin
+ result := SizeOf(TableRequestInfo);
+end;
+
+function TableRequestInfoArray.GetItems(aIndex: integer): TableRequestInfo;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function TableRequestInfoArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+procedure TableRequestInfoArray.SetItemRef(aIndex: integer; Ref: pointer);
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if Ref <> fItems[aIndex] then begin
+ if fItems[aIndex] <> nil then fItems[aIndex].Free;
+ fItems[aIndex] := Ref;
+ end;
+end;
+
+procedure TableRequestInfoArray.Clear;
+var i: integer;
+begin
+ for i := 0 to (Count-1) do fItems[i].Free();
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure TableRequestInfoArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ fItems[aIndex].Free();
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if fItems[aIndex] <> Value then begin
+ fItems[aIndex].Free;
+ fItems[aIndex] := Value;
+ end;
+end;
+
+procedure TableRequestInfoArray.Resize(ElementCount: integer);
+var i: Integer;
+begin
+ if fCount = ElementCount then Exit;
+ for i := FCount -1 downto ElementCount do
+ FItems[i].Free;
+ SetLength(fItems, ElementCount);
+ for i := FCount to ElementCount -1 do
+ FItems[i] := TableRequestInfo.Create;
+ FCount := ElementCount;
+end;
+
+function TableRequestInfoArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure TableRequestInfoArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function TableRequestInfoArray.Add: TableRequestInfo;
+begin
+ result := TableRequestInfo.Create;
+ Add(Result);
+end;
+
+function TableRequestInfoArray.Add(const Value:TableRequestInfo): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+procedure TableRequestInfoArray.ReadComplex(ASerializer: TObject);
+var
+ lval: TableRequestInfo;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), TableRequestInfo, lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure TableRequestInfoArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], TableRequestInfo, i);
+end;
+
+{ StringArray }
+
+procedure StringArray.Assign(iSource: TPersistent);
+var lSource:StringArray;
+ i:integer;
+begin
+ if (iSource is StringArray) then begin
+ lSource := StringArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ Items[i] := lSource.Items[i];
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function StringArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(Utf8String);
+end;
+
+class function StringArray.GetItemSize: integer;
+begin
+ result := SizeOf(Utf8String);
+end;
+
+function StringArray.GetItems(aIndex: integer): Utf8String;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function StringArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := @fItems[aIndex];
+end;
+
+procedure StringArray.Clear;
+begin
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure StringArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ fItems[aIndex] := Value;
+end;
+
+procedure StringArray.Resize(ElementCount: integer);
+begin
+ if fCount = ElementCount then Exit;
+ SetLength(fItems, ElementCount);
+ FCount := ElementCount;
+end;
+
+function StringArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure StringArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function StringArray.Add(const Value: Utf8String): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+function StringArray.GetIndex(const aPropertyName: string;
+ const aPropertyValue: Variant; StartFrom: integer;
+ Options: TROSearchOptions): integer;
+begin
+ result := -1;
+end;
+
+procedure StringArray.ReadComplex(ASerializer: TObject);
+var
+ lval: Utf8String;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure StringArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);
+end;
+
+{ VariantArray }
+
+procedure VariantArray.Assign(iSource: TPersistent);
+var lSource:VariantArray;
+ i:integer;
+begin
+ if (iSource is VariantArray) then begin
+ lSource := VariantArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ Items[i] := lSource.Items[i];
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function VariantArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(Variant);
+end;
+
+class function VariantArray.GetItemSize: integer;
+begin
+ result := SizeOf(Variant);
+end;
+
+function VariantArray.GetItems(aIndex: integer): Variant;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function VariantArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := @fItems[aIndex];
+end;
+
+procedure VariantArray.Clear;
+begin
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure VariantArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ fItems[aIndex] := Value;
+end;
+
+procedure VariantArray.Resize(ElementCount: integer);
+begin
+ if fCount = ElementCount then Exit;
+ SetLength(fItems, ElementCount);
+ FCount := ElementCount;
+end;
+
+function VariantArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure VariantArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function VariantArray.Add(const Value: Variant): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+function VariantArray.GetIndex(const aPropertyName: string;
+ const aPropertyValue: Variant; StartFrom: integer;
+ Options: TROSearchOptions): integer;
+begin
+ result := -1;
+end;
+
+procedure VariantArray.ReadComplex(ASerializer: TObject);
+var
+ lval: Variant;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadVariant(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure VariantArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteVariant(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);
+end;
+
+{ ColumnSortingArray }
+
+procedure ColumnSortingArray.Assign(iSource: TPersistent);
+var lSource:ColumnSortingArray;
+ i:integer;
+begin
+ if (iSource is ColumnSortingArray) then begin
+ lSource := ColumnSortingArray(iSource);
+ Clear();
+ Resize(lSource.Count);
+
+ for i := 0 to Count-1 do begin
+ if Assigned(lSource.Items[i]) then begin
+ Items[i].Assign(lSource.Items[i]);
+ end;
+ end;
+ end
+ else begin
+ inherited Assign(iSource);
+ end;
+end;
+
+class function ColumnSortingArray.GetItemType: PTypeInfo;
+begin
+ result := TypeInfo(ColumnSorting);
+end;
+
+class function ColumnSortingArray.GetItemClass: TClass;
+begin
+ result := ColumnSorting;
+end;
+
+class function ColumnSortingArray.GetItemSize: integer;
+begin
+ result := SizeOf(ColumnSorting);
+end;
+
+function ColumnSortingArray.GetItems(aIndex: integer): ColumnSorting;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+function ColumnSortingArray.GetItemRef(aIndex: integer): pointer;
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ result := fItems[aIndex];
+end;
+
+procedure ColumnSortingArray.SetItemRef(aIndex: integer; Ref: pointer);
+begin
+ if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if Ref <> fItems[aIndex] then begin
+ if fItems[aIndex] <> nil then fItems[aIndex].Free;
+ fItems[aIndex] := Ref;
+ end;
+end;
+
+procedure ColumnSortingArray.Clear;
+var i: integer;
+begin
+ for i := 0 to (Count-1) do fItems[i].Free();
+ SetLength(fItems, 0);
+ FCount := 0;
+end;
+
+procedure ColumnSortingArray.Delete(aIndex: integer);
+var i: integer;
+begin
+ if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
+
+ fItems[aIndex].Free();
+
+ if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
+ if fItems[aIndex] <> Value then begin
+ fItems[aIndex].Free;
+ fItems[aIndex] := Value;
+ end;
+end;
+
+procedure ColumnSortingArray.Resize(ElementCount: integer);
+var i: Integer;
+begin
+ if fCount = ElementCount then Exit;
+ for i := FCount -1 downto ElementCount do
+ FItems[i].Free;
+ SetLength(fItems, ElementCount);
+ for i := FCount to ElementCount -1 do
+ FItems[i] := ColumnSorting.Create;
+ FCount := ElementCount;
+end;
+
+function ColumnSortingArray.GetCount: integer;
+begin
+ result := FCount;
+end;
+
+procedure ColumnSortingArray.Grow;
+var
+ Delta, Capacity: Integer;
+begin
+ Capacity := Length(fItems);
+ if Capacity > 64 then
+ Delta := Capacity div 4
+ else
+ if Capacity > 8 then
+ Delta := 16
+ else
+ Delta := 4;
+ SetLength(fItems, Capacity + Delta);
+end;
+
+function ColumnSortingArray.Add: ColumnSorting;
+begin
+ result := ColumnSorting.Create;
+ Add(Result);
+end;
+
+function ColumnSortingArray.Add(const Value:ColumnSorting): integer;
+begin
+ Result := Count;
+ if Length(fItems) = Result then
+ Grow;
+ fItems[result] := Value;
+ Inc(fCount);
+end;
+
+procedure ColumnSortingArray.ReadComplex(ASerializer: TObject);
+var
+ lval: ColumnSorting;
+ i: integer;
+begin
+ for i := 0 to Count-1 do begin
+ with TROSerializer(ASerializer) do
+ ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), ColumnSorting, lval, i);
+ Items[i] := lval;
+ end;
+end;
+
+procedure ColumnSortingArray.WriteComplex(ASerializer: TObject);
+var
+ i: integer;
+begin
+ for i := 0 to Count-1 do
+ with TROSerializer(ASerializer) do
+ WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], ColumnSorting, i);
+end;
+
+{ DataParameter }
+
+procedure DataParameter.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.DataParameter;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.DataParameter) then begin
+ lSource := DataAbstract4_Intf.DataParameter(iSource);
+ Name := lSource.Name;
+ Value := lSource.Value;
+ end;
+end;
+
+procedure DataParameter.ReadComplex(ASerializer: TObject);
+var
+ l_Name: Utf8String;
+ l_Value: Variant;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_Name := Name;
+ TROSerializer(ASerializer).ReadUTF8String('Name', l_Name);
+ Name := l_Name;
+ l_Value := Value;
+ TROSerializer(ASerializer).ReadVariant('Value', l_Value);
+ Value := l_Value;
+ end
+ else begin
+ l_Name := Name;
+ TROSerializer(ASerializer).ReadUTF8String('Name', l_Name);
+ Name := l_Name;
+ l_Value := Value;
+ TROSerializer(ASerializer).ReadVariant('Value', l_Value);
+ Value := l_Value;
+ end;
+end;
+
+procedure DataParameter.WriteComplex(ASerializer: TObject);
+var
+ l_Name: Utf8String;
+ l_Value: Variant;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(DataParameter);
+ l_Name := Name;
+ TROSerializer(ASerializer).WriteUTF8String('Name', l_Name);
+ l_Value := Value;
+ TROSerializer(ASerializer).WriteVariant('Value', l_Value);
+ end
+ else begin
+ l_Name := Name;
+ TROSerializer(ASerializer).WriteUTF8String('Name', l_Name);
+ l_Value := Value;
+ TROSerializer(ASerializer).WriteVariant('Value', l_Value);
+ end;
+end;
+
+{ DataParameterCollection }
+constructor DataParameterCollection.Create;
+begin
+ inherited Create(DataParameter);
+end;
+
+constructor DataParameterCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function DataParameterCollection.Add: DataParameter;
+begin
+ result := DataParameter(inherited Add);
+end;
+
+function DataParameterCollection.GetItems(aIndex: integer): DataParameter;
+begin
+ result := DataParameter(inherited Items[aIndex]);
+end;
+
+procedure DataParameterCollection.LoadFromArray(anArray: DataParameterArray);
+var i : integer;
+begin
+ Clear;
+ for i := 0 to (anArray.Count-1) do
+ Add.Assign(anArray[i]);
+end;
+
+procedure DataParameterCollection.SaveToArray(anArray: DataParameterArray);
+var i : integer;
+begin
+ anArray.Clear;
+ anArray.Resize(Count);
+ for i := 0 to (Count-1) do begin
+ anArray[i] := DataParameter.Create;
+ anArray[i].Assign(Items[i]);
+ end;
+end;
+
+procedure DataParameterCollection.SetItems(aIndex: integer; const Value: DataParameter);
+begin
+ DataParameter(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ TableRequestInfo }
+
+procedure TableRequestInfo.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.TableRequestInfo;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.TableRequestInfo) then begin
+ lSource := DataAbstract4_Intf.TableRequestInfo(iSource);
+ UserFilter := lSource.UserFilter;
+ IncludeSchema := lSource.IncludeSchema;
+ MaxRecords := lSource.MaxRecords;
+ Parameters.Assign(lSource.Parameters);
+ end;
+end;
+
+constructor TableRequestInfo.Create(aCollection : TCollection);
+begin
+ inherited Create(aCollection);
+ fMaxRecords := -1;
+end;
+
+function TableRequestInfo.GetParameters: DataParameterArray;
+begin
+ if (fParameters = nil) then fParameters := DataParameterArray.Create();
+ result := fParameters;
+end;
+
+procedure TableRequestInfo.ReadComplex(ASerializer: TObject);
+var
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_UserFilter: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).ReadUTF8String('UserFilter', l_UserFilter);
+ UserFilter := l_UserFilter;
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).ReadArray('Parameters', DataParameterArray, l_Parameters);
+ if Parameters <> l_Parameters then Parameters.Free;
+ Parameters := l_Parameters;
+ end
+ else begin
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).ReadArray('Parameters', DataParameterArray, l_Parameters);
+ if Parameters <> l_Parameters then Parameters.Free;
+ Parameters := l_Parameters;
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).ReadUTF8String('UserFilter', l_UserFilter);
+ UserFilter := l_UserFilter;
+ end;
+end;
+
+procedure TableRequestInfo.WriteComplex(ASerializer: TObject);
+var
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_UserFilter: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(TableRequestInfo);
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).WriteUTF8String('UserFilter', l_UserFilter);
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).WriteArray('Parameters', l_Parameters, DataParameterArray);
+ end
+ else begin
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).WriteArray('Parameters', l_Parameters, DataParameterArray);
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).WriteUTF8String('UserFilter', l_UserFilter);
+ end;
+end;
+
+{ TableRequestInfoCollection }
+constructor TableRequestInfoCollection.Create;
+begin
+ inherited Create(TableRequestInfo);
+end;
+
+constructor TableRequestInfoCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TableRequestInfoCollection.Add: TableRequestInfo;
+begin
+ result := TableRequestInfo(inherited Add);
+end;
+
+function TableRequestInfoCollection.GetItems(aIndex: integer): TableRequestInfo;
+begin
+ result := TableRequestInfo(inherited Items[aIndex]);
+end;
+
+procedure TableRequestInfoCollection.LoadFromArray(anArray: TableRequestInfoArray);
+var i : integer;
+begin
+ Clear;
+ for i := 0 to (anArray.Count-1) do
+ Add.Assign(anArray[i]);
+end;
+
+procedure TableRequestInfoCollection.SaveToArray(anArray: TableRequestInfoArray);
+var i : integer;
+begin
+ anArray.Clear;
+ anArray.Resize(Count);
+ for i := 0 to (Count-1) do begin
+ anArray[i] := TableRequestInfo.Create;
+ anArray[i].Assign(Items[i]);
+ end;
+end;
+
+procedure TableRequestInfoCollection.SetItems(aIndex: integer; const Value: TableRequestInfo);
+begin
+ TableRequestInfo(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ UserInfo }
+
+procedure UserInfo.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.UserInfo;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.UserInfo) then begin
+ lSource := DataAbstract4_Intf.UserInfo(iSource);
+ SessionID := lSource.SessionID;
+ UserID := lSource.UserID;
+ Privileges.Assign(lSource.Privileges);
+ Attributes.Assign(lSource.Attributes);
+ UserData.Assign(lSource.UserData);
+ end;
+end;
+
+function UserInfo.GetPrivileges: StringArray;
+begin
+ if (fPrivileges = nil) then fPrivileges := StringArray.Create();
+ result := fPrivileges;
+end;
+
+function UserInfo.GetAttributes: VariantArray;
+begin
+ if (fAttributes = nil) then fAttributes := VariantArray.Create();
+ result := fAttributes;
+end;
+
+function UserInfo.GetUserData: Binary;
+begin
+ if (fUserData = nil) then fUserData := Binary.Create();
+ result := fUserData;
+end;
+
+procedure UserInfo.ReadComplex(ASerializer: TObject);
+var
+ l_Attributes: VariantArray;
+ l_Privileges: StringArray;
+ l_SessionID: Utf8String;
+ l_UserData: Binary;
+ l_UserID: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
+ SessionID := l_SessionID;
+ l_UserID := UserID;
+ TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID);
+ UserID := l_UserID;
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).ReadArray('Privileges', StringArray, l_Privileges);
+ if Privileges <> l_Privileges then Privileges.Free;
+ Privileges := l_Privileges;
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).ReadArray('Attributes', VariantArray, l_Attributes);
+ if Attributes <> l_Attributes then Attributes.Free;
+ Attributes := l_Attributes;
+ l_UserData := UserData;
+ TROSerializer(ASerializer).ReadBinary('UserData', l_UserData);
+ if UserData <> l_UserData then UserData.Free;
+ UserData := l_UserData;
+ end
+ else begin
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).ReadArray('Attributes', VariantArray, l_Attributes);
+ if Attributes <> l_Attributes then Attributes.Free;
+ Attributes := l_Attributes;
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).ReadArray('Privileges', StringArray, l_Privileges);
+ if Privileges <> l_Privileges then Privileges.Free;
+ Privileges := l_Privileges;
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
+ SessionID := l_SessionID;
+ l_UserData := UserData;
+ TROSerializer(ASerializer).ReadBinary('UserData', l_UserData);
+ if UserData <> l_UserData then UserData.Free;
+ UserData := l_UserData;
+ l_UserID := UserID;
+ TROSerializer(ASerializer).ReadUTF8String('UserID', l_UserID);
+ UserID := l_UserID;
+ end;
+end;
+
+procedure UserInfo.WriteComplex(ASerializer: TObject);
+var
+ l_Attributes: VariantArray;
+ l_Privileges: StringArray;
+ l_SessionID: Utf8String;
+ l_UserData: Binary;
+ l_UserID: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(UserInfo);
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
+ l_UserID := UserID;
+ TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID);
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges, StringArray);
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes, VariantArray);
+ l_UserData := UserData;
+ TROSerializer(ASerializer).WriteBinary('UserData', l_UserData);
+ end
+ else begin
+ l_Attributes := Attributes;
+ TROSerializer(ASerializer).WriteArray('Attributes', l_Attributes, VariantArray);
+ l_Privileges := Privileges;
+ TROSerializer(ASerializer).WriteArray('Privileges', l_Privileges, StringArray);
+ l_SessionID := SessionID;
+ TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
+ l_UserData := UserData;
+ TROSerializer(ASerializer).WriteBinary('UserData', l_UserData);
+ l_UserID := UserID;
+ TROSerializer(ASerializer).WriteUTF8String('UserID', l_UserID);
+ end;
+end;
+
+{ UserInfoCollection }
+constructor UserInfoCollection.Create;
+begin
+ inherited Create(UserInfo);
+end;
+
+constructor UserInfoCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function UserInfoCollection.Add: UserInfo;
+begin
+ result := UserInfo(inherited Add);
+end;
+
+function UserInfoCollection.GetItems(aIndex: integer): UserInfo;
+begin
+ result := UserInfo(inherited Items[aIndex]);
+end;
+
+procedure UserInfoCollection.SetItems(aIndex: integer; const Value: UserInfo);
+begin
+ UserInfo(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ TableRequestInfoV5 }
+
+procedure TableRequestInfoV5.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.TableRequestInfoV5;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.TableRequestInfoV5) then begin
+ lSource := DataAbstract4_Intf.TableRequestInfoV5(iSource);
+ WhereClause := lSource.WhereClause;
+ DynamicSelectFieldNames.Assign(lSource.DynamicSelectFieldNames);
+ Sorting.Assign(lSource.Sorting);
+ end;
+end;
+
+function TableRequestInfoV5.GetDynamicSelectFieldNames: StringArray;
+begin
+ if (fDynamicSelectFieldNames = nil) then fDynamicSelectFieldNames := StringArray.Create();
+ result := fDynamicSelectFieldNames;
+end;
+
+function TableRequestInfoV5.GetSorting: ColumnSorting;
+begin
+ if (fSorting = nil) then fSorting := ColumnSorting.Create();
+ result := fSorting;
+end;
+
+procedure TableRequestInfoV5.ReadComplex(ASerializer: TObject);
+var
+ l_DynamicSelectFieldNames: StringArray;
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_Sorting: ColumnSorting;
+ l_UserFilter: Utf8String;
+ l_WhereClause: IXmlNode;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ inherited;
+ l_WhereClause := WhereClause;
+ TROSerializer(ASerializer).ReadXML('WhereClause', l_WhereClause);
+ WhereClause := l_WhereClause;
+ l_DynamicSelectFieldNames := DynamicSelectFieldNames;
+ TROSerializer(ASerializer).ReadArray('DynamicSelectFieldNames', StringArray, l_DynamicSelectFieldNames);
+ if DynamicSelectFieldNames <> l_DynamicSelectFieldNames then DynamicSelectFieldNames.Free;
+ DynamicSelectFieldNames := l_DynamicSelectFieldNames;
+ l_Sorting := Sorting;
+ TROSerializer(ASerializer).ReadStruct('Sorting', ColumnSorting, l_Sorting);
+ if Sorting <> l_Sorting then Sorting.Free;
+ Sorting := l_Sorting;
+ end
+ else begin
+ l_DynamicSelectFieldNames := DynamicSelectFieldNames;
+ TROSerializer(ASerializer).ReadArray('DynamicSelectFieldNames', StringArray, l_DynamicSelectFieldNames);
+ if DynamicSelectFieldNames <> l_DynamicSelectFieldNames then DynamicSelectFieldNames.Free;
+ DynamicSelectFieldNames := l_DynamicSelectFieldNames;
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).ReadArray('Parameters', DataParameterArray, l_Parameters);
+ if Parameters <> l_Parameters then Parameters.Free;
+ Parameters := l_Parameters;
+ l_Sorting := Sorting;
+ TROSerializer(ASerializer).ReadStruct('Sorting', ColumnSorting, l_Sorting);
+ if Sorting <> l_Sorting then Sorting.Free;
+ Sorting := l_Sorting;
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).ReadUTF8String('UserFilter', l_UserFilter);
+ UserFilter := l_UserFilter;
+ l_WhereClause := WhereClause;
+ TROSerializer(ASerializer).ReadXML('WhereClause', l_WhereClause);
+ WhereClause := l_WhereClause;
+ end;
+end;
+
+procedure TableRequestInfoV5.WriteComplex(ASerializer: TObject);
+var
+ l_DynamicSelectFieldNames: StringArray;
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_Sorting: ColumnSorting;
+ l_UserFilter: Utf8String;
+ l_WhereClause: IXmlNode;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ inherited;
+ TROSerializer(ASerializer).ChangeClass(TableRequestInfoV5);
+ l_WhereClause := WhereClause;
+ TROSerializer(ASerializer).WriteXML('WhereClause', l_WhereClause);
+ l_DynamicSelectFieldNames := DynamicSelectFieldNames;
+ TROSerializer(ASerializer).WriteArray('DynamicSelectFieldNames', l_DynamicSelectFieldNames, StringArray);
+ l_Sorting := Sorting;
+ TROSerializer(ASerializer).WriteStruct('Sorting', l_Sorting, ColumnSorting);
+ end
+ else begin
+ l_DynamicSelectFieldNames := DynamicSelectFieldNames;
+ TROSerializer(ASerializer).WriteArray('DynamicSelectFieldNames', l_DynamicSelectFieldNames, StringArray);
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).WriteArray('Parameters', l_Parameters, DataParameterArray);
+ l_Sorting := Sorting;
+ TROSerializer(ASerializer).WriteStruct('Sorting', l_Sorting, ColumnSorting);
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).WriteUTF8String('UserFilter', l_UserFilter);
+ l_WhereClause := WhereClause;
+ TROSerializer(ASerializer).WriteXML('WhereClause', l_WhereClause);
+ end;
+end;
+
+{ TableRequestInfoV5Collection }
+constructor TableRequestInfoV5Collection.Create;
+begin
+ inherited Create(TableRequestInfoV5);
+end;
+
+constructor TableRequestInfoV5Collection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TableRequestInfoV5Collection.Add: TableRequestInfoV5;
+begin
+ result := TableRequestInfoV5(inherited Add);
+end;
+
+function TableRequestInfoV5Collection.GetItems(aIndex: integer): TableRequestInfoV5;
+begin
+ result := TableRequestInfoV5(inherited Items[aIndex]);
+end;
+
+procedure TableRequestInfoV5Collection.SetItems(aIndex: integer; const Value: TableRequestInfoV5);
+begin
+ TableRequestInfoV5(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ ColumnSorting }
+
+procedure ColumnSorting.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.ColumnSorting;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.ColumnSorting) then begin
+ lSource := DataAbstract4_Intf.ColumnSorting(iSource);
+ FieldName := lSource.FieldName;
+ SortDirection := lSource.SortDirection;
+ end;
+end;
+
+procedure ColumnSorting.ReadComplex(ASerializer: TObject);
+var
+ l_FieldName: Utf8String;
+ l_SortDirection: ColumnSortDirection;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ l_FieldName := FieldName;
+ TROSerializer(ASerializer).ReadUTF8String('FieldName', l_FieldName);
+ FieldName := l_FieldName;
+ l_SortDirection := SortDirection;
+ TROSerializer(ASerializer).ReadEnumerated('SortDirection',TypeInfo(ColumnSortDirection), l_SortDirection);
+ SortDirection := l_SortDirection;
+ end
+ else begin
+ l_FieldName := FieldName;
+ TROSerializer(ASerializer).ReadUTF8String('FieldName', l_FieldName);
+ FieldName := l_FieldName;
+ l_SortDirection := SortDirection;
+ TROSerializer(ASerializer).ReadEnumerated('SortDirection',TypeInfo(ColumnSortDirection), l_SortDirection);
+ SortDirection := l_SortDirection;
+ end;
+end;
+
+procedure ColumnSorting.WriteComplex(ASerializer: TObject);
+var
+ l_FieldName: Utf8String;
+ l_SortDirection: ColumnSortDirection;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ TROSerializer(ASerializer).ChangeClass(ColumnSorting);
+ l_FieldName := FieldName;
+ TROSerializer(ASerializer).WriteUTF8String('FieldName', l_FieldName);
+ l_SortDirection := SortDirection;
+ TROSerializer(ASerializer).WriteEnumerated('SortDirection',TypeInfo(ColumnSortDirection), l_SortDirection);
+ end
+ else begin
+ l_FieldName := FieldName;
+ TROSerializer(ASerializer).WriteUTF8String('FieldName', l_FieldName);
+ l_SortDirection := SortDirection;
+ TROSerializer(ASerializer).WriteEnumerated('SortDirection',TypeInfo(ColumnSortDirection), l_SortDirection);
+ end;
+end;
+
+{ ColumnSortingCollection }
+constructor ColumnSortingCollection.Create;
+begin
+ inherited Create(ColumnSorting);
+end;
+
+constructor ColumnSortingCollection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function ColumnSortingCollection.Add: ColumnSorting;
+begin
+ result := ColumnSorting(inherited Add);
+end;
+
+function ColumnSortingCollection.GetItems(aIndex: integer): ColumnSorting;
+begin
+ result := ColumnSorting(inherited Items[aIndex]);
+end;
+
+procedure ColumnSortingCollection.LoadFromArray(anArray: ColumnSortingArray);
+var i : integer;
+begin
+ Clear;
+ for i := 0 to (anArray.Count-1) do
+ Add.Assign(anArray[i]);
+end;
+
+procedure ColumnSortingCollection.SaveToArray(anArray: ColumnSortingArray);
+var i : integer;
+begin
+ anArray.Clear;
+ anArray.Resize(Count);
+ for i := 0 to (Count-1) do begin
+ anArray[i] := ColumnSorting.Create;
+ anArray[i].Assign(Items[i]);
+ end;
+end;
+
+procedure ColumnSortingCollection.SetItems(aIndex: integer; const Value: ColumnSorting);
+begin
+ ColumnSorting(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ TableRequestInfoV6 }
+
+procedure TableRequestInfoV6.Assign(iSource: TPersistent);
+var lSource: DataAbstract4_Intf.TableRequestInfoV6;
+begin
+ inherited Assign(iSource);
+ if (iSource is DataAbstract4_Intf.TableRequestInfoV6) then begin
+ lSource := DataAbstract4_Intf.TableRequestInfoV6(iSource);
+ Sql := lSource.Sql;
+ end;
+end;
+
+procedure TableRequestInfoV6.ReadComplex(ASerializer: TObject);
+var
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_Sql: Widestring;
+ l_UserFilter: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ inherited;
+ l_Sql := Sql;
+ TROSerializer(ASerializer).ReadWideString('Sql', l_Sql);
+ Sql := l_Sql;
+ end
+ else begin
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).ReadEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ IncludeSchema := l_IncludeSchema;
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).ReadInteger('MaxRecords', otSLong, l_MaxRecords);
+ MaxRecords := l_MaxRecords;
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).ReadArray('Parameters', DataParameterArray, l_Parameters);
+ if Parameters <> l_Parameters then Parameters.Free;
+ Parameters := l_Parameters;
+ l_Sql := Sql;
+ TROSerializer(ASerializer).ReadWideString('Sql', l_Sql);
+ Sql := l_Sql;
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).ReadUTF8String('UserFilter', l_UserFilter);
+ UserFilter := l_UserFilter;
+ end;
+end;
+
+procedure TableRequestInfoV6.WriteComplex(ASerializer: TObject);
+var
+ l_IncludeSchema: Boolean;
+ l_MaxRecords: Integer;
+ l_Parameters: DataParameterArray;
+ l_Sql: Widestring;
+ l_UserFilter: Utf8String;
+begin
+ if TROSerializer(ASerializer).RecordStrictOrder then begin
+ inherited;
+ TROSerializer(ASerializer).ChangeClass(TableRequestInfoV6);
+ l_Sql := Sql;
+ TROSerializer(ASerializer).WriteWideString('Sql', l_Sql);
+ end
+ else begin
+ l_IncludeSchema := IncludeSchema;
+ TROSerializer(ASerializer).WriteEnumerated('IncludeSchema',TypeInfo(boolean), l_IncludeSchema);
+ l_MaxRecords := MaxRecords;
+ TROSerializer(ASerializer).WriteInteger('MaxRecords', otSLong, l_MaxRecords);
+ l_Parameters := Parameters;
+ TROSerializer(ASerializer).WriteArray('Parameters', l_Parameters, DataParameterArray);
+ l_Sql := Sql;
+ TROSerializer(ASerializer).WriteWideString('Sql', l_Sql);
+ l_UserFilter := UserFilter;
+ TROSerializer(ASerializer).WriteUTF8String('UserFilter', l_UserFilter);
+ end;
+end;
+
+{ TableRequestInfoV6Collection }
+constructor TableRequestInfoV6Collection.Create;
+begin
+ inherited Create(TableRequestInfoV6);
+end;
+
+constructor TableRequestInfoV6Collection.Create(aItemClass: TCollectionItemClass);
+begin
+ inherited Create(aItemClass);
+end;
+
+function TableRequestInfoV6Collection.Add: TableRequestInfoV6;
+begin
+ result := TableRequestInfoV6(inherited Add);
+end;
+
+function TableRequestInfoV6Collection.GetItems(aIndex: integer): TableRequestInfoV6;
+begin
+ result := TableRequestInfoV6(inherited Items[aIndex]);
+end;
+
+procedure TableRequestInfoV6Collection.SetItems(aIndex: integer; const Value: TableRequestInfoV6);
+begin
+ TableRequestInfoV6(inherited Items[aIndex]).Assign(Value);
+end;
+
+{ CoDataAbstractService }
+
+class function CoDataAbstractService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataAbstractService;
+begin
+ result := TDataAbstractService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TDataAbstractService_Proxy }
+
+function TDataAbstractService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'DataAbstractService';
+end;
+
+function TDataAbstractService_Proxy.GetSchema(const aFilter: Utf8String): Utf8String;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetSchema');
+ __Message.Write('aFilter', TypeInfo(Utf8String), aFilter, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Utf8String), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetData');
+ __Message.Write('aTableNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aTableNameArray, []);
+ __Message.Write('aTableRequestInfoArray', TypeInfo(DataAbstract4_Intf.TableRequestInfoArray), aTableRequestInfoArray, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.UpdateData(const aDelta: Binary): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'UpdateData');
+ __Message.Write('aDelta', TypeInfo(Binary), aDelta, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'ExecuteCommand');
+ __Message.Write('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Write('aParameterArray', TypeInfo(DataAbstract4_Intf.DataParameterArray), aParameterArray, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray; out aOutputParameters: DataParameterArray): Integer;
+begin
+ try
+ aOutputParameters := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'ExecuteCommandEx');
+ __Message.Write('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Write('aInputParameters', TypeInfo(DataAbstract4_Intf.DataParameterArray), aInputParameters, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ __Message.Read('aOutputParameters', TypeInfo(DataAbstract4_Intf.DataParameterArray), aOutputParameters, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.GetTableSchema(const aTableNameArray: StringArray): Utf8String;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetTableSchema');
+ __Message.Write('aTableNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aTableNameArray, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Utf8String), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.GetCommandSchema(const aCommandNameArray: StringArray): Utf8String;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetCommandSchema');
+ __Message.Write('aCommandNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aCommandNameArray, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Utf8String), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLGetData');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Write('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring): Binary;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLGetDataEx');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Write('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+ __Message.Write('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Binary), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.SQLExecuteCommand(const aSQLText: Utf8String): Integer;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLExecuteCommand');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'SQLExecuteCommandEx');
+ __Message.Write('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Write('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Integer), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TDataAbstractService_Proxy.GetDatasetScripts(const DatasetNames: Utf8String): Utf8String;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetDatasetScripts');
+ __Message.Write('DatasetNames', TypeInfo(Utf8String), DatasetNames, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Utf8String), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+procedure TDataAbstractService_Proxy.RegisterForDataChangeNotification(const aTableName: Utf8String);
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'RegisterForDataChangeNotification');
+ __Message.Write('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+procedure TDataAbstractService_Proxy.UnregisterForDataChangeNotification(const aTableName: Utf8String);
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'UnregisterForDataChangeNotification');
+ __Message.Write('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+{ CoSimpleLoginService }
+
+class function CoSimpleLoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ISimpleLoginService;
+begin
+ result := TSimpleLoginService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TSimpleLoginService_Proxy }
+
+function TSimpleLoginService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'SimpleLoginService';
+end;
+
+function TSimpleLoginService_Proxy.Login(const aUserID: Utf8String; const aPassword: Utf8String; out aUserInfo: UserInfo): Boolean;
+begin
+ try
+ aUserInfo := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Login');
+ __Message.Write('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Write('aPassword', TypeInfo(Utf8String), aPassword, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('aUserInfo', TypeInfo(DataAbstract4_Intf.UserInfo), aUserInfo, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+{ CoBaseLoginService }
+
+class function CoBaseLoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IBaseLoginService;
+begin
+ result := TBaseLoginService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TBaseLoginService_Proxy }
+
+function TBaseLoginService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'BaseLoginService';
+end;
+
+procedure TBaseLoginService_Proxy.Logout;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Logout');
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ finally
+ __Message.FreeStream;
+ end
+end;
+
+{ CoMultiDbLoginService }
+
+class function CoMultiDbLoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginService;
+begin
+ result := TMultiDbLoginService_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TMultiDbLoginService_Proxy }
+
+function TMultiDbLoginService_Proxy.__GetInterfaceName:string;
+begin
+ result := 'MultiDbLoginService';
+end;
+
+function TMultiDbLoginService_Proxy.Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String; out aUserInfo: UserInfo): Boolean;
+begin
+ try
+ aUserInfo := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'Login');
+ __Message.Write('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Write('aPassword', TypeInfo(Utf8String), aPassword, []);
+ __Message.Write('aConnectionName', TypeInfo(Utf8String), aConnectionName, []);
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Boolean), result, []);
+ __Message.Read('aUserInfo', TypeInfo(DataAbstract4_Intf.UserInfo), aUserInfo, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+{ CoMultiDbLoginServiceV5 }
+
+class function CoMultiDbLoginServiceV5.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IMultiDbLoginServiceV5;
+begin
+ result := TMultiDbLoginServiceV5_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+{ TMultiDbLoginServiceV5_Proxy }
+
+function TMultiDbLoginServiceV5_Proxy.__GetInterfaceName:string;
+begin
+ result := 'MultiDbLoginServiceV5';
+end;
+
+function TMultiDbLoginServiceV5_Proxy.GetConnectionNames: StringArray;
+begin
+ try
+ result := nil;
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetConnectionNames');
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(DataAbstract4_Intf.StringArray), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+function TMultiDbLoginServiceV5_Proxy.GetDefaultConnectionName: Utf8String;
+begin
+ try
+ __Message.InitializeRequestMessage(__TransportChannel, 'DataAbstract4', __InterfaceName, 'GetDefaultConnectionName');
+ __Message.Finalize;
+
+ __TransportChannel.Dispatch(__Message);
+
+ __Message.Read('Result', TypeInfo(Utf8String), result, []);
+ finally
+ __Message.UnsetAttributes(__TransportChannel);
+ __Message.FreeStream;
+ end
+end;
+
+type
+ { TDataChangeNotification_Writer }
+ TDataChangeNotification_Writer = class(TROEventWriter, IDataChangeNotification_Writer)
+ protected
+ procedure OnDataTableChanged(const __Sender : TGUID; const aTableName: Utf8String; const aDelta: Binary);
+ end;
+
+procedure TDataChangeNotification_Writer.OnDataTableChanged(const __Sender : TGUID; const aTableName: Utf8String; const aDelta: Binary);
+var __eventdata : Binary;
+begin
+ __eventdata := Binary.Create;
+ try
+ __Message.InitializeEventMessage(NIL, 'DataAbstract4', EID_DataChangeNotification, 'OnDataTableChanged');
+ __Message.Write('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __Message.Write('aDelta', TypeInfo(Binary), aDelta, []);
+ __Message.Finalize;
+
+ __Message.WriteToStream(__eventdata);
+
+ Repository.StoreEventData(__Sender, __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);
+ finally
+ __eventdata.Free;
+ end;
+end;
+
+type
+ { TDataChangeNotification_Invoker }
+ TDataChangeNotification_Invoker = class(TROEventInvoker)
+ published
+ procedure Invoke_OnDataTableChanged(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
+ end;
+
+procedure TDataChangeNotification_Invoker.Invoke_OnDataTableChanged(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
+var
+__lObjectDisposer: TROObjectDisposer;
+ aTableName: Utf8String;
+ aDelta: Binary;
+begin
+ aDelta := NIL;
+
+ try
+ __Message.Read('aTableName', TypeInfo(Utf8String), aTableName, []);
+ __Message.Read('aDelta', TypeInfo(Binary), aDelta, []);
+
+ (__Target as IDataChangeNotification).OnDataTableChanged(aTableName, aDelta);
+
+ finally
+ __lObjectDisposer:= TROObjectDisposer.Create(__EventReceiver);
+ try
+ __lObjectDisposer.Add(aDelta);
+ finally
+ __lObjectDisposer.Free();
+ end
+ end
+end;
+
+initialization
+ RegisterROClass(DataParameter);
+ RegisterROClass(TableRequestInfo);
+ RegisterROClass(UserInfo);
+ RegisterROClass(TableRequestInfoV5);
+ RegisterROClass(ColumnSorting);
+ RegisterROClass(TableRequestInfoV6);
+ RegisterROClass(DataParameterArray);
+ RegisterROClass(TableRequestInfoArray);
+ RegisterROClass(StringArray);
+ RegisterROClass(VariantArray);
+ RegisterROClass(ColumnSortingArray);
+ RegisterProxyClass(IDataAbstractService_IID, TDataAbstractService_Proxy);
+ RegisterProxyClass(ISimpleLoginService_IID, TSimpleLoginService_Proxy);
+ RegisterProxyClass(IBaseLoginService_IID, TBaseLoginService_Proxy);
+ RegisterProxyClass(IMultiDbLoginService_IID, TMultiDbLoginService_Proxy);
+ RegisterProxyClass(IMultiDbLoginServiceV5_IID, TMultiDbLoginServiceV5_Proxy);
+
+ RegisterEventWriterClass(IDataChangeNotification_Writer, TDataChangeNotification_Writer);
+ RegisterEventInvokerClass(EID_DataChangeNotification, TDataChangeNotification_Invoker);
+
+finalization
+ UnregisterROClass(DataParameter);
+ UnregisterROClass(TableRequestInfo);
+ UnregisterROClass(UserInfo);
+ UnregisterROClass(TableRequestInfoV5);
+ UnregisterROClass(ColumnSorting);
+ UnregisterROClass(TableRequestInfoV6);
+ UnregisterROClass(DataParameterArray);
+ UnregisterROClass(TableRequestInfoArray);
+ UnregisterROClass(StringArray);
+ UnregisterROClass(VariantArray);
+ UnregisterROClass(ColumnSortingArray);
+ UnregisterProxyClass(IDataAbstractService_IID);
+ UnregisterProxyClass(ISimpleLoginService_IID);
+ UnregisterProxyClass(IBaseLoginService_IID);
+ UnregisterProxyClass(IMultiDbLoginService_IID);
+ UnregisterProxyClass(IMultiDbLoginServiceV5_IID);
+
+ UnregisterEventWriterClass(IDataChangeNotification_Writer);
+ UnregisterEventInvokerClass(EID_DataChangeNotification);
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Invk.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Invk.pas
new file mode 100644
index 0000000..3058bec
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract4_Invk.pas
@@ -0,0 +1,621 @@
+unit DataAbstract4_Invk;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ Do not modify this unit manually, or your changes will be lost when this }
+{ unit is regenerated the next time you compile the project. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes,
+ {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf,
+ {Generated:} DataAbstract4_Intf;
+
+type
+ TDataAbstractService_Invoker = class(TROInvoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_UpdateData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_ExecuteCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_ExecuteCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetTableSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetCommandSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_SQLGetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_SQLGetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_SQLExecuteCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_SQLExecuteCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetDatasetScripts(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_RegisterForDataChangeNotification(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_UnregisterForDataChangeNotification(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TBaseLoginService_Invoker = class(TROInvoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TMultiDbLoginService_Invoker = class(TBaseLoginService_Invoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TMultiDbLoginServiceV5_Invoker = class(TMultiDbLoginService_Invoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_GetConnectionNames(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ procedure Invoke_GetDefaultConnectionName(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+ TSimpleLoginService_Invoker = class(TBaseLoginService_Invoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ procedure Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+ end;
+
+implementation
+
+uses
+ {RemObjects:} uRORes, uROClient;
+
+{ TDataAbstractService_Invoker }
+
+constructor TDataAbstractService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_GetSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetSchema(const aFilter: Utf8String): Utf8String; }
+var
+ aFilter: Utf8String;
+ lResult: Utf8String;
+begin
+ try
+ __Message.Read('aFilter', TypeInfo(Utf8String), aFilter, []);
+
+ lResult := (__Instance as IDataAbstractService).GetSchema(aFilter);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'GetSchemaResponse');
+ __Message.Write('Result', TypeInfo(Utf8String), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_GetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary; }
+var
+ aTableNameArray: DataAbstract4_Intf.StringArray;
+ aTableRequestInfoArray: DataAbstract4_Intf.TableRequestInfoArray;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aTableNameArray := nil;
+ aTableRequestInfoArray := nil;
+ lResult := nil;
+ try
+ __Message.Read('aTableNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aTableNameArray, []);
+ __Message.Read('aTableRequestInfoArray', TypeInfo(DataAbstract4_Intf.TableRequestInfoArray), aTableRequestInfoArray, []);
+
+ lResult := (__Instance as IDataAbstractService).GetData(aTableNameArray, aTableRequestInfoArray);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'GetDataResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aTableNameArray);
+ __lObjectDisposer.Add(aTableRequestInfoArray);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_UpdateData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function UpdateData(const aDelta: Binary): Binary; }
+var
+ aDelta: Binary;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aDelta := nil;
+ lResult := nil;
+ try
+ __Message.Read('aDelta', TypeInfo(Binary), aDelta, []);
+
+ lResult := (__Instance as IDataAbstractService).UpdateData(aDelta);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'UpdateDataResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aDelta);
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_ExecuteCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer; }
+var
+ aCommandName: Utf8String;
+ aParameterArray: DataAbstract4_Intf.DataParameterArray;
+ lResult: Integer;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aParameterArray := nil;
+ try
+ __Message.Read('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Read('aParameterArray', TypeInfo(DataAbstract4_Intf.DataParameterArray), aParameterArray, []);
+
+ lResult := (__Instance as IDataAbstractService).ExecuteCommand(aCommandName, aParameterArray);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'ExecuteCommandResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aParameterArray);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_ExecuteCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function ExecuteCommandEx(const aCommandName: Utf8String; const aInputParameters: DataParameterArray; out aOutputParameters: DataParameterArray): Integer; }
+var
+ aCommandName: Utf8String;
+ aInputParameters: DataAbstract4_Intf.DataParameterArray;
+ aOutputParameters: DataAbstract4_Intf.DataParameterArray;
+ lResult: Integer;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aInputParameters := nil;
+ aOutputParameters := nil;
+ try
+ __Message.Read('aCommandName', TypeInfo(Utf8String), aCommandName, []);
+ __Message.Read('aInputParameters', TypeInfo(DataAbstract4_Intf.DataParameterArray), aInputParameters, []);
+
+ lResult := (__Instance as IDataAbstractService).ExecuteCommandEx(aCommandName, aInputParameters, aOutputParameters);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'ExecuteCommandExResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Write('aOutputParameters', TypeInfo(DataAbstract4_Intf.DataParameterArray), aOutputParameters, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aInputParameters);
+ __lObjectDisposer.Add(aOutputParameters);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_GetTableSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetTableSchema(const aTableNameArray: StringArray): Utf8String; }
+var
+ aTableNameArray: DataAbstract4_Intf.StringArray;
+ lResult: Utf8String;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aTableNameArray := nil;
+ try
+ __Message.Read('aTableNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aTableNameArray, []);
+
+ lResult := (__Instance as IDataAbstractService).GetTableSchema(aTableNameArray);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'GetTableSchemaResponse');
+ __Message.Write('Result', TypeInfo(Utf8String), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aTableNameArray);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_GetCommandSchema(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetCommandSchema(const aCommandNameArray: StringArray): Utf8String; }
+var
+ aCommandNameArray: DataAbstract4_Intf.StringArray;
+ lResult: Utf8String;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aCommandNameArray := nil;
+ try
+ __Message.Read('aCommandNameArray', TypeInfo(DataAbstract4_Intf.StringArray), aCommandNameArray, []);
+
+ lResult := (__Instance as IDataAbstractService).GetCommandSchema(aCommandNameArray);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'GetCommandSchemaResponse');
+ __Message.Write('Result', TypeInfo(Utf8String), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aCommandNameArray);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_SQLGetData(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary; }
+var
+ aSQLText: Utf8String;
+ aIncludeSchema: Boolean;
+ aMaxRecords: Integer;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Read('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Read('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+
+ lResult := (__Instance as IDataAbstractService).SQLGetData(aSQLText, aIncludeSchema, aMaxRecords);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'SQLGetDataResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_SQLGetDataEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring): Binary; }
+var
+ aSQLText: Utf8String;
+ aIncludeSchema: Boolean;
+ aMaxRecords: Integer;
+ aDynamicWhereXML: Widestring;
+ lResult: Binary;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ __Message.Read('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Read('aIncludeSchema', TypeInfo(Boolean), aIncludeSchema, []);
+ __Message.Read('aMaxRecords', TypeInfo(Integer), aMaxRecords, []);
+ __Message.Read('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+
+ lResult := (__Instance as IDataAbstractService).SQLGetDataEx(aSQLText, aIncludeSchema, aMaxRecords, aDynamicWhereXML);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'SQLGetDataExResponse');
+ __Message.Write('Result', TypeInfo(Binary), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_SQLExecuteCommand(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function SQLExecuteCommand(const aSQLText: Utf8String): Integer; }
+var
+ aSQLText: Utf8String;
+ lResult: Integer;
+begin
+ try
+ __Message.Read('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+
+ lResult := (__Instance as IDataAbstractService).SQLExecuteCommand(aSQLText);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'SQLExecuteCommandResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_SQLExecuteCommandEx(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer; }
+var
+ aSQLText: Utf8String;
+ aDynamicWhereXML: Widestring;
+ lResult: Integer;
+begin
+ try
+ __Message.Read('aSQLText', TypeInfo(Utf8String), aSQLText, []);
+ __Message.Read('aDynamicWhereXML', TypeInfo(Widestring), aDynamicWhereXML, []);
+
+ lResult := (__Instance as IDataAbstractService).SQLExecuteCommandEx(aSQLText, aDynamicWhereXML);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'SQLExecuteCommandExResponse');
+ __Message.Write('Result', TypeInfo(Integer), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_GetDatasetScripts(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDatasetScripts(const DatasetNames: Utf8String): Utf8String; }
+var
+ DatasetNames: Utf8String;
+ lResult: Utf8String;
+begin
+ try
+ __Message.Read('DatasetNames', TypeInfo(Utf8String), DatasetNames, []);
+
+ lResult := (__Instance as IDataAbstractService).GetDatasetScripts(DatasetNames);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'GetDatasetScriptsResponse');
+ __Message.Write('Result', TypeInfo(Utf8String), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_RegisterForDataChangeNotification(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ procedure RegisterForDataChangeNotification(const aTableName: Utf8String); }
+var
+ aTableName: Utf8String;
+begin
+ try
+ __Message.Read('aTableName', TypeInfo(Utf8String), aTableName, []);
+
+ (__Instance as IDataAbstractService).RegisterForDataChangeNotification(aTableName);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'RegisterForDataChangeNotificationResponse');
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ __oResponseOptions := [roNoResponse];
+
+ finally
+ end;
+end;
+
+procedure TDataAbstractService_Invoker.Invoke_UnregisterForDataChangeNotification(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ procedure UnregisterForDataChangeNotification(const aTableName: Utf8String); }
+var
+ aTableName: Utf8String;
+begin
+ try
+ __Message.Read('aTableName', TypeInfo(Utf8String), aTableName, []);
+
+ (__Instance as IDataAbstractService).UnregisterForDataChangeNotification(aTableName);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'DataAbstractService', 'UnregisterForDataChangeNotificationResponse');
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ __oResponseOptions := [roNoResponse];
+
+ finally
+ end;
+end;
+
+{ TSimpleLoginService_Invoker }
+
+constructor TSimpleLoginService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TSimpleLoginService_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function Login(const aUserID: Utf8String; const aPassword: Utf8String; out aUserInfo: UserInfo): Boolean; }
+var
+ aUserID: Utf8String;
+ aPassword: Utf8String;
+ aUserInfo: DataAbstract4_Intf.UserInfo;
+ lResult: Boolean;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aUserInfo := nil;
+ try
+ __Message.Read('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Read('aPassword', TypeInfo(Utf8String), aPassword, []);
+
+ lResult := (__Instance as ISimpleLoginService).Login(aUserID, aPassword, aUserInfo);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'SimpleLoginService', 'LoginResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('aUserInfo', TypeInfo(DataAbstract4_Intf.UserInfo), aUserInfo, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aUserInfo);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TBaseLoginService_Invoker }
+
+constructor TBaseLoginService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TBaseLoginService_Invoker.Invoke_Logout(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ procedure Logout; }
+begin
+ try
+ (__Instance as IBaseLoginService).Logout;
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'BaseLoginService', 'LogoutResponse');
+ __Message.Finalize;
+
+ __oResponseOptions := [roNoResponse];
+
+ finally
+ end;
+end;
+
+{ TMultiDbLoginService_Invoker }
+
+constructor TMultiDbLoginService_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TMultiDbLoginService_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function Login(const aUserID: Utf8String; const aPassword: Utf8String; const aConnectionName: Utf8String; out aUserInfo: UserInfo): Boolean; }
+var
+ aUserID: Utf8String;
+ aPassword: Utf8String;
+ aConnectionName: Utf8String;
+ aUserInfo: DataAbstract4_Intf.UserInfo;
+ lResult: Boolean;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ aUserInfo := nil;
+ try
+ __Message.Read('aUserID', TypeInfo(Utf8String), aUserID, []);
+ __Message.Read('aPassword', TypeInfo(Utf8String), aPassword, []);
+ __Message.Read('aConnectionName', TypeInfo(Utf8String), aConnectionName, []);
+
+ lResult := (__Instance as IMultiDbLoginService).Login(aUserID, aPassword, aConnectionName, aUserInfo);
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'MultiDbLoginService', 'LoginResponse');
+ __Message.Write('Result', TypeInfo(Boolean), lResult, []);
+ __Message.Write('aUserInfo', TypeInfo(DataAbstract4_Intf.UserInfo), aUserInfo, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(aUserInfo);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+{ TMultiDbLoginServiceV5_Invoker }
+
+constructor TMultiDbLoginServiceV5_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := True;
+end;
+
+procedure TMultiDbLoginServiceV5_Invoker.Invoke_GetConnectionNames(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetConnectionNames: StringArray; }
+var
+ lResult: DataAbstract4_Intf.StringArray;
+ __lObjectDisposer: TROObjectDisposer;
+begin
+ lResult := nil;
+ try
+ lResult := (__Instance as IMultiDbLoginServiceV5).GetConnectionNames;
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'MultiDbLoginServiceV5', 'GetConnectionNamesResponse');
+ __Message.Write('Result', TypeInfo(DataAbstract4_Intf.StringArray), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ __lObjectDisposer := TROObjectDisposer.Create(__Instance);
+ try
+ __lObjectDisposer.Add(lResult);
+ finally
+ __lObjectDisposer.Free();
+ end;
+ end;
+end;
+
+procedure TMultiDbLoginServiceV5_Invoker.Invoke_GetDefaultConnectionName(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
+{ function GetDefaultConnectionName: Utf8String; }
+var
+ lResult: Utf8String;
+begin
+ try
+ lResult := (__Instance as IMultiDbLoginServiceV5).GetDefaultConnectionName;
+
+ __Message.InitializeResponseMessage(__Transport, 'DataAbstract4', 'MultiDbLoginServiceV5', 'GetDefaultConnectionNameResponse');
+ __Message.Write('Result', TypeInfo(Utf8String), lResult, []);
+ __Message.Finalize;
+ __Message.UnsetAttributes(__Transport);
+
+ finally
+ end;
+end;
+
+initialization
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.dfm b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.dfm
new file mode 100644
index 0000000..65deb18
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.dfm
@@ -0,0 +1,5 @@
+object DataAbstractService: TDataAbstractService
+ OldCreateOrder = True
+ Height = 437
+ Width = 546
+end
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lfm b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lfm
new file mode 100644
index 0000000..e5b4ff9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lfm
@@ -0,0 +1,7 @@
+inherited DataAbstractService: TDataAbstractService
+ OldCreateOrder = True
+ Height = 437
+ HorizontalOffset = 0
+ VerticalOffset = 0
+ Width = 546
+end
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lrs b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lrs
new file mode 100644
index 0000000..cca0dab
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.lrs
@@ -0,0 +1,7 @@
+{ This is an automatically generated lazarus resource file }
+
+LazarusResources.Add('TDataAbstractService','FORMDATA',[
+ 'TPF0'#241#20'TDataAbstractService'#19'DataAbstractService'#14'OldCreateOrder'
+ +#9#6'Height'#3#181#1#16'HorizontalOffset'#2#0#14'VerticalOffset'#2#0#5'Width'
+ +#3'"'#2#0#0
+]);
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.pas
new file mode 100644
index 0000000..06fe45a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstractService_Impl.pas
@@ -0,0 +1,1455 @@
+unit DataAbstractService_Impl;
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library }
+{ }
+{ compiler: Delphi 6 and up, Kylix 3 and up }
+{ platform: Win32, Linux }
+{ }
+{ (c)opyright RemObjects Software. all rights reserved. }
+{ }
+{ Using this code requires a valid license of the Data Abstract }
+{ which can be obtained at http://www.remobjects.com. }
+{----------------------------------------------------------------------------}
+
+{----------------------------------------------------------------------------}
+{ When applying fixes to this unit, please see if the need to be propagates }
+{ to the duplicate dlogic in legacy DARemoteService_Impl.pas, too. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+uses
+ {vcl:} Classes, SysUtils, DB,
+ {Generated:} DataAbstract4_Intf,
+ uROClientIntf, uROTypes, uROServer, uROSessions, uRORemoteDataModule, uROClasses,
+ uDAInterfaces, uDAClasses, uDADataTable, uDADataStreamer, uDABusinessProcessor,
+ uDADataTableReferenceCollection, uDADelta;
+
+type
+ { Events }
+ TDAAcquireConnectionEvent = procedure(aSender: TObject; var aConnectionName: string) of object;
+ TDAConnectionAcquiredEvent = procedure(aSender: TObject; const aConnectionName: string; const aAcquiredConnection: IDAConnection) of object;
+ TDAAcquireConnectionFailureEvent = procedure(aSender: TObject; const aConnectionName: string; aError: Exception) of object;
+ TDAGetDatasetSchemaEvent = procedure(aSender: TObject; const aDataset: IDADataset) of object;
+ TDAGetDatasetDataEvent = procedure(aSender: TObject; const aDataset: IDADataset; const aIncludeSchema: Boolean; const aMaxRecords: Integer) of object;
+ TDABusinessProcessorAutoCreatedEvent = procedure(aSender: TRORemoteDataModule; BusinessProcessor : TDABusinessProcessor) of object;
+ TDABeforeExecuteCommandEvent = procedure(aSender: TObject; const aCommand: IDASQLCommand) of object;
+ TDAAfterExecuteCommandEvent = procedure(aSender: TObject; const aCommand: IDASQLCommand; aRowsAffacted : integer) of object;
+ TDAConnectionReleasedEvent = procedure(aSender: TObject; const aConnectionName: string) of object;
+ TDAGetSchemaAsXMLEvent = procedure(aSender: TObject; var aSchemaXML: Utf8string) of object;
+ TDAProcessDeltasEvent = procedure(aSender: TObject; aDeltaStructs: TDADeltaStructList) of object;
+ TDAProcessDeltasErrorEvent = procedure(aSender: TObject; aDeltaStructs: TDADeltaStructList; aError: Exception; var aDoRaise: boolean) of object;
+ TDASchemaElementAccessValidationEvent = procedure(Sender: TObject; const aConnection: IDAConnection; const aDatasetName: string;
+ const aParamNames: array of string; const aParamValues : array of variant;
+ aSchema: TDASchema; var Allowed : boolean) of object;
+ TDASQLValidationEvent = procedure(Sender: TObject; const aConnection: IDAConnection; const aSQLText: string;
+ const aParamNames: array of string; const aParamValues : array of variant;
+ var Allowed : boolean) of object;
+ TDAUpdateDataTransactionEvent = procedure(Sender: TObject; var aUseDefaultTransactionLogic: Boolean) of object;
+
+ TDADeltasMode = (dumExported, dumStandard);
+ TDADeltasModes = set of TDADeltasMode;
+ { TDataAbstractService }
+ TDataAbstractService = class(TRORemoteDataModule, IDataAbstractService)
+ private
+ { Properties }
+ fAllowExecuteCommands: boolean;
+ fAllowExecuteSQL: boolean;
+ fAllowDataAccess: boolean;
+ fAllowSchemaAccess: boolean;
+ fAllowWhereSQL: boolean;
+ fConnectionName: string;
+ fAcquireConnection: boolean;
+ fServiceSchema: TDASchema;
+ fAutoCreateBusinessProcessors: boolean;
+ fServiceDataStreamer: TDADataStreamer;
+ fProcessDeltasWithoutUpdateRules: boolean;
+
+ fConnection: IDAConnection;
+ fHETConnection: IDAHETConnection;
+ fExportedDataTables: TDADataTableReferenceCollection;
+
+ { Events }
+ fBeforeGetDatasetSchema: TDAGetDatasetSchemaEvent;
+ fBeforeProcessDeltas: TDAProcessDeltasEvent;
+ fOnAcquireConnectionFailure: TDAAcquireConnectionFailureEvent;
+ fOnUpdateDataCommitTransaction: TDAUpdateDataTransactionEvent;
+ fGetDatasetDataValidation: TDASchemaElementAccessValidationEvent;
+ fExecuteCommandValidation: TDASchemaElementAccessValidationEvent;
+ fSQLValidation: TDASQLValidationEvent;
+ fAfterExecuteCommand: TDAAfterExecuteCommandEvent;
+ fBeforeAcquireConnection: TDAAcquireConnectionEvent;
+ fOnUpdateDataRollBackTransaction: TDAUpdateDataTransactionEvent;
+ fAfterGetDatasetData: TDAGetDatasetDataEvent;
+ fAfterReleaseConnection: TDAConnectionReleasedEvent;
+ fAfterGetDatasetSchema: TDAGetDatasetSchemaEvent;
+ fAfterProcessDeltas: TDAProcessDeltasEvent;
+ fOnGetSchemaAsXML: TDAGetSchemaAsXMLEvent;
+ fOnBusinessProcessorAutoCreated: TDABusinessProcessorAutoCreatedEvent;
+ fOnUpdateDataBeginTransaction: TDAUpdateDataTransactionEvent;
+ fAfterAcquireConnection: TDAConnectionAcquiredEvent;
+ fOnProcessDeltasError: TDAProcessDeltasErrorEvent;
+ fBeforeExecuteCommand: TDABeforeExecuteCommandEvent;
+ fBeforeGetDatasetData: TDAGetDatasetDataEvent;
+ fBeforeReleaseConnection: TDAConnectionAcquiredEvent;
+ fAllowDynamicSelect: boolean;
+ fAllowDynamicWhere: boolean;
+ fAllowUpdates: boolean;
+ fHasReducedDelta: Boolean;
+ fReturnUpdateFailureDelta: boolean;
+
+ procedure SetServiceDataStreamer(const Value: TDADataStreamer);
+ procedure SetServiceSchema(const Value: TDASchema);
+ procedure SetExportedDataTables(const Value: TDADataTableReferenceCollection);
+ procedure Check(CheckOnlyDataStreamer:Boolean = false);
+ private
+ function GetConnection: IDAConnection;
+ function UnpackDeltas(const DeltaStream: Binary; DeltaStructList: TDADeltaStructList): TDADeltasModes;
+ function TriggerTransactionEvent(aEvent: TDAUpdateDataTransactionEvent): boolean;
+ procedure ExportedDataTables_MergeDelta(ADelta: IDADelta);
+ protected
+ { IDataAbstractService methods }
+ function GetSchema(const aFilter: Utf8String): Utf8String;
+ function GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary;
+ function UpdateData(const aDelta: Binary): Binary;
+ function ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer;
+ function GetTableSchema(const aTableNameArray: StringArray): Utf8String;
+ function GetCommandSchema(const aCommandNameArray: StringArray): Utf8String;
+ function SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary;
+ function SQLGetDataEx(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer; const aDynamicWhereXML: Widestring): Binary;
+ function SQLExecuteCommand(const aSQLText: Utf8String): Integer;
+ function SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer;
+ function ExecuteCommandEx(const aCommandName: Utf8String;
+ const aInputParameters: DataParameterArray;
+ out aOutputParameters: DataParameterArray): Integer;
+ function GetDatasetScripts(const DatasetNames: Utf8String): Utf8String;
+ procedure RegisterForDataChangeNotification(const aTableName: Utf8String);
+ procedure UnregisterForDataChangeNotification(const aTableName: Utf8String);
+
+ { TRORemoteDataModule }
+ procedure DoOnDeactivate(aClientID: TGUID); override;
+
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+
+ function GetConnectionForObject(const aName: string): IDAConnection; virtual;
+ public
+ constructor Create(aOwner : TComponent); override;
+ destructor Destroy; override;
+
+ procedure SetConnection(aConnection: IDAConnection); deprecated;
+ {$WARN SYMBOL_DEPRECATED OFF}
+ property Connection: IDAConnection read GetConnection write SetConnection;
+ {$WARN SYMBOL_DEPRECATED ON}
+
+ procedure ReleaseConnection;
+ published
+ property AcquireConnection: boolean read fAcquireConnection write fAcquireConnection default true;
+ property ConnectionName: string read fConnectionName write fConnectionName;
+ property AutoCreateBusinessProcessors : boolean read fAutoCreateBusinessProcessors write fAutoCreateBusinessProcessors default true;
+ property ServiceSchema: TDASchema read fServiceSchema write SetServiceSchema;
+ property ServiceDataStreamer: TDADataStreamer read fServiceDataStreamer write SetServiceDataStreamer;
+
+ property AllowDataAccess: boolean read fAllowDataAccess write fAllowDataAccess default true;
+ property AllowSchemaAccess: boolean read fAllowSchemaAccess write fAllowSchemaAccess default true;
+ property AllowUpdates: boolean read fAllowUpdates write fAllowUpdates default true;
+ property AllowExecuteSQL: boolean read fAllowExecuteSQL write fAllowExecuteSQL default false;
+ property AllowWhereSQL: boolean read fAllowWhereSQL write fAllowWhereSQL default false;
+ property AllowExecuteCommands: boolean read fAllowExecuteCommands write fAllowExecuteCommands default false;
+ property AllowDynamicSelect: boolean read fAllowDynamicSelect write fAllowDynamicSelect default true;
+ property AllowDynamicWhere: boolean read fAllowDynamicWhere write fAllowDynamicWhere default true;
+
+ property ProcessDeltasWithoutUpdateRules: boolean read fProcessDeltasWithoutUpdateRules write fProcessDeltasWithoutUpdateRules default true;
+ property ExportedDataTables: TDADataTableReferenceCollection read fExportedDataTables write SetExportedDataTables;
+ property ReturnUpdateFailureDelta: boolean read fReturnUpdateFailureDelta write FReturnUpdateFailureDelta default True;
+
+ { Events }
+ property BeforeAcquireConnection: TDAAcquireConnectionEvent read fBeforeAcquireConnection write fBeforeAcquireConnection;
+ property AfterAcquireConnection: TDAConnectionAcquiredEvent read fAfterAcquireConnection write fAfterAcquireConnection;
+ property BeforeReleaseConnection: TDAConnectionAcquiredEvent read fBeforeReleaseConnection write fBeforeReleaseConnection;
+ property AfterReleaseConnection: TDAConnectionReleasedEvent read fAfterReleaseConnection write fAfterReleaseConnection;
+ property OnAcquireConnectionFailure: TDAAcquireConnectionFailureEvent read fOnAcquireConnectionFailure write fOnAcquireConnectionFailure;
+
+ property BeforeProcessDeltas : TDAProcessDeltasEvent read fBeforeProcessDeltas write fBeforeProcessDeltas;
+ property AfterProcessDeltas: TDAProcessDeltasEvent read fAfterProcessDeltas write fAfterProcessDeltas;
+ property OnProcessDeltasError: TDAProcessDeltasErrorEvent read fOnProcessDeltasError write fOnProcessDeltasError;
+
+ property BeforeGetDatasetSchema: TDAGetDatasetSchemaEvent read fBeforeGetDatasetSchema write fBeforeGetDatasetSchema;
+ property BeforeGetDatasetData: TDAGetDatasetDataEvent read fBeforeGetDatasetData write fBeforeGetDatasetData;
+ property AfterGetDatasetSchema: TDAGetDatasetSchemaEvent read fAfterGetDatasetSchema write fAfterGetDatasetSchema;
+ property AfterGetDatasetData: TDAGetDatasetDataEvent read fAfterGetDatasetData write fAfterGetDatasetData;
+ property OnBusinessProcessorAutoCreated: TDABusinessProcessorAutoCreatedEvent read fOnBusinessProcessorAutoCreated write fOnBusinessProcessorAutoCreated;
+ property BeforeExecuteCommand: TDABeforeExecuteCommandEvent read fBeforeExecuteCommand write fBeforeExecuteCommand;
+ property AfterExecuteCommand: TDAAfterExecuteCommandEvent read fAfterExecuteCommand write fAfterExecuteCommand;
+ property OnGetSchemaAsXMLEvent: TDAGetSchemaAsXMLEvent read fOnGetSchemaAsXML write fOnGetSchemaAsXML;
+ property ValidateDatasetAccess: TDASchemaElementAccessValidationEvent read fGetDatasetDataValidation write fGetDatasetDataValidation;
+ property ValidateCommandExecution: TDASchemaElementAccessValidationEvent read fExecuteCommandValidation write fExecuteCommandValidation;
+ property ValidateDirectSQLAccess: TDASQLValidationEvent read fSQLValidation write fSQLValidation;
+
+ property OnUpdateDataBeginTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataBeginTransaction write fOnUpdateDataBeginTransaction;
+ property OnUpdateDataCommitTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataCommitTransaction write fOnUpdateDataCommitTransaction;
+ property OnUpdateDataRollBackTransaction : TDAUpdateDataTransactionEvent read fOnUpdateDataRollBackTransaction write fOnUpdateDataRollBackTransaction;
+ end;
+
+implementation
+
+uses
+ Contnrs, Variants,
+ uDARes, uDAExceptions, uDAXMLUtils, uROXMLIntf,
+ TypInfo, uDAEngine, uDAWhere;
+
+procedure CheckUTF8Decode(const aOriginalStr: Utf8String; aDecodedStr: string);
+begin
+ if (aDecodedStr = '') and (aOriginalStr <> '') then raise Exception.CreateFmt(err_UTF8DecodeError, [aOriginalStr]);
+end;
+{ DataAbstractService }
+
+constructor TDataAbstractService.Create(aOwner : TComponent);
+begin
+ fAllowDataAccess := true;
+ fAllowSchemaAccess := true;
+ fAllowDynamicSelect := true;
+ fAllowDynamicWhere := true;
+ fAllowUpdates := true;
+ fAutoCreateBusinessProcessors := true;
+ fProcessDeltasWithoutUpdateRules := true;
+ fAcquireConnection := true;
+ fExportedDataTables := TDADataTableReferenceCollection.Create(Self);
+ fReturnUpdateFailureDelta := True;
+ inherited;
+end;
+
+destructor TDataAbstractService.Destroy;
+begin
+ inherited;
+ FreeAndNIL(fExportedDataTables);
+end;
+
+procedure TDataAbstractService.Notification(AComponent: TComponent; Operation: TOperation);
+var
+ lRef: TDADataTableReference;
+begin
+ inherited;
+
+ if (Operation = opRemove) then begin
+
+ if ((AComponent is TDADataTable) or (AComponent is TDataSet)) and (fExportedDataTables.Count > 0) then begin
+ lRef := fExportedDataTables.FindByDataTable(TDADataTable(aComponent));
+ if (lRef<>NIL) then lRef.DataTable := NIL;
+ end else if (AComponent = ServiceSchema) then
+ ServiceSchema := nil
+ else if (AComponent = ServiceDataStreamer) then
+ ServiceDataStreamer := nil;
+ end
+
+end;
+
+function TDataAbstractService.TriggerTransactionEvent(aEvent: TDAUpdateDataTransactionEvent): boolean;
+begin
+ result := true;
+ if assigned(aEvent) then aEvent(self, result);
+end;
+
+{ IDataAbstractService: Schema Access }
+
+function TDataAbstractService.GetSchema(const aFilter: Utf8String): Utf8String;
+var
+ xml: TStringStream;
+ dummyrefs: TObjectList;
+ tempSchema: TDASchema;
+
+ procedure MergeDatatablesToSchema(aList: TObjectList);
+ var i : integer;
+ ref : TDADataset;
+ dt : IDADataset;
+ begin
+ for i := 0 to fExportedDataTables.Count-1 do
+ if fExportedDataTables[i].IsValidReference then begin
+ dt := fExportedDataTables[i].Dataset;
+
+ ref := tempSchema.Datasets.Add;
+ ref.Name := dt.LogicalName;
+ ref.Fields.AssignFieldCollection(dt.Fields);
+ ref.Params.AssignParamCollection(dt.Params);
+
+ aList.Add(ref);
+ end;
+ end;
+
+begin
+ if not AllowSchemaAccess then
+ raise Exception.Create('Schema access has been disabled (GetSchema)');
+
+ tempSchema := ServiceSchema;
+ if not Assigned(tempSchema) and (fExportedDataTables.Count<>0) then
+ tempSchema := TDASchema.Create(nil);
+
+ if not Assigned(tempSchema) then
+ raise Exception.Create('ServiceSchema property is not assigned and no data tables are exported.');
+
+ dummyrefs := nil;
+ try
+ // New: merges the data tables references by the service
+ if (fExportedDataTables.Count>0) then begin
+ dummyrefs := TObjectList.Create(true);;
+ MergeDatatablesToSchema(dummyrefs);
+ end;
+
+ // Returns the schema
+ xml := TStringStream.Create('');
+ try
+ tempSchema.SaveToStream(xml);
+
+ result := AnsiToUtf8(xml.DataString);
+
+ if Assigned(fOnGetSchemaAsXML) then fOnGetSchemaAsXML(Self, result);
+ finally
+ xml.Free;
+ end;
+
+ finally
+ FreeAndNil(dummyrefs); // automatically removes the datatables from the schema again
+ if tempSchema <> ServiceSchema then tempSchema.Free;
+ end;
+end;
+
+function TDataAbstractService.GetTableSchema(const aTableNameArray: StringArray): Utf8String;
+
+ function CreateDatasetFromIDADataset(aRef: IDADataset): TDADataset;
+ begin
+ Result := TDADataset.Create(nil);
+ Result.Name := aRef.LogicalName;
+ Result.Fields.AssignFieldCollection(aRef.Fields);
+ Result.Params.AssignParamCollection(aRef.Params);
+ end;
+
+var
+ lxml: IXMLDocument;
+ i: integer;
+ lDataSet: TDADataset;
+ lDataTableRef: TDADataTableReference;
+ lNeedDeleteDataset: Boolean;
+ lTableName: string;
+begin
+ if not AllowSchemaAccess then
+ raise Exception.Create('Schema access has been disabled (GetTableSchema)');
+
+ if not Assigned(ServiceSchema) and (fExportedDataTables.Count=0) then
+ raise Exception.Create('ServiceSchema property is not assigned and no data tables are exported.');
+
+ // Returns the schema
+ lxml := NewROXmlDocument;
+ lxml.New('DataTables');
+ try
+ for i := 0 to aTableNameArray.Count - 1 do begin
+ lTableName := UTF8ToString(aTableNameArray[i]);
+ CheckUTF8Decode(aTableNameArray[i], lTableName);
+ lDataSet := nil;
+ if (fExportedDataTables.Count > 0) then begin
+ lDataTableRef := fExportedDataTables.FindByName(lTableName);
+ if lDataTableRef <> nil then lDataSet := CreateDatasetFromIDADataset(lDataTableRef.Dataset);
+ end;
+ lNeedDeleteDataset := lDataSet <> nil;
+ if not lNeedDeleteDataset and (ServiceSchema <> nil) then
+ lDataSet := ServiceSchema.Datasets.DatasetByName(lTableName);
+ try
+ if lDataSet <> nil then begin
+ // if Assigned(fBeforeGetDatasetSchema) then fBeforeGetDatasetSchema(Self, lDataset as IDADataset);
+ SaveObjectToXMLNode(lDataSet, lxml.DocumentNode.Add('SchemaDataTable'), [], [], False);
+ //if Assigned(FAfterGetDatasetSchema) then FAfterGetDatasetSchema(Self, lDataset as IDADataset);
+ if not (lDataSet.IsPublic) then
+ raise EDAException.Create(lDataset.Name +' is not accessible');
+ end;
+ finally
+ if lNeedDeleteDataset then lDataSet.Free;
+ end;
+ end;
+ Result := UTF8Encode(lxml.DocumentNode.XML);
+ finally
+ lxml := nil;
+ end;
+end;
+
+function TDataAbstractService.GetCommandSchema(const aCommandNameArray: StringArray): Utf8String;
+var
+ lxml: IXMLDocument;
+ i: integer;
+ lSQLCommand: TDASQLCommand;
+ lCommand: string;
+begin
+ if not AllowSchemaAccess then
+ raise Exception.Create('Schema access has been disabled (GetCommandSchema)');
+
+ if not Assigned(ServiceSchema) then
+ raise Exception.Create('ServiceSchema property is not assigned.');
+
+ // Returns the schema
+ lxml := NewROXmlDocument;
+ lxml.New('Commands');
+ try
+ for i := 0 to aCommandNameArray.Count - 1 do begin
+ lCommand:=UTF8ToString(aCommandNameArray[i]);
+ CheckUTF8Decode(aCommandNameArray[i], lCommand);
+ lSQLCommand:=ServiceSchema.Commands.SQLCommandByName(lCommand);
+ if lSQLCommand <> nil then begin
+ if not lSQLCommand.IsPublic then
+ raise EDAException.Create(lSqlCommand.Name +' is not accessible');
+ SaveObjectToXMLNode(lSQLCommand, lxml.DocumentNode.Add('SchemaCommand'), [], [], False);
+ end;
+ end;
+ result := UTF8Encode(lxml.DocumentNode.XML);
+ finally
+ lxml := nil;
+ end;
+end;
+
+{ IDataAbstractService: Data Access }
+
+function TDataAbstractService.GetData(const aTableNameArray: StringArray; const aTableRequestInfoArray: TableRequestInfoArray): Binary;
+var
+ i, j, x, n,k: integer;
+ lParamNames: array of string;
+ lParamValues: array of Variant;
+ lOptions: TDAWriteOptions;
+ lAllow: boolean;
+ lDataSet: IDADataSet;
+ lEditableDataset: IDAEditableDataset;
+ lHasTransaction: boolean;
+ lMaxRecords: integer;
+ lDataTableRef: TDADataTableReference;
+ lDynSelectFields: array of string;
+ lDynSelectFields2: array of string;
+ lWhereClause, lProcessedWhereClause: WideString;
+ // lConnection: IDAConnection;
+ lTableName: String;
+ lDataTable: TDADataset;
+ lUnionTable: TDAUnionDataTable;
+ lAppendData: TDADataForAppend;
+ lMapping: TDAColumnMappingCollection;
+ lFilter: string;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.InternalFill
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (GetData)');
+
+ result := nil;
+ if not assigned(aTableNameArray) or (aTableNameArray.Count = 0) then exit;
+
+ if assigned(aTableRequestInfoArray) and (aTableNameArray.Count <> aTableRequestInfoArray.Count) then
+ raise Exception.Create('Number of items passed to aTableNameArray and aTableRequestInfoArray do not match.');
+
+ Check(True);
+
+ result := Binary.Create;
+ Result.CapacityIncrement := ServiceDataStreamer.BufferSize;
+ try
+ lHasTransaction := false;
+ try
+
+ ServiceDataStreamer.Initialize(result, aiWrite);
+ try
+ for i := 0 to (aTableNameArray.Count-1) do begin
+
+ lTableName := UTF8ToString(aTableNameArray[i]);
+ CheckUTF8Decode(aTableNameArray[i], lTableName);
+ if ServiceSchema <> nil then lDataTable := ServiceSchema.FindDataset(lTableName) else lDataTable:=nil;
+ lOptions := [woRows];
+ lMaxRecords := -1;
+ SetLength(lDynSelectFields,0);
+ lWhereClause := '';
+
+ if assigned(aTableRequestInfoArray) and assigned(aTableRequestInfoArray[i]) then with aTableRequestInfoArray[i] do begin
+ SetLength(lParamNames, Parameters.Count);
+ SetLength(lParamValues, Parameters.Count);
+ for j := 0 to (Parameters.Count-1) do begin
+ lParamNames[j] := UTF8ToString(Parameters[j].Name);
+ CheckUTF8Decode(Parameters[j].Name, lParamNames[j]);
+ lParamValues[j] := Parameters[j].Value;
+ end;
+
+ if IncludeSchema then lOptions := lOptions+[woSchema];
+ lMaxRecords := MaxRecords;
+
+ // v5 TableRequestInfo
+ if aTableRequestInfoArray[i] is TableRequestInfoV5 then
+ with TableRequestInfoV5(aTableRequestInfoArray[i]) do begin
+ if assigned(DynamicSelectFieldNames) then begin
+ if AllowDynamicSelect then begin
+ SetLength(lDynSelectFields,DynamicSelectFieldNames.Count);
+ for j := 0 to DynamicSelectFieldNames.Count-1 do begin
+ CheckUTF8Decode(DynamicSelectFieldNames[j], UTF8ToString(DynamicSelectFieldNames[j]));
+ lDynSelectFields[j] := Trim(UTF8ToString(DynamicSelectFieldNames[j]));
+ end;
+ if DynamicSelectFieldNames.Count > 0 then lOptions := lOptions+[woSchema];
+ end else begin
+ raise EDAException.Create('DynamicSelect support has been disabled (GetData)');
+ end;
+ end;
+ if assigned(TableRequestInfoV5(aTableRequestInfoArray[i]).WhereClause) then begin
+ if AllowDynamicWhere then
+ lWhereClause := WhereClause.XML
+ else
+ raise EDAException.Create('DynamicWhere support has been disabled (GetData)');
+ end;
+ end;
+ end;
+
+ if (fExportedDataTables.Count > 0) and Assigned(fExportedDataTables.FindByName(lTableName)) then begin
+ // lConnection := nil;
+ end
+ else begin
+ Check();
+ //lConnection := GetConnectionForObject(aTableNameArray[i]);
+ end;
+
+ lAllow := true;
+ if assigned(fGetDatasetDataValidation) then fGetDatasetDataValidation(self, {l}Connection, lTableName, lParamNames, lParamValues, ServiceSchema, lAllow);
+ if not lAllow then raise EDADatasetNotAccessible.CreateFmt(err_DatasetNotAccessible, [lTableName]);
+
+ lDataSet := nil;
+ if (fExportedDataTables.Count > 0) then begin
+ lDataTableRef := fExportedDataTables.FindByName(lTableName);
+ if assigned(lDataTableRef) then lDataSet := lDataTableRef.Dataset;
+ end;
+
+ if not assigned(lDataSet) then begin
+
+ // Create transaction, if needed
+ if not lHasTransaction then begin
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then begin
+ Connection.BeginTransaction;
+ lHasTransaction := true;
+ end;
+ end;
+
+ lDataTable := ServiceSchema.FindDataset(lTableName);
+
+ { Unions }
+ if lDataTable is TDAUnionDataTable then begin
+
+ if (aTableRequestInfoArray <> nil) then begin
+ lFilter:=UTF8ToString(aTableRequestInfoArray[i].UserFilter);
+ CheckUTF8Decode(aTableRequestInfoArray[i].UserFilter,lFilter);
+ if (Trim(lFilter)<>'') then
+ raise EDAException.Create('Passing of clear text WHERE clauses is not supported for UNIONS (GetData)');
+ end;
+ lUnionTable := lDataTable as TDAUnionDataTable;
+ lAppendData := ServiceDataStreamer.BeginWriteDataset({Source}nil, {Schema}lDataTable, lOptions, lMaxRecords, lDynSelectFields);
+ if not (woRows in lOptions) then Continue;
+
+ for x := 0 to lUnionTable.SourceTables.Count - 1 do begin
+ lTableName := lUnionTable.SourceTables[x].Name;
+
+ // Check is source table exists in schema.
+ if (not Assigned(ServiceSchema.FindDataset(lTableName))) then
+ raise EDAException.CreateFmt('Source table %s doesn''t exist in schema.', [lTableName]);
+
+ // Do column remapping for DynFields names
+ lMapping := lUnionTable.SourceTables[x].ColumnMappings;
+ SetLength(lDynSelectFields2, Length(lDynSelectFields));
+ for n := Low(lDynSelectFields) to High(lDynSelectFields) do begin
+ if (lDynSelectFields[n]) = def_SourceTableFieldName then
+ lDynSelectFields2[n] := lDynSelectFields[n]
+ else
+ lDynSelectFields2[n] := lMapping.MappingByDatasetField(lDynSelectFields[n]).TableField;
+ end;
+
+ // try to predict do we need dynamic where on this source table or not.
+ lProcessedWhereClause := lWhereClause;
+ if not ProcessDAWhereForUnions(x, lProcessedWhereClause) then Continue;
+
+ lDataSet := ServiceSchema.NewUnionItemDataset(
+ GetConnectionForObject(lTableName),
+ lTableName,
+ lParamNames,
+ lParamValues,
+ lDynSelectFields2,
+ lProcessedWhereClause,
+ lMapping
+ );
+
+ ServiceDataStreamer.WriteDatasetData(lDataSet, lAppendData, x);
+ // Keeping track of maxrecords
+ if ((lMaxRecords <> -1) and (lAppendData.RecordCount >= lMaxRecords)) then Break;
+ end;
+ ServiceDataStreamer.EndWriteDataset(lAppendData);
+ end
+ { Joins }
+ else if lDataTable is TDAJoinDataTable then begin
+ raise EDAException.Create('TODO: Joined Data Tables are not implemented in this release, yet.');
+ end
+ { Plain Data Tables }
+ else begin
+
+ lDataSet := ServiceSchema.NewDataset(GetConnectionForObject(lTableName), lTableName, lParamNames, lParamValues, lDynSelectFields, lWhereClause, False);
+
+ if (woSchema in lOptions) and Assigned(fBeforeGetDatasetSchema) then fBeforeGetDatasetSchema(self, lDataset);
+ if (woRows in lOptions) and Assigned(fBeforeGetDatasetData) then fBeforeGetDatasetData(self, lDataset, (woSchema in lOptions), lMaxRecords);
+
+ if (aTableRequestInfoArray <> nil) then begin
+ lFilter:=UTF8ToString(aTableRequestInfoArray[i].UserFilter);
+ CheckUTF8Decode(aTableRequestInfoArray[i].UserFilter,lFilter);
+ if (Trim(lFilter)<>'') then begin
+ if not AllowWhereSQL then raise Exception.Create('Passing of clear text WHERE clauses has been disabled (GetData)');
+ lDataSet.Where.AddText(lFilter);
+ for k := 0 to High(lParamValues) do
+ lDataSet.ParamByName(lParamNames[k]).Value := lParamValues[k];
+ end;
+ end;
+ lDataSet.Open;
+
+ ServiceDataStreamer.WriteDataset(lDataset, lOptions, lMaxRecords,lDynSelectFields);
+
+ if (woRows in lOptions) and Assigned(fAfterGetDatasetData) then fAfterGetDatasetData(self, lDataset, (woSchema in lOptions), lMaxRecords);
+ if (woSchema in lOptions) and Assigned(fAfterGetDatasetSchema) then fAfterGetDatasetSchema(self, lDataset);
+
+ end;
+
+ end
+ { ExportedDataTables }
+ else begin
+ lFilter:=UTF8ToString(aTableRequestInfoArray[i].UserFilter);
+ CheckUTF8Decode(aTableRequestInfoArray[i].UserFilter,lFilter);
+ if (Trim(lFilter)<>'') then
+ raise EDAException.Create('WHERE clauses are not supported on data from ExportedDataTables.');
+
+ if (woSchema in lOptions) and Assigned(fBeforeGetDatasetSchema) then fBeforeGetDatasetSchema(self, lDataset);
+ if (woRows in lOptions) and Assigned(fBeforeGetDatasetData) then fBeforeGetDatasetData(self, lDataset, (woSchema in lOptions), lMaxRecords);
+
+ if lDataSet.Active and (lMaxRecords = -1) then begin
+ if lDataSet.QueryInterface(IDAEditableDataset,lEditableDataset) = s_ok then
+ lEditableDataset.First
+ else
+ lDataSet.Close;
+ end;
+
+ if not lDataSet.Active then lDataSet.Open;
+ ServiceDataStreamer.WriteDataset(lDataset, lOptions, lMaxRecords,lDynSelectFields);
+
+ if (woRows in lOptions) and Assigned(fAfterGetDatasetData) then fAfterGetDatasetData(self, lDataset, (woSchema in lOptions), lMaxRecords);
+ if (woSchema in lOptions) and Assigned(fAfterGetDatasetSchema) then fAfterGetDatasetSchema(self, lDataset);
+ end;
+
+ if assigned(lDataTable) and not (lDataTable.IsPublic) then
+ raise EDAException.Create(lDataTable.Name +' is not accessible');
+
+ lDataSet := nil;
+ end; { for }
+
+ finally
+ ServiceDataStreamer.Finalize();
+ end;
+
+ if lHasTransaction and Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if lHasTransaction and Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+
+end;
+
+//TODO: needs cleaning!
+function TDataAbstractService.UnpackDeltas(const DeltaStream: Binary; DeltaStructList: TDADeltaStructList): TDADeltasModes;
+var
+ i, j: integer;
+ lDeltaName: string;
+ lBizProc: TDABusinessProcessor;
+ lDetails : TDADatasetRelationshipList;
+ lFound: boolean;
+ lStruct : TDADeltaStruct;
+ ltabRef: TDADataTableReference;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.UnpackDeltas
+
+ result := [];
+ Check(True);
+ // Reads the deltas.
+ ServiceDataStreamer.Initialize(DeltaStream, aiReadFromBeginning);
+ try
+ if (ServiceDataStreamer.DeltaCount = 0) then Exit;
+ for i := 0 to (ServiceDataStreamer.DeltaCount - 1) do begin
+ lDeltaName := ServiceDataStreamer.DeltaNames[i];
+ if (ExportedDataTables.Count >0) then begin
+ ltabRef := ExportedDataTables.FindByName(lDeltaName);
+ if Assigned(ltabRef) then begin
+ // for ExportedDataTables , BP=nil
+ lStruct := DeltaStructList.Add(NewDelta(lDeltaName), nil);
+ ServiceDataStreamer.ReadDelta(lDeltaName, lStruct.Delta);
+ Result:=Result+[dumExported];
+ Continue;
+ end;
+ end;
+ lFound := false;
+ { Tries to locate a user-defined business processor }
+ for j := 0 to (Self.ComponentCount - 1) do begin
+ if (Self.Components[j] is TDABusinessProcessor) then begin
+ lBizProc := TDABusinessProcessor(Self.Components[j]);
+ if SameText(lBizProc.ReferencedDataset, lDeltaName) and (lBizProc.Schema = fServiceSchema) then begin
+ lStruct := DeltaStructList.Add(NewDelta(lDeltaName), lBizProc);
+ ServiceDataStreamer.ReadDelta(lDeltaName, lStruct.Delta);
+ if ServiceDataStreamer.HasReducedDelta then begin
+ if (lBizProc.InsertCommandName <> '') or
+ (lBizProc.DeleteCommandName <> '') or
+ (lBizProc.UpdateCommandName <> '') or
+ ([poAutoGenerateInsert,poAutoGenerateUpdate,poAutoGenerateDelete]*lBizProc.ProcessorOptions <>[poAutoGenerateInsert,poAutoGenerateUpdate,poAutoGenerateDelete]) then
+ raise Exception.Create('SendReducedDelta option is incompatible with '+lBizProc.Name+' settings');
+ end;
+ lFound := true;
+ Break;
+ end;
+ end;
+ end;
+
+ { Either creates one or aborts raising an exception }
+ if not lFound then begin
+ if not AutoCreateBusinessProcessors then
+ raise Exception.CreateFmt(err_DARDMCannotFindProxessorForDelta, [lDeltaName]);
+
+ //ToDo: this will never get freed, until the DM frees?
+ lBizProc := TDABusinessProcessor.Create(self);
+ lBizProc.ReferencedDataset := lDeltaName;
+ lBizProc.Schema := ServiceSchema;
+ lBizProc.RaiseExceptionAtError := not fReturnUpdateFailureDelta;
+ if Assigned(fOnBusinessProcessorAutoCreated) then fOnBusinessProcessorAutoCreated(Self, lBizProc);
+
+ lStruct := DeltaStructList.Add(NewDelta(lDeltaName), lBizProc);
+ ServiceDataStreamer.ReadDelta(lDeltaName, lStruct.Delta);
+
+ end;
+
+ Result:=Result+[dumStandard];
+ end;
+ fHasReducedDelta := ServiceDataStreamer.HasReducedDelta;
+ if not (dumStandard in Result) then exit; // nothing to process
+ Check;
+ { Sets the master/detail relationships }
+ if (ServiceSchema.RelationShips.Count>0) then begin
+
+ lDetails := TDADatasetRelationshipList.Create;
+ try
+ for i := 0 to DeltaStructList.Count-1 do begin
+ ServiceSchema.RelationShips.GetDetails(DeltaStructList[i].BusinessProcessor.ReferencedDataset, lDetails);
+ if (lDetails.Count=0) then Continue;
+
+ { Prepares an array with the references to the detail deltas that will be used later on to adjust
+ autoincs, etc. }
+ for j := 0 to lDetails.Count-1 do begin
+ lStruct := DeltaStructList.FindStruct(lDetails[j].DetailDatasetName);
+ if assigned(lStruct) then begin
+ DeltaStructList[i].DetailDeltas.Add(lStruct.Delta);
+ DeltaStructList[i].RelationShips.Add(lDetails[j]);
+ end;
+ end;
+ end;
+ finally
+ lDetails.Free;
+ end;
+
+ end;
+ finally
+ ServiceDataStreamer.Finalize;
+ end;
+end;
+
+function TDataAbstractService.UpdateData(const aDelta: Binary): Binary;
+var
+ lProcessedDeltas: TStringList;
+ lDeltaStructs: TDADeltaStructList;
+ lStruct: TDADeltaStruct;
+ lDs: TDADataset;
+ lDoRaise: boolean;
+ i,j: integer;
+ modes: TDADeltasModes;
+ oldDeltaMode: Boolean;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.DoUpdateData
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (UpdateData)');
+
+ if not AllowUpdates then
+ raise Exception.Create('Data updates have been disabled (UpdateData)');
+
+ result := nil;
+ fHasReducedDelta := False;
+
+ lDeltaStructs := TDADeltaStructList.Create;
+ try
+
+ try
+ modes:= UnpackDeltas(aDelta, lDeltaStructs);
+ if modes = [] then exit;
+
+ if dumStandard in modes then begin
+ Check;
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ end;
+ if Assigned(fBeforeProcessDeltas) then fBeforeProcessDeltas(Self, lDeltaStructs);
+
+ for i := 0 to lDeltaStructs.Count-1 do begin
+ if ServiceSchema <> nil then
+ lDs := ServiceSchema.FindDataset(lDeltaStructs[i].Delta.LogicalName)
+ else
+ lDs := nil;
+ if lDs <> nil then begin
+ if not lDs.IsPublic then
+ raise EDAException.Create(lDs.Name+' is not accessible');
+ if lDs.ReadOnly then
+ raise EDAException.Create(lDs.Name+' is read-only');
+ end;
+ end;
+ if dumExported in modes then
+ // Processes the delta for exported tables (BP=nil)
+ for i := 0 to lDeltaStructs.Count-1 do begin
+ if lDeltaStructs[i].BusinessProcessor = nil then
+ ExportedDataTables_MergeDelta(lDeltaStructs[i].Delta);
+ end;
+ if dumStandard in modes then begin
+ if (ServiceSchema.UpdateRules.Count = 0) and ProcessDeltasWithoutUpdateRules then begin
+
+ // Processes them in order, from first to last delta sent
+ for i := 0 to lDeltaStructs.Count-1 do
+ if lDeltaStructs[i].BusinessProcessor <> nil then begin
+ oldDeltaMode:=lDeltaStructs[i].BusinessProcessor.HasReducedDelta;
+ try
+ lDeltaStructs[i].BusinessProcessor.HasReducedDelta:=fHasReducedDelta;
+ // TODO: Handle GetConnectionForObject() for 'Rosetta', UNIONS and JOINS
+ lDeltaStructs[i].BusinessProcessor.ProcessDelta(GetConnectionForObject(lDeltaStructs[i].BusinessProcessor.ReferencedDataset), lDeltaStructs[i].Delta, AllChanges, lDeltaStructs[i]);
+ finally
+ lDeltaStructs[i].BusinessProcessor.HasReducedDelta:=oldDeltaMode;
+ end;
+
+ with lDeltaStructs[i] do
+ for j := 0 to (DetailDeltas.Count-1) do
+ BusinessProcessor.SynchronizeAutoIncs(Delta, DetailDeltas[j], RelationShips[j]);
+ end;
+ end
+ else begin
+ lProcessedDeltas := TStringList.Create;
+ try
+
+ for i := 0 to (ServiceSchema.UpdateRules.Count-1) do begin
+ // Processes them in the order defined in the schema
+ lStruct := lDeltaStructs.FindStruct(ServiceSchema.UpdateRules[i].DatasetName);
+ if assigned(lStruct) then begin
+ if lStruct.BusinessProcessor = nil then Continue;
+ // Adds the dataset name to the list of processed deltas. Those that don't have update rules will be processed later
+ lProcessedDeltas.Add(lStruct.Delta.LogicalName);
+
+ // Processes the delta
+ oldDeltaMode:=lStruct.BusinessProcessor.HasReducedDelta;
+ try
+ lStruct.BusinessProcessor.HasReducedDelta:=fHasReducedDelta;
+ // TODO: Handle GetConnectionForObject() for 'Rosetta', UNIONS and JOINS
+ lStruct.BusinessProcessor.ProcessDelta(GetConnectionForObject(lStruct.BusinessProcessor.ReferencedDataset), lStruct.Delta, ServiceSchema.UpdateRules[i].ChangeTypes,lStruct);
+ finally
+ lStruct.BusinessProcessor.HasReducedDelta:=oldDeltaMode;
+ end;
+
+ if (ctInsert in ServiceSchema.UpdateRules[i].ChangeTypes) then begin
+ for j := 0 to (lStruct.DetailDeltas.Count-1) do
+ lStruct.BusinessProcessor.SynchronizeAutoIncs(lStruct.Delta, lStruct.DetailDeltas[j], lStruct.RelationShips[j]);
+ end;
+ end;
+ end;
+
+ // Processes the deltas for which update rules were not defined
+ if (ProcessDeltasWithoutUpdateRules) then begin
+ for i := 0 to lDeltaStructs.Count-1 do begin
+ // Skips if already processed
+ if (lProcessedDeltas.IndexOf(lDeltaStructs[i].Delta.LogicalName)>=0) then Continue;
+
+ if lDeltaStructs[i].BusinessProcessor <> nil then begin
+ oldDeltaMode:=lDeltaStructs[i].BusinessProcessor.HasReducedDelta;
+ try
+ lDeltaStructs[i].BusinessProcessor.HasReducedDelta:=fHasReducedDelta;
+ lDeltaStructs[i].BusinessProcessor.ProcessDelta(GetConnectionForObject(lDeltaStructs[i].BusinessProcessor.ReferencedDataset), lDeltaStructs[i].Delta, AllChanges,lDeltaStructs[i]);
+ finally
+ lDeltaStructs[i].BusinessProcessor.HasReducedDelta:=oldDeltaMode;
+ end;
+
+ with lDeltaStructs[i] do
+ for j := 0 to (DetailDeltas.Count-1) do
+ BusinessProcessor.SynchronizeAutoIncs(Delta, DetailDeltas[j], RelationShips[j]);
+ end;
+ end;
+ end;
+
+ finally
+ lProcessedDeltas.Free;
+ end;
+ end;
+ end;
+
+ if Assigned(fAfterProcessDeltas) then fAfterProcessDeltas(Self, lDeltaStructs);
+
+ if dumStandard in modes then
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+
+ // Check for unhandled changes
+ for i := 0 to lDeltaStructs.Count-1 do begin
+ for j := 0 to lDeltaStructs[i].Delta.Count -1 do begin
+ if lDeltaStructs[i].Delta[j].Status = csPending then begin
+ lDeltaStructs[i].Delta[j].Status := csFailed;
+ lDeltaStructs[i].Delta[j].Message := 'Change was not processed';
+ end;
+ end;
+ end;
+ result := Binary.Create;
+ oldDeltaMode:=ServiceDataStreamer.SendReducedDelta;
+ ServiceDataStreamer.Initialize(result, aiWrite);
+ try
+ if fHasReducedDelta then ServiceDataStreamer.SendReducedDelta:=True;
+ for i := 0 to lDeltaStructs.Count-1 do
+ ServiceDataStreamer.WriteDelta(lDeltaStructs[i].Delta);
+ finally
+ ServiceDataStreamer.Finalize;
+ ServiceDataStreamer.SendReducedDelta:=oldDeltaMode;
+ end;
+
+ except
+ on E:Exception do begin
+ lDoRaise := true;
+ try
+ if Assigned(fOnProcessDeltasError) then fOnProcessDeltasError(Self, lDeltaStructs, E, lDoRaise);
+ finally
+ if dumStandard in modes then
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ end;
+ if lDoRaise then raise;
+ end;
+ end;
+ finally
+ lDeltaStructs.Free;
+ end;
+end;
+
+function TDataAbstractService.ExecuteCommand(const aCommandName: Utf8String; const aParameterArray: DataParameterArray): Integer;
+var
+ j: integer;
+ lParamNames: array of string;
+ lParamValues: array of Variant;
+ lAllow: boolean;
+ lCommand: IDASQLCommand;
+ lCommandSchema: TDASQLCommand;
+ lConnection: IDAConnection;
+ lCommandName: string;
+begin
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (ExecuteCommand)');
+
+ if not AllowExecuteCommands then
+ raise Exception.Create('Execution of commands has been disabled (ExecuteCommand)');
+
+ SetLength(lParamNames, aParameterArray.Count);
+ SetLength(lParamValues, aParameterArray.Count);
+ for j := 0 to (aParameterArray.Count-1) do begin
+ lParamNames[j] := UTF8ToString(aParameterArray[j].Name);
+ CheckUTF8Decode(aParameterArray[j].Name,lParamNames[j]);
+ lParamValues[j] := aParameterArray[j].Value;
+ end;
+
+ lCommandName:=UTF8ToString(aCommandName);
+ CheckUTF8Decode(aCommandName,lCommandName);
+ lCommandSchema := ServiceSchema.Commands.SQLCommandByName(lCommandName);
+ if assigned(lCommandSchema) and not (lCommandSchema.IsPublic) then
+ raise EDAException.Create(lCommandSchema.Name +' is not accessible');
+
+
+ lAllow := true;
+ lConnection := GetConnectionForObject(lCommandName);
+ if assigned(fExecuteCommandValidation) then fExecuteCommandValidation(self, lConnection, lCommandName, lParamNames, lParamValues, ServiceSchema, lAllow);
+ if not lAllow then raise EDADatasetNotAccessible.CreateFmt(err_CommandNotAccessible, [lCommandName]);
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then lConnection.BeginTransaction;
+ try
+
+ lCommand := ServiceSchema.NewCommand(lConnection, lCommandName, lParamNames, lParamValues, false);
+ if Assigned(fBeforeExecutecommand) then fBeforeExecuteCommand(self, lCommand);
+ result := lCommand.Execute;
+ if assigned(fAfterExecutecommand) then fAfterExecuteCommand(self, lCommand, Result);
+
+ if lConnection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then lConnection.CommitTransaction;
+ except
+ if lConnection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then lConnection.RollbackTransaction;
+ raise;
+ end;
+end;
+
+{ IDataAbstractService: Direct SQL Access }
+
+function TDataAbstractService.SQLGetDataEx(const aSQLText: Utf8String;
+ const aIncludeSchema: Boolean; const aMaxRecords: Integer;
+ const aDynamicWhereXML: Widestring): Binary;
+var
+ lOptions: TDAWriteOptions;
+ lDataSet: IDADataSet;
+ lAllow: boolean;
+ lSQLText: string;
+begin
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (SQLGetData)');
+
+ if not AllowExecuteSQL then
+ raise Exception.Create('Execution of SQL has been disabled (SQLGetData)');
+
+ if assigned(fHETConnection) then
+ raise Exception.Create('Execution of SQL isnot supported for HET Connections');
+
+ result := nil;
+ lSQLText := UTF8ToString(aSQLText);
+ CheckUTF8Decode(aSQLText,lSQLText);
+ if lSQLText = '' then exit;
+
+ Check();
+
+ lAllow := true;
+ if assigned(fSQLValidation) then fSQLValidation(self, Connection, lSQLText, [], [], lAllow);
+ if not lAllow then raise EDADatasetNotAccessible.Create(err_SQLNotPermitted);
+
+ result := Binary.Create;
+ Result.CapacityIncrement := ServiceDataStreamer.BufferSize;
+ try
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ try
+ ServiceDataStreamer.Initialize(result, aiWrite);
+ try
+
+ lOptions := [woRows];
+ if aIncludeSchema then lOptions := lOptions+[woSchema];
+
+ lDataSet := Connection.NewDataset(lSQLText,'SQLResult');
+ try
+ if aDynamicWhereXML <> '' then lDataSet.DynamicWhere.Expression := lDataSet.DynamicWhere.XMLToExpression(aDynamicWhereXML);
+ if (woSchema in lOptions) and Assigned(fBeforeGetDatasetSchema) then fBeforeGetDatasetSchema(self, lDataset);
+ if (woRows in lOptions) and Assigned(fBeforeGetDatasetData) then fBeforeGetDatasetData(self, lDataset, (woSchema in lOptions), aMaxRecords);
+
+ lDataSet.Open();
+
+ ServiceDataStreamer.WriteDataset(lDataset, lOptions, aMaxRecords);
+
+ if (woRows in lOptions) and Assigned(fAfterGetDatasetData) then fAfterGetDatasetData(self, lDataset, (woSchema in lOptions), aMaxRecords);
+ if (woSchema in lOptions) and Assigned(fAfterGetDatasetSchema) then fAfterGetDatasetSchema(self, lDataset);
+
+ finally
+ lDataSet := nil;
+ end;
+
+ finally
+ ServiceDataStreamer.Finalize();
+ end;
+
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+
+ except
+ FreeAndNIL(result);
+ raise;
+ end;
+
+end;
+
+function TDataAbstractService.SQLExecuteCommandEx(const aSQLText: Utf8String; const aDynamicWhereXML: Widestring): Integer;
+var
+ lAllow: boolean;
+ lSQLText: string;
+begin
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (SQLExecuteCommand)');
+
+ if not AllowExecuteSQL then
+ raise Exception.Create('Execution of SQL has been disabled (SQLExecuteCommand)');
+
+ if assigned(fHETConnection) then
+ raise Exception.Create('Execution of SQL isnot supported for HET Connections');
+
+ Check();
+ lSQLText := UTF8ToString(aSQLText);
+ CheckUTF8Decode(aSQLText,lSQLText);
+ lAllow := true;
+ if assigned(fSQLValidation) then fSQLValidation(self, Connection, lSQLText, [], [], lAllow);
+ if not lAllow then raise EDADatasetNotAccessible.CreateFmt(err_SQLNotPermitted, []);
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then Connection.BeginTransaction;
+ try
+ with Connection.NewCommand(lSQLText, stSQL) do begin
+ if aDynamicWhereXML <> '' then DynamicWhere.Expression := DynamicWhere.XMLToExpression(aDynamicWhereXML);
+ result := Execute;
+ end;
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then Connection.CommitTransaction;
+ except
+ if Connection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then Connection.RollbackTransaction;
+ raise;
+ end;
+end;
+
+{ Properties }
+
+procedure TDataAbstractService.SetExportedDataTables(const Value: TDADataTableReferenceCollection);
+begin
+ fExportedDataTables.Assign(Value);
+end;
+
+procedure TDataAbstractService.SetServiceDataStreamer(const Value: TDADataStreamer);
+begin
+ fServiceDataStreamer := Value;
+ if (fServiceDataStreamer <> nil) then
+ fServiceDataStreamer.FreeNotification(Self);
+end;
+
+procedure TDataAbstractService.SetServiceSchema(const Value: TDASchema);
+begin
+ fServiceSchema := Value;
+
+ if assigned(fServiceSchema) then
+ fServiceSchema.FreeNotification(self);
+end;
+
+{ Connections }
+
+function TDataAbstractService.GetConnection: IDAConnection;
+var
+ lConnectionName: string;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.GetConnection
+ inherited;
+ result := fConnection;
+ if assigned(fConnection) then exit;
+ if (csDesigning in ComponentState) then exit;
+
+ if AcquireConnection then try
+
+ if (fServiceSchema = nil) or (fServiceSchema.ConnectionManager = nil) then raise Exception.Create(err_DARDMInvalidSchema);
+
+ lConnectionName := ConnectionName;
+ if Assigned(fBeforeAcquireConnection) then fBeforeAcquireConnection(Self, lConnectionName);
+
+ result := ServiceSchema.ConnectionManager.NewConnection(lConnectionName);
+ Connection := result;
+ if Assigned(fAfterAcquireConnection) then fAfterAcquireConnection(Self, lConnectionName, result);
+
+ except
+ on E: Exception do begin
+ if Assigned(fOnAcquireConnectionFailure) then fOnAcquireConnectionFailure(Self, lConnectionName, E);
+ raise;
+ end;
+ end;
+end;
+
+{$WARN SYMBOL_DEPRECATED OFF}
+procedure TDataAbstractService.SetConnection(aConnection: IDAConnection);
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.SetConnection
+
+ if fConnection <> aConnection then begin
+ fConnection := aConnection;
+ if not Supports(fConnection, IDAHETConnection, fHETConnection) then fHETConnection := nil;
+ end;
+end;
+{$WARN SYMBOL_DEPRECATED ON}
+
+function TDataAbstractService.GetConnectionForObject(const aName: string): IDAConnection;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.GetConnectionForObject
+
+ result := Connection; // forces acquisition of Connection
+ if assigned(fHETConnection) and (ServiceSchema.UnionDataTables.FindItem(aName) = nil) then
+ result := fHETConnection.GetConnectionForObject(aName)
+end;
+
+procedure TDataAbstractService.DoOnDeactivate(aClientID: TGUID);
+begin
+ inherited;
+ if (csDesigning in ComponentState) then Exit;
+
+ ReleaseConnection();
+end;
+
+procedure TDataAbstractService.ReleaseConnection;
+var
+ lConnectionName: string;
+begin
+ if assigned(fConnection) then begin
+ lConnectionName := fConnection.Name;
+ if Assigned(fBeforeReleaseConnection) then fBeforeReleaseConnection(Self, lConnectionName, fConnection);
+ Connection := nil;
+ if Assigned(fAfterReleaseConnection) then fAfterReleaseConnection(Self, lConnectionName);
+ end;
+end;
+
+procedure TDataAbstractService.Check(CheckOnlyDataStreamer:Boolean = false);
+begin
+ if not CheckOnlyDataStreamer then begin
+ if not (Assigned(Connection) or AcquireConnection) then
+ raise EROException.Create('AcquireConnection is not set and there is no connection available');
+ if not Assigned(ServiceSchema) then
+ raise Exception.Create('ServiceSchema property is not assigned.');
+ end;
+ if not Assigned(ServiceDataStreamer) then
+ raise EROException.Create('DataStreamer must be assigned.');
+end;
+
+function TDataAbstractService.ExecuteCommandEx(const aCommandName: Utf8String;
+ const aInputParameters: DataParameterArray;
+ out aOutputParameters: DataParameterArray): Integer;
+var
+ j: integer;
+ lParamNames: array of string;
+ lParamValues: array of Variant;
+ lAllow: boolean;
+ lCommand: IDASQLCommand;
+ lCommandSchema: TDASQLCommand;
+ lConnection: IDAConnection;
+ lCommandName: string;
+begin
+ if not AllowDataAccess then
+ raise Exception.Create('Data access has been disabled (ExecuteCommand)');
+
+ if not AllowExecuteCommands then
+ raise Exception.Create('Execution of commands has been disabled (ExecuteCommand)');
+
+ lCommandName:= UTF8ToString(aCommandName);
+ CheckUTF8Decode(aCommandName,lCommandName);
+ SetLength(lParamNames, aInputParameters.Count);
+ SetLength(lParamValues, aInputParameters.Count);
+ for j := 0 to (aInputParameters.Count-1) do begin
+ lParamNames[j] := UTF8ToString(aInputParameters[j].Name);
+ CheckUTF8Decode(aInputParameters[j].Name,lParamNames[j]);
+ lParamValues[j] := aInputParameters[j].Value;
+ end;
+
+ lCommandSchema := ServiceSchema.Commands.SQLCommandByName(lCommandName);
+ if assigned(lCommandSchema) and not (lCommandSchema.IsPublic) then
+ raise EDAException.Create(lCommandSchema.Name +' is not accessible');
+
+
+ lAllow := true;
+ lConnection := GetConnectionForObject(lCommandName);
+ if assigned(fExecuteCommandValidation) then fExecuteCommandValidation(self, lConnection, lCommandName, lParamNames, lParamValues, ServiceSchema, lAllow);
+ if not lAllow then raise EDADatasetNotAccessible.CreateFmt(err_CommandNotAccessible, [lCommandName]);
+
+ if TriggerTransactionEvent(fOnUpdateDataBeginTransaction) then lConnection.BeginTransaction;
+ try
+
+ lCommand := ServiceSchema.NewCommand(lConnection, lCommandName, lParamNames, lParamValues, false);
+ if Assigned(fBeforeExecutecommand) then fBeforeExecuteCommand(self, lCommand);
+ result := lCommand.Execute;
+ if assigned(fAfterExecutecommand) then fAfterExecuteCommand(self, lCommand, Result);
+
+ aOutputParameters := DataParameterArray.Create;
+ for j := 0 to lCommand.Params.Count -1 do begin
+ if (lCommand.Params[j].ParamType <> daptUnknown) and (lCommand.Params[j].ParamType <> daptInput) then begin
+ with aOutputParameters.Add do begin
+ Name := AnsiToUtf8(lCommand.Params[j].Name);
+ Value := lCommand.Params[j].Value;
+ end;
+ end;
+ end;
+ if lConnection.InTransaction and TriggerTransactionEvent(fOnUpdateDataCommitTransaction) then lConnection.CommitTransaction;
+ except
+ if lConnection.InTransaction and TriggerTransactionEvent(fOnUpdateDataRollBackTransaction) then lConnection.RollbackTransaction;
+ raise;
+ end;
+end;
+
+type
+ TMyDatasetCollection = class(TDADatasetCollection)
+ end;
+
+function TDataAbstractService.GetDatasetScripts(const DatasetNames: Utf8String): Utf8String;
+var names : TStringList;
+ i : integer;
+ ds : TDADataset;
+ lResult: WideString;
+ lLogicalName: string;
+begin
+ // WARNING: any changes should be duplicated into TDALocalDataAdapter.FillScripts
+ lresult := '';
+ names := TStringList.Create;
+ try
+ names.CommaText :=UTF8ToString(DatasetNames);
+ CheckUTF8Decode(DatasetNames,names.CommaText);
+ for i := 0 to (names.Count-1) do begin
+ // scripts for externaltables is not allowed
+ lLogicalName := names[i];
+ if fExportedDataTables.FindByName(lLogicalName) <> nil then continue;
+ ds := ServiceSchema.Datasets.FindDatasetByName(lLogicalName);
+ if not assigned(ds) then
+ ds := ServiceSchema.UnionDataTables.FindUnionDataTableByName(lLogicalName);
+ if not assigned(ds) then
+ ds := ServiceSchema.JoinDataTables.FindJoinTableByName(lLogicalName);
+ with TMyDatasetCollection(ServiceSchema.Datasets) do
+ if ds = nil then EDAException.CreateFmt(err_CannotFindItem, [ItemName, lLogicalName, ClassName]);
+
+ lresult := lresult+Format('<%s Language="%s">%s>', [
+ lLogicalName,
+ GetEnumName(TypeInfo(TROSEScriptLanguage), Ord(ds.BusinessRulesClient.ScriptLanguage)),
+ ds.BusinessRulesClient.Script,
+ lLogicalName]);
+ end;
+
+ result := UTF8Encode(''+lresult+'');
+ finally
+ FreeAndNIL(names);
+ end;
+end;
+
+procedure TDataAbstractService.ExportedDataTables_MergeDelta(ADelta: IDADelta);
+var
+ i, k, x: integer;
+ oldval, newval, val : Variant;
+ fld : TDAField;
+ pkfields : string;
+ pkfields1: array of string;
+ insertfields: array of string;
+ keyvals, insertvals : array of variant;
+ LDAEditableDataset:IDAEditableDataset;
+ ADataset: IDADataset;
+ pk_array: array of boolean;
+begin
+ // validated in UnpackDeltas
+ ADataset:=ExportedDataTables.FindByName(ADelta.LogicalName).Dataset;
+ SetLength(pk_array, ADelta.LoggedFieldCount);
+ for i := 0 to ADelta.LoggedFieldCount - 1 do
+ pk_array[i]:=False;
+
+ for i := 0 to ADelta.KeyFieldCount - 1 do begin
+ x := ADelta.IndexOfLoggedField(ADelta.KeyFieldNames[i]);
+ if x <> -1 then pk_array[x]:=True;
+ end;
+
+ SetLength(pkfields1, ADelta.KeyFieldCount);
+ for i := 0 to (ADelta.KeyFieldCount-1) do
+ pkfields1[i]:=ADelta.KeyFieldNames[i];
+ if ADelta.KeyFieldCount = 0 then
+ begin
+ SetLength(pkfields1, ADelta.LoggedFieldCount);
+ k:=-1;
+ for i := 0 to (ADelta.LoggedFieldCount-1) do begin
+ if ADelta.LoggedFieldTypes[i] in [datUnknown, datMemo, datBlob,datWideMemo] then Continue;
+ inc(k);
+ pkfields1[k]:=ADelta.LoggedFieldNames[i];
+ end;
+ SetLength(pkfields1,k+1);
+ end;
+ SetLength(keyvals, Length(pkfields1));
+ pkfields := '';
+ For i:=0 to Length(pkfields1) - 1 do
+ pkfields:=pkfields+pkfields1[i]+';';
+ pkfields := Copy(pkfields, 1, Length(pkfields)-1);
+
+ if (ADelta.Count>0) then begin
+ for i := (ADelta.Count-1) downto 0 do begin
+ for k := 0 to Length(pkfields1)-1 do begin
+ val := ADelta[i].OldValueByName[pkfields1[k]];
+ keyvals[k] := val;
+ end;
+ if fHasReducedDelta and (ADelta.KeyFieldCount = 0) then begin
+ SetLength(pkfields1, ADelta.LoggedFieldCount);
+ k:=-1;
+ for x := 0 to (ADelta.LoggedFieldCount-1) do begin
+ if ADelta.LoggedFieldTypes[x] in [datUnknown, datMemo, datBlob,datWideMemo] then Continue;
+ pkfields:=ADelta.LoggedFieldNames[x];
+ oldval:=ADelta[i].OldValueByName[pkfields];
+ if ROVariantsEqual(oldval,ADelta[i].NewValueByName[pkfields]) and (VarIsNull(oldval) or (VarIsEmpty(oldval))) then Continue;
+ inc(k);
+ pkfields1[k]:=ADelta.LoggedFieldNames[x];
+ end;
+ SetLength(pkfields1,k+1);
+ SetLength(keyvals,k+1);
+ for k := 0 to Length(pkfields1)-1 do begin
+ val := ADelta[i].OldValueByName[pkfields1[k]];
+ keyvals[k] := val;
+ end;
+ pkfields := '';
+ For x:=0 to Length(pkfields1) - 1 do
+ pkfields:=pkfields+pkfields1[x]+';';
+ pkfields := Copy(pkfields, 1, Length(pkfields)-1);
+ end;
+ if ADataset.QueryInterface(StringToGUID('{D3E2147F-65B3-4D9D-8614-7270011FA7D5}'),LDAEditableDataset) <> 0 then exit;
+ LDAEditableDataset.Open;
+ LDAEditableDataset.First;
+ case ADelta[i].ChangeType of
+ ctDelete: begin
+ // Locates the original record
+ if Length(keyvals)=1 then begin
+ if not Adataset.Locate(pkfields, keyvals[0], []) then Continue;
+ end
+ else begin
+ if not Adataset.Locate(pkfields, keyvals, []) then Continue;
+ end;
+ LDAEditableDataset.Delete;
+ end;
+ ctInsert: begin
+ // fHasReducedDelta don't work in this case
+ // old values = Unassigned
+ // new Values = Null
+ SetLength(insertFields, ADelta.LoggedFieldCount);
+ SetLength(insertvals, ADelta.LoggedFieldCount);
+ for x := 0 to (ADelta.LoggedFieldCount-1) do begin
+ insertfields[x] := ADelta.LoggedFieldNames[x];
+ insertvals[x] := ADelta[i].NewValueByName[ADelta.LoggedFieldNames[x]];
+ end;
+ LDAEditableDataset.AddRecord(insertfields,insertvals);
+ end;
+ ctUpdate: begin
+ // Locates the original record
+ if Length(keyvals)=1 then begin
+ if not Adataset.Locate(pkfields, keyvals[0], []) then Continue;
+ end
+ else begin
+ if not Adataset.Locate(pkfields, keyvals, []) then Continue;
+ end;
+ LDAEditableDataset.Edit;
+ for x := 0 to (ADelta.LoggedFieldCount-1) do begin
+ fld := Adataset.FieldByName(ADelta.LoggedFieldNames[x]);
+ newval := ADelta[i].NewValueByName[fld.Name];
+ oldval := ADelta[i].OldValueByName[fld.Name];
+ if fHasReducedDelta and (ROVariantsEqual(newval, oldval)) then Continue;
+ fld.Value:=newval;
+{ if fld.ServerAutoRefresh or (not VarIsArray(newVal) and (newval<>oldval)) then begin
+ VariantToFieldValue(newval, fld);
+ end;
+}
+ end;
+ LDAEditableDataset.Post;
+ end;
+ end;
+ // Removes this merged change
+ ADelta.Delete(i);
+ end;
+ end
+end;
+
+procedure TDataAbstractService.RegisterForDataChangeNotification(
+ const aTableName: Utf8String);
+begin
+{ TODO : todo }
+end;
+
+procedure TDataAbstractService.UnregisterForDataChangeNotification(
+ const aTableName: Utf8String);
+begin
+{ TODO : todo }
+end;
+
+function TDataAbstractService.SQLExecuteCommand(const aSQLText: Utf8String): Integer;
+begin
+ Result:= SQLExecuteCommandEx(aSQLText,'');
+end;
+
+function TDataAbstractService.SQLGetData(const aSQLText: Utf8String; const aIncludeSchema: Boolean; const aMaxRecords: Integer): Binary;
+begin
+ Result:= SQLGetDataEx(aSQLText, aIncludeSchema, aMaxRecords, '');
+end;
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.bdsproj
new file mode 100644
index 0000000..4c974b2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.bdsproj
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_Core_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Core Library
+ False
+
+
+
+ ..\Dcu\D10
+ ..\Dcu\D10
+ ..\Dcu\D10
+
+
+ DESIGNTIME
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 0
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 0.0.0.0
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.cfg
new file mode 100644
index 0000000..11c667c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.cfg
@@ -0,0 +1,48 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\Dcu\D10"
+-LE"..\Dcu\D10"
+-LN"..\Dcu\D10"
+-DDESIGNTIME
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-SYMBOL_EXPERIMENTAL
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNIT_EXPERIMENTAL
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.dpk
new file mode 100644
index 0000000..1a90ff0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.dpk
@@ -0,0 +1,116 @@
+package DataAbstract_Core_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Core Library'}
+{$IMPLICITBUILD OFF}
+{$DEFINE DESIGNTIME}
+
+requires
+ RemObjects_Core_D10,
+ rtl,
+ vcl,
+ adortl,
+ dbrtl,
+ dsnap,
+ vcldb;
+
+contains
+ uDAInterfaces in 'uDAInterfaces.pas',
+ uDAInterfacesEx in 'uDAInterfacesEx.pas',
+ uDAClasses in 'uDAClasses.pas',
+ uDAHelpers in 'uDAHelpers.pas',
+ uDAEngine in 'uDAEngine.pas',
+ uDAUtils in 'uDAUtils.pas',
+ uDARes in 'uDARes.pas',
+ DataAbstract_Core_Reg in 'DataAbstract_Core_Reg.pas',
+ uDABinAdapter in 'uDABinAdapter.pas',
+ uDAXMLAdapter in 'uDAXMLAdapter.pas',
+ uDADriverManager in 'uDADriverManager.pas',
+ uDASupportClasses in 'uDASupportClasses.pas',
+ uDADataTable in 'uDADataTable.pas',
+ uDACDSDataTable in 'uDACDSDataTable.pas',
+ uDAADODataTable in 'uDAADODataTable.pas',
+ uDABusinessProcessor in 'uDABusinessProcessor.pas',
+ uDAIBInterfaces in 'uDAIBInterfaces.pas',
+ uDAOracleInterfaces in 'uDAOracleInterfaces.pas',
+ uDAADOInterfaces in 'uDAADOInterfaces.pas',
+ uDAMacroProcessors in 'uDAMacroProcessors.pas',
+ uDADBSessionManager in 'uDADBSessionManager.pas',
+ uDAMacros in 'uDAMacros.pas',
+ DALoginService_Impl in 'DALoginService_Impl.pas',
+ DARemoteService_Impl in 'DARemoteService_Impl.pas',
+ uDAXMLUtils in 'uDAXMLUtils.pas',
+ uDARegExpr in 'uDARegExpr.pas',
+ uDADriverInfo in 'uDADriverInfo.pas',
+ uDAPleaseWaitForm in 'uDAPleaseWaitForm.pas',
+ uDAClientDataModule in 'uDAClientDataModule.pas',
+ uDAScriptingProvider in 'uDAScriptingProvider.pas',
+ uDAServerLog in 'uDAServerLog.pas',
+ uDADatasetProvider in 'uDADatasetProvider.pas',
+ uDAPoweredByDataAbstractButton in 'uDAPoweredByDataAbstractButton.pas',
+ SimpleLoginService_Impl in 'SimpleLoginService_Impl.pas',
+ DataAbstract3_Intf in 'DataAbstract3_Intf.pas',
+ DataAbstract3_Invk in 'DataAbstract3_Invk.pas',
+ DataAbstract3_Async in 'DataAbstract3_Async.pas',
+ DataAbstractService_Impl in 'DataAbstractService_Impl.pas' {DataAbstractService: TRORemoteDataModule},
+ MultiDbLoginService_Impl in 'MultiDbLoginService_Impl.pas',
+ BaseLoginService_Impl in 'BaseLoginService_Impl.pas' {BaseLoginService: TRORemoteDataModule},
+ DataAbstract4_Invk in 'DataAbstract4_Invk.pas',
+ DataAbstract4_Intf in 'DataAbstract4_Intf.pas',
+ DataAbstract4_Async in 'DataAbstract4_Async.pas',
+ uDARemoteDataAdapter in 'uDARemoteDataAdapter.pas',
+ uDACache in 'uDACache.pas',
+ uDARemoteDataAdapterRequests in 'uDARemoteDataAdapterRequests.pas',
+ uDADataStreamer in 'uDADataStreamer.pas',
+ uDADelta in 'uDADelta.pas',
+ uDADesigntimeCall in 'uDADesigntimeCall.pas',
+ uDAExceptions in 'uDAExceptions.pas',
+ uDASQL92Interfaces in 'uDASQL92Interfaces.pas',
+ uDABin2DataStreamer in 'uDABin2DataStreamer.pas',
+ uDAMemDataset in 'uDAMemDataset.pas',
+ uDAMemDataTable in 'uDAMemDataTable.pas',
+ uDAReconcileDialog in 'uDAReconcileDialog.pas' {ReconcileDialogForm},
+ uDAReconcileDialogDetails in 'uDAReconcileDialogDetails.pas',
+ uDADatasetWrapper in 'uDADatasetWrapper.pas',
+ uDADataTableReferenceCollection in 'uDADataTableReferenceCollection.pas',
+ uDAMySQLInterfaces in 'uDAMySQLInterfaces.pas',
+ uDASQLiteInterfaces in 'uDASQLiteInterfaces.pas',
+ uDAExpressionEvaluator in 'uDAExpressionEvaluator.pas',
+ uDASQL92QueryBuilder in 'uDASQL92QueryBuilder.pas',
+ uDAWhere in 'uDAWhere.pas',
+ uDARemoteCommand in 'uDARemoteCommand.pas',
+ uDAPostgresInterfaces in 'uDAPostgresInterfaces.pas',
+ uDAElevateDBInterfaces in 'uDAElevateDBInterfaces.pas',
+ uDADB2Interfaces in 'uDADB2Interfaces.pas',
+ uDASybaseInterfaces in 'uDASybaseInterfaces.pas',
+ MultiDbLoginServiceV5_Impl in 'MultiDbLoginServiceV5_Impl.pas',
+ //.31
+ uDAHETDriver in 'uDAHETDriver.pas',
+ uDAHETConnections in 'uDAHETConnections.pas'
+ //
+ {$IFDEF USE_LOCALDATAADAPTER}
+ ,uDALocalDataAdapter in 'uDALocalDataAdapter.pas'
+ {$ENDIF}
+ ;
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dpk
new file mode 100644
index 0000000..0f8679d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dpk
@@ -0,0 +1,116 @@
+package DataAbstract_Core_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Core Library'}
+{$IMPLICITBUILD OFF}
+{$DEFINE DESIGNTIME}
+
+requires
+ RemObjects_Core_D11,
+ rtl,
+ vcl,
+ adortl,
+ dbrtl,
+ dsnap,
+ vcldb;
+
+contains
+ uDAInterfaces in 'uDAInterfaces.pas',
+ uDAInterfacesEx in 'uDAInterfacesEx.pas',
+ uDAClasses in 'uDAClasses.pas',
+ uDAHelpers in 'uDAHelpers.pas',
+ uDAEngine in 'uDAEngine.pas',
+ uDAUtils in 'uDAUtils.pas',
+ uDARes in 'uDARes.pas',
+ DataAbstract_Core_Reg in 'DataAbstract_Core_Reg.pas',
+ uDABinAdapter in 'uDABinAdapter.pas',
+ uDAXMLAdapter in 'uDAXMLAdapter.pas',
+ uDADriverManager in 'uDADriverManager.pas',
+ uDASupportClasses in 'uDASupportClasses.pas',
+ uDADataTable in 'uDADataTable.pas',
+ uDACDSDataTable in 'uDACDSDataTable.pas',
+ uDAADODataTable in 'uDAADODataTable.pas',
+ uDABusinessProcessor in 'uDABusinessProcessor.pas',
+ uDAIBInterfaces in 'uDAIBInterfaces.pas',
+ uDAOracleInterfaces in 'uDAOracleInterfaces.pas',
+ uDAADOInterfaces in 'uDAADOInterfaces.pas',
+ uDAMacroProcessors in 'uDAMacroProcessors.pas',
+ uDADBSessionManager in 'uDADBSessionManager.pas',
+ uDAMacros in 'uDAMacros.pas',
+ DALoginService_Impl in 'DALoginService_Impl.pas',
+ DARemoteService_Impl in 'DARemoteService_Impl.pas',
+ uDAXMLUtils in 'uDAXMLUtils.pas',
+ uDARegExpr in 'uDARegExpr.pas',
+ uDADriverInfo in 'uDADriverInfo.pas',
+ uDAPleaseWaitForm in 'uDAPleaseWaitForm.pas',
+ uDAClientDataModule in 'uDAClientDataModule.pas',
+ uDAScriptingProvider in 'uDAScriptingProvider.pas',
+ uDAServerLog in 'uDAServerLog.pas',
+ uDADatasetProvider in 'uDADatasetProvider.pas',
+ uDAPoweredByDataAbstractButton in 'uDAPoweredByDataAbstractButton.pas',
+ SimpleLoginService_Impl in 'SimpleLoginService_Impl.pas',
+ DataAbstract3_Intf in 'DataAbstract3_Intf.pas',
+ DataAbstract3_Invk in 'DataAbstract3_Invk.pas',
+ DataAbstract3_Async in 'DataAbstract3_Async.pas',
+ DataAbstractService_Impl in 'DataAbstractService_Impl.pas' {DataAbstractService: TRORemoteDataModule},
+ MultiDbLoginService_Impl in 'MultiDbLoginService_Impl.pas',
+ BaseLoginService_Impl in 'BaseLoginService_Impl.pas' {BaseLoginService: TRORemoteDataModule},
+ DataAbstract4_Invk in 'DataAbstract4_Invk.pas',
+ DataAbstract4_Intf in 'DataAbstract4_Intf.pas',
+ DataAbstract4_Async in 'DataAbstract4_Async.pas',
+ uDARemoteDataAdapter in 'uDARemoteDataAdapter.pas',
+ uDACache in 'uDACache.pas',
+ uDARemoteDataAdapterRequests in 'uDARemoteDataAdapterRequests.pas',
+ uDADataStreamer in 'uDADataStreamer.pas',
+ uDADelta in 'uDADelta.pas',
+ uDADesigntimeCall in 'uDADesigntimeCall.pas',
+ uDAExceptions in 'uDAExceptions.pas',
+ uDASQL92Interfaces in 'uDASQL92Interfaces.pas',
+ uDABin2DataStreamer in 'uDABin2DataStreamer.pas',
+ uDAMemDataset in 'uDAMemDataset.pas',
+ uDAMemDataTable in 'uDAMemDataTable.pas',
+ uDAReconcileDialog in 'uDAReconcileDialog.pas' {ReconcileDialogForm},
+ uDAReconcileDialogDetails in 'uDAReconcileDialogDetails.pas',
+ uDADatasetWrapper in 'uDADatasetWrapper.pas',
+ uDADataTableReferenceCollection in 'uDADataTableReferenceCollection.pas',
+ uDAMySQLInterfaces in 'uDAMySQLInterfaces.pas',
+ uDASQLiteInterfaces in 'uDASQLiteInterfaces.pas',
+ uDAExpressionEvaluator in 'uDAExpressionEvaluator.pas',
+ uDASQL92QueryBuilder in 'uDASQL92QueryBuilder.pas',
+ uDAWhere in 'uDAWhere.pas',
+ uDARemoteCommand in 'uDARemoteCommand.pas',
+ uDAPostgresInterfaces in 'uDAPostgresInterfaces.pas',
+ uDAElevateDBInterfaces in 'uDAElevateDBInterfaces.pas',
+ uDADB2Interfaces in 'uDADB2Interfaces.pas',
+ uDASybaseInterfaces in 'uDASybaseInterfaces.pas',
+ MultiDbLoginServiceV5_Impl in 'MultiDbLoginServiceV5_Impl.pas',
+ //.31
+ uDAHETDriver in 'uDAHETDriver.pas',
+ uDAHETConnections in 'uDAHETConnections.pas'
+ //
+ {$IFDEF USE_LOCALDATAADAPTER}
+ ,uDALocalDataAdapter in 'uDALocalDataAdapter.pas'
+ {$ENDIF}
+ ;
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dproj
new file mode 100644
index 0000000..b53a05f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.dproj
@@ -0,0 +1,158 @@
+
+
+ {f3a56007-69a7-443a-8fdf-56da71a8440c}
+ DataAbstract_Core_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\Dcu\D11\DataAbstract_Core_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ DESIGNTIME;RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ DESIGNTIME
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ ..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\RemObjects SDK for Delphi\Dcu\D11
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - Core LibraryFalseFalseFalseTrueFalse402434FalseFalseFalseFalseFalse10331252RemObjects Software4.0.2.434RemObjects SDK1.0.0.0DataAbstract_Core_D11.dpk
+
+
+
+
+
+
+
+
+
+
+ CodeGear BDE DB Components
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+
+
+ MainSource
+
+
+
+ TRORemoteDataModule
+
+
+
+
+
+
+
+
+
+
+
+ TRORemoteDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dpk
new file mode 100644
index 0000000..f1d68ac
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dpk
@@ -0,0 +1,115 @@
+package DataAbstract_Core_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Core Library'}
+{$IMPLICITBUILD OFF}
+{$DEFINE DESIGNTIME}
+
+requires
+ rtl,
+ vcl,
+ adortl,
+ dbrtl,
+ dsnap,
+ vcldb,
+ RemObjects_Core_D12;
+
+contains
+ uDAInterfaces in 'uDAInterfaces.pas',
+ uDAInterfacesEx in 'uDAInterfacesEx.pas',
+ uDAClasses in 'uDAClasses.pas',
+ uDAHelpers in 'uDAHelpers.pas',
+ uDAEngine in 'uDAEngine.pas',
+ uDAUtils in 'uDAUtils.pas',
+ uDARes in 'uDARes.pas',
+ DataAbstract_Core_Reg in 'DataAbstract_Core_Reg.pas',
+ uDABinAdapter in 'uDABinAdapter.pas',
+ uDAXMLAdapter in 'uDAXmlAdapter.pas',
+ uDADriverManager in 'uDADriverManager.pas',
+ uDASupportClasses in 'uDASupportClasses.pas',
+ uDADataTable in 'uDADataTable.pas',
+ uDACDSDataTable in 'uDACDSDataTable.pas',
+ uDAADODataTable in 'uDAADODataTable.pas',
+ uDABusinessProcessor in 'uDABusinessProcessor.pas',
+ uDAIBInterfaces in 'uDAIBInterfaces.pas',
+ uDAOracleInterfaces in 'uDAOracleInterfaces.pas',
+ uDAADOInterfaces in 'uDAADOInterfaces.pas',
+ uDAMacroProcessors in 'uDAMacroProcessors.pas',
+ uDADBSessionManager in 'uDADBSessionManager.pas',
+ uDAMacros in 'uDAMacros.pas',
+ DALoginService_Impl in 'DALoginService_Impl.pas',
+ DARemoteService_Impl in 'DARemoteService_Impl.pas',
+ uDAXMLUtils in 'uDAXMLUtils.pas',
+ uDARegExpr in 'uDARegExpr.pas',
+ uDADriverInfo in 'uDADriverInfo.pas',
+ uDAPleaseWaitForm in 'uDAPleaseWaitForm.pas',
+ uDAClientDataModule in 'uDAClientDataModule.pas',
+ uDAScriptingProvider in 'uDAScriptingProvider.pas',
+ uDAServerLog in 'uDAServerLog.pas',
+ uDADatasetProvider in 'uDADatasetProvider.pas',
+ uDAPoweredByDataAbstractButton in 'uDAPoweredByDataAbstractButton.pas',
+ SimpleLoginService_Impl in 'SimpleLoginService_Impl.pas',
+ DataAbstract3_Intf in 'DataAbstract3_Intf.pas',
+ DataAbstract3_Invk in 'DataAbstract3_Invk.pas',
+ DataAbstract3_Async in 'DataAbstract3_Async.pas',
+ DataAbstractService_Impl in 'DataAbstractService_Impl.pas' {DataAbstractService: TRORemoteDataModule},
+ MultiDbLoginService_Impl in 'MultiDbLoginService_Impl.pas',
+ BaseLoginService_Impl in 'BaseLoginService_Impl.pas' {BaseLoginService: TRORemoteDataModule},
+ DataAbstract4_Invk in 'DataAbstract4_Invk.pas',
+ DataAbstract4_Intf in 'DataAbstract4_Intf.pas',
+ DataAbstract4_Async in 'DataAbstract4_Async.pas',
+ uDARemoteDataAdapter in 'uDARemoteDataAdapter.pas',
+ uDACache in 'uDACache.pas',
+ uDARemoteDataAdapterRequests in 'uDARemoteDataAdapterRequests.pas',
+ uDADataStreamer in 'uDADataStreamer.pas',
+ uDADelta in 'uDADelta.pas',
+ uDADesigntimeCall in 'uDADesigntimeCall.pas',
+ uDAExceptions in 'uDAExceptions.pas',
+ uDASQL92Interfaces in 'uDASQL92Interfaces.pas',
+ uDABin2DataStreamer in 'uDABin2DataStreamer.pas',
+ uDAMemDataset in 'uDAMemDataset.pas',
+ uDAMemDataTable in 'uDAMemDataTable.pas',
+ uDAReconcileDialog in 'uDAReconcileDialog.pas' {ReconcileDialogForm},
+ uDAReconcileDialogDetails in 'uDAReconcileDialogDetails.pas',
+ uDADatasetWrapper in 'uDADatasetWrapper.pas',
+ uDADataTableReferenceCollection in 'uDADataTableReferenceCollection.pas',
+ uDAMySQLInterfaces in 'uDAMySQLInterfaces.pas',
+ uDASQLiteInterfaces in 'uDASQLiteInterfaces.pas',
+ uDAExpressionEvaluator in 'uDAExpressionEvaluator.pas',
+ uDASQL92QueryBuilder in 'uDASQL92QueryBuilder.pas',
+ uDAWhere in 'uDAWhere.pas',
+ uDARemoteCommand in 'uDARemoteCommand.pas',
+ uDAPostgresInterfaces in 'uDAPostgresInterfaces.pas',
+ uDAElevateDBInterfaces in 'uDAElevateDBInterfaces.pas',
+ uDADB2Interfaces in 'uDADB2Interfaces.pas',
+ uDASybaseInterfaces in 'uDASybaseInterfaces.pas',
+ MultiDbLoginServiceV5_Impl in 'MultiDbLoginServiceV5_Impl.pas',
+ uDAHETDriver in 'uDAHETDriver.pas',
+ uDAHETConnections in 'uDAHETConnections.pas'
+ //
+ {$IFDEF USE_LOCALDATAADAPTER}
+ ,uDALocalDataAdapter in 'uDALocalDataAdapter.pas'
+ {$ENDIF}
+ ;
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dproj
new file mode 100644
index 0000000..c9bef7a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.dproj
@@ -0,0 +1,177 @@
+
+
+ {f3a56007-69a7-443a-8fdf-56da71a8440c}
+ DataAbstract_Core_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\Dcu\D12\DataAbstract_Core_D12.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ error
+ ..\..\RemObjects SDK for Delphi\Dcu\D12;..\Dcu\D12;$(DCC_UnitSearchPath)
+ ..\Dcu\D12
+ error
+ error
+ error
+ error
+ ..\Dcu\D12
+ error
+ ..\Dcu\D12
+ true
+ true
+ true
+ false
+ 00400000
+ ..\Dcu\D12\DataAbstract_Core_D12.bpl
+ RemObjects Data Abstract - Core Library
+ DESIGNTIME;$(DCC_Define)
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TRORemoteDataModule
+
+
+
+
+ TRORemoteDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 4
+ 0
+ 2
+ 434
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 4.0.2.434
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_Core_D12.dpk
+
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.cfg
new file mode 100644
index 0000000..3d4736d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.cfg
@@ -0,0 +1,42 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D6"
+-LE"..\Dcu\D6"
+-LN"..\Dcu\D6"
+-U"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-O"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-I"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-R"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-DDESIGNTIME
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dof
new file mode 100644
index 0000000..ff6f0ce
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Core Library
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D6
+PackageDLLOutputDir=..\Dcu\D6
+PackageDCPOutputDir=..\Dcu\D6
+SearchPath=..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6
+Packages=
+Conditionals=DESIGNTIME
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.280
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dpk
new file mode 100644
index 0000000..1829291
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.dpk
@@ -0,0 +1,116 @@
+package DataAbstract_Core_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Core Library'}
+{$IMPLICITBUILD OFF}
+{$DEFINE DESIGNTIME}
+
+requires
+ RemObjects_Core_D6,
+ rtl,
+ vcl,
+ adortl,
+ dbrtl,
+ dsnap,
+ vcldb;
+
+contains
+ uDAInterfaces in 'uDAInterfaces.pas',
+ uDAInterfacesEx in 'uDAInterfacesEx.pas',
+ uDAClasses in 'uDAClasses.pas',
+ uDAHelpers in 'uDAHelpers.pas',
+ uDAEngine in 'uDAEngine.pas',
+ uDAUtils in 'uDAUtils.pas',
+ uDARes in 'uDARes.pas',
+ DataAbstract_Core_Reg in 'DataAbstract_Core_Reg.pas',
+ uDABinAdapter in 'uDABinAdapter.pas',
+ uDAXMLAdapter in 'uDAXMLAdapter.pas',
+ uDADriverManager in 'uDADriverManager.pas',
+ uDASupportClasses in 'uDASupportClasses.pas',
+ uDADataTable in 'uDADataTable.pas',
+ uDACDSDataTable in 'uDACDSDataTable.pas',
+ uDAADODataTable in 'uDAADODataTable.pas',
+ uDABusinessProcessor in 'uDABusinessProcessor.pas',
+ uDAIBInterfaces in 'uDAIBInterfaces.pas',
+ uDAOracleInterfaces in 'uDAOracleInterfaces.pas',
+ uDAADOInterfaces in 'uDAADOInterfaces.pas',
+ uDAMacroProcessors in 'uDAMacroProcessors.pas',
+ uDADBSessionManager in 'uDADBSessionManager.pas',
+ uDAMacros in 'uDAMacros.pas',
+ DALoginService_Impl in 'DALoginService_Impl.pas',
+ DARemoteService_Impl in 'DARemoteService_Impl.pas',
+ uDAXMLUtils in 'uDAXMLUtils.pas',
+ uDARegExpr in 'uDARegExpr.pas',
+ uDADriverInfo in 'uDADriverInfo.pas',
+ uDAPleaseWaitForm in 'uDAPleaseWaitForm.pas',
+ uDAClientDataModule in 'uDAClientDataModule.pas',
+ uDAScriptingProvider in 'uDAScriptingProvider.pas',
+ uDAServerLog in 'uDAServerLog.pas',
+ uDADatasetProvider in 'uDADatasetProvider.pas',
+ uDAPoweredByDataAbstractButton in 'uDAPoweredByDataAbstractButton.pas',
+ SimpleLoginService_Impl in 'SimpleLoginService_Impl.pas',
+ DataAbstract3_Intf in 'DataAbstract3_Intf.pas',
+ DataAbstract3_Invk in 'DataAbstract3_Invk.pas',
+ DataAbstract3_Async in 'DataAbstract3_Async.pas',
+ DataAbstractService_Impl in 'DataAbstractService_Impl.pas' {DataAbstractService: TRORemoteDataModule},
+ MultiDbLoginService_Impl in 'MultiDbLoginService_Impl.pas',
+ BaseLoginService_Impl in 'BaseLoginService_Impl.pas' {BaseLoginService: TRORemoteDataModule},
+ DataAbstract4_Invk in 'DataAbstract4_Invk.pas',
+ DataAbstract4_Intf in 'DataAbstract4_Intf.pas',
+ DataAbstract4_Async in 'DataAbstract4_Async.pas',
+ uDARemoteDataAdapter in 'uDARemoteDataAdapter.pas',
+ uDACache in 'uDACache.pas',
+ uDARemoteDataAdapterRequests in 'uDARemoteDataAdapterRequests.pas',
+ uDADataStreamer in 'uDADataStreamer.pas',
+ uDADelta in 'uDADelta.pas',
+ uDADesigntimeCall in 'uDADesigntimeCall.pas',
+ uDAExceptions in 'uDAExceptions.pas',
+ uDASQL92Interfaces in 'uDASQL92Interfaces.pas',
+ uDABin2DataStreamer in 'uDABin2DataStreamer.pas',
+ uDAMemDataset in 'uDAMemDataset.pas',
+ uDAMemDataTable in 'uDAMemDataTable.pas',
+ uDAReconcileDialog in 'uDAReconcileDialog.pas' {ReconcileDialogForm},
+ uDAReconcileDialogDetails in 'uDAReconcileDialogDetails.pas',
+ uDADatasetWrapper in 'uDADatasetWrapper.pas',
+ uDADataTableReferenceCollection in 'uDADataTableReferenceCollection.pas',
+ uDAMySQLInterfaces in 'uDAMySQLInterfaces.pas',
+ uDASQLiteInterfaces in 'uDASQLiteInterfaces.pas',
+ uDAExpressionEvaluator in 'uDAExpressionEvaluator.pas',
+ uDASQL92QueryBuilder in 'uDASQL92QueryBuilder.pas',
+ uDAWhere in 'uDAWhere.pas',
+ uDARemoteCommand in 'uDARemoteCommand.pas',
+ uDAPostgresInterfaces in 'uDAPostgresInterfaces.pas',
+ uDAElevateDBInterfaces in 'uDAElevateDBInterfaces.pas',
+ uDADB2Interfaces in 'uDADB2Interfaces.pas',
+ uDASybaseInterfaces in 'uDASybaseInterfaces.pas',
+ MultiDbLoginServiceV5_Impl in 'MultiDbLoginServiceV5_Impl.pas',
+ //.31
+ uDAHETDriver in 'uDAHETDriver.pas',
+ uDAHETConnections in 'uDAHETConnections.pas'
+ //
+ {$IFDEF USE_LOCALDATAADAPTER}
+ ,uDALocalDataAdapter in 'uDALocalDataAdapter.pas'
+ {$ENDIF}
+ ;
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.cfg
new file mode 100644
index 0000000..d9c7e92
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.cfg
@@ -0,0 +1,51 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D7"
+-LE"..\Dcu\D7"
+-LN"..\Dcu\D7"
+-U"..\Dcu\D7;..\Dcu\DevEx;..\..\RemObjects SDK for Delphi\Dcu\D7;..\..\Pascal Script\Dcu\D7"
+-O"..\Dcu\D7;..\Dcu\DevEx;..\..\RemObjects SDK for Delphi\Dcu\D7;..\..\Pascal Script\Dcu\D7"
+-I"..\Dcu\D7;..\Dcu\DevEx;..\..\RemObjects SDK for Delphi\Dcu\D7;..\..\Pascal Script\Dcu\D7"
+-R"..\Dcu\D7;..\Dcu\DevEx;..\..\RemObjects SDK for Delphi\Dcu\D7;..\..\Pascal Script\Dcu\D7"
+-DDESIGNTIME
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dof
new file mode 100644
index 0000000..19785e8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Core Library
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D7
+PackageDLLOutputDir=..\Dcu\D7
+PackageDCPOutputDir=..\Dcu\D7
+SearchPath=..\Dcu\D7;..\Dcu\DevEx;..\..\RemObjects SDK for Delphi\Dcu\D7;..\..\Pascal Script\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=DESIGNTIME
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.286
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dpk
new file mode 100644
index 0000000..6ad0dff
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.dpk
@@ -0,0 +1,115 @@
+package DataAbstract_Core_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Core Library'}
+{$IMPLICITBUILD OFF}
+{$DEFINE DESIGNTIME}
+
+requires
+ RemObjects_Core_D7,
+ rtl,
+ vcl,
+ adortl,
+ dbrtl,
+ dsnap,
+ vcldb;
+
+contains
+ uDAInterfaces in 'uDAInterfaces.pas',
+ uDAInterfacesEx in 'uDAInterfacesEx.pas',
+ uDAClasses in 'uDAClasses.pas',
+ uDAHelpers in 'uDAHelpers.pas',
+ uDAEngine in 'uDAEngine.pas',
+ uDAUtils in 'uDAUtils.pas',
+ uDARes in 'uDARes.pas',
+ DataAbstract_Core_Reg in 'DataAbstract_Core_Reg.pas',
+ uDABinAdapter in 'uDABinAdapter.pas',
+ uDAXMLAdapter in 'uDAXMLAdapter.pas',
+ uDADriverManager in 'uDADriverManager.pas',
+ uDASupportClasses in 'uDASupportClasses.pas',
+ uDADataTable in 'uDADataTable.pas',
+ uDACDSDataTable in 'uDACDSDataTable.pas',
+ uDAADODataTable in 'uDAADODataTable.pas',
+ uDABusinessProcessor in 'uDABusinessProcessor.pas',
+ uDAIBInterfaces in 'uDAIBInterfaces.pas',
+ uDAOracleInterfaces in 'uDAOracleInterfaces.pas',
+ uDAADOInterfaces in 'uDAADOInterfaces.pas',
+ uDAMacroProcessors in 'uDAMacroProcessors.pas',
+ uDADBSessionManager in 'uDADBSessionManager.pas',
+ uDAMacros in 'uDAMacros.pas',
+ DALoginService_Impl in 'DALoginService_Impl.pas',
+ DARemoteService_Impl in 'DARemoteService_Impl.pas',
+ uDAXMLUtils in 'uDAXMLUtils.pas',
+ uDARegExpr in 'uDARegExpr.pas',
+ uDADriverInfo in 'uDADriverInfo.pas',
+ uDAPleaseWaitForm in 'uDAPleaseWaitForm.pas',
+ uDAClientDataModule in 'uDAClientDataModule.pas',
+ uDAScriptingProvider in 'uDAScriptingProvider.pas',
+ uDAServerLog in 'uDAServerLog.pas',
+ uDADatasetProvider in 'uDADatasetProvider.pas',
+ uDAPoweredByDataAbstractButton in 'uDAPoweredByDataAbstractButton.pas',
+ SimpleLoginService_Impl in 'SimpleLoginService_Impl.pas',
+ DataAbstract3_Intf in 'DataAbstract3_Intf.pas',
+ DataAbstract3_Invk in 'DataAbstract3_Invk.pas',
+ DataAbstract3_Async in 'DataAbstract3_Async.pas',
+ DataAbstractService_Impl in 'DataAbstractService_Impl.pas' {DataAbstractService: TRORemoteDataModule},
+ MultiDbLoginService_Impl in 'MultiDbLoginService_Impl.pas',
+ BaseLoginService_Impl in 'BaseLoginService_Impl.pas' {BaseLoginService: TRORemoteDataModule},
+ DataAbstract4_Invk in 'DataAbstract4_Invk.pas',
+ DataAbstract4_Intf in 'DataAbstract4_Intf.pas',
+ DataAbstract4_Async in 'DataAbstract4_Async.pas',
+ uDARemoteDataAdapter in 'uDARemoteDataAdapter.pas',
+ uDACache in 'uDACache.pas',
+ uDARemoteDataAdapterRequests in 'uDARemoteDataAdapterRequests.pas',
+ uDADataStreamer in 'uDADataStreamer.pas',
+ uDADelta in 'uDADelta.pas',
+ uDADesigntimeCall in 'uDADesigntimeCall.pas',
+ uDAExceptions in 'uDAExceptions.pas',
+ uDASQL92Interfaces in 'uDASQL92Interfaces.pas',
+ uDABin2DataStreamer in 'uDABin2DataStreamer.pas',
+ uDAMemDataset in 'uDAMemDataset.pas',
+ uDAMemDataTable in 'uDAMemDataTable.pas',
+ uDAReconcileDialog in 'uDAReconcileDialog.pas' {ReconcileDialogForm},
+ uDAReconcileDialogDetails in 'uDAReconcileDialogDetails.pas',
+ uDADatasetWrapper in 'uDADatasetWrapper.pas',
+ uDADataTableReferenceCollection in 'uDADataTableReferenceCollection.pas',
+ uDAMySQLInterfaces in 'uDAMySQLInterfaces.pas',
+ uDASQLiteInterfaces in 'uDASQLiteInterfaces.pas',
+ uDAExpressionEvaluator in 'uDAExpressionEvaluator.pas',
+ uDASQL92QueryBuilder in 'uDASQL92QueryBuilder.pas',
+ uDAWhere in 'uDAWhere.pas',
+ uDARemoteCommand in 'uDARemoteCommand.pas',
+ uDAPostgresInterfaces in 'uDAPostgresInterfaces.pas',
+ uDAElevateDBInterfaces in 'uDAElevateDBInterfaces.pas',
+ uDADB2Interfaces in 'uDADB2Interfaces.pas',
+ uDASybaseInterfaces in 'uDASybaseInterfaces.pas',
+ MultiDbLoginServiceV5_Impl in 'MultiDbLoginServiceV5_Impl.pas',
+ uDAHETDriver in 'uDAHETDriver.pas',
+ uDAHETConnections in 'uDAHETConnections.pas'
+ //
+ {$IFDEF USE_LOCALDATAADAPTER}
+ ,uDALocalDataAdapter in 'uDALocalDataAdapter.pas'
+ {$ENDIF}
+ ;
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Glyphs.lrs b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Glyphs.lrs
new file mode 100644
index 0000000..caa8e90
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Glyphs.lrs
@@ -0,0 +1,1486 @@
+LazarusResources.Add('TDAPoweredByDataAbstractButton','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#135'L*'#135'N.'#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#142'V5'#135'N.'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0
+ +'@'#0#0#169'vR'#135'N.'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0
+ +'@'#0#0#173'}Y'#135'N.'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#166'tU'#137'P2'#134'L-'#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0
+ +#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255
+ +#255#128#0#0'@'#0#0#182#138'j'#156'hI'#144'Z:'#139'R2'#135'N.'#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#128#0#0'@'#0#0#237#207#177#211#172#142#180#132'g'
+ +#153'eE'#142'T5'#136'P/'#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#254#233#209#255#235#207#255#231#202#239#208#178#203#163#130
+ +#165'rQ'#144'W8'#137'P2'#135'M-'#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#208#183#169#207#182#164#224#201#181#247#229#209#255#240#221#255#240
+ +#221#254#238#218#254#237#216#254#235#213#254#234#212#254#233#209#254#233#207
+ +#255#234#206#255#235#207#251#225#196#220#183#151#170'xX'#143'Y:'#138'R3'#255
+ +#0#255#255#0#255#255#0#255#255#0#255#218#198#187#216#192#180#224#203#187#246
+ +#230#212#255#243#225#255#240#221#254#239#222#254#239#222#254#237#220#254#238
+ +#218#254#237#216#254#234#212#254#233#209#254#231#207#255#231#202#255#234#206
+ +#255#230#198#215#177#144#161'oP'#143'Y:'#139'T4'#255#0#255#255#0#255#255#0
+ +#255#225#208#197#226#206#194#240#224#209#254#240#226#255#243#227#254#240#226
+ +#254#240#226#254#240#226#254#240#224#254#239#222#254#237#220#254#237#216#254
+ +#234#212#254#233#209#254#231#206#255#231#202#255#234#202#247#217#184#193#150
+ +'v'#151'dD'#143'Y:'#255#0#255#255#0#255#235#225#218#231#218#208#235#221#208
+ +#250#237#224#254#242#231#254#242#231#254#243#230#254#243#230#254#243#230#255
+ +#243#227#254#239#225#254#239#222#254#237#220#254#237#216#254#234#212#254#233
+ +#209#254#231#206#255#231#201#255#230#198#222#184#153#164'tU'#147'_A'#145'[<'
+ +#255#0#255#240#235#230#237#227#220#242#230#220#252#242#230#254#244#237#254
+ +#244#237#254#244#237#254#244#237#254#244#237#254#242#231#254#242#229#254#239
+ +#225#254#239#221#254#238#218#254#235#213#254#233#209#254#231#207#255#231#202
+ +#255#231#201#234#202#170#176#129'e'#153'gH'#150'bC'#255#0#255#247#243#242#243
+ +#235#230#246#237#227#252#243#234#254#247#239#254#247#240#254#247#239#254#247
+ +#240#254#247#239#254#244#237#254#242#231#254#242#229#254#240#224#254#237#220
+ +#254#237#216#254#234#212#254#233#207#255#231#202#255#231#202#237#204#173#180
+ +#136'k'#158'mP'#154'iJ'#255#0#255#254#252#252#250#246#243#247#240#234#252#244
+ +#235#254#248#240#254#250#244#254#250#244#254#250#244#254#248#240#254#244#237
+ +#254#244#234#254#243#230#254#240#226#254#239#221#254#237#217#254#235#213#254
+ +#233#207#254#231#206#255#231#202#229#197#166#178#137'l'#161'tX'#159'oR'#255#0
+ +#255#255#255#255#255#254#254#252#248#246#252#246#239#254#250#244#254#251#247
+ +#254#251#248#254#251#247#254#250#244#254#247#239#254#246#235#254#243#230#254
+ +#240#226#254#239#222#254#237#217#254#235#213#254#233#209#254#233#207#252#226
+ +#197#213#180#151#177#136'm'#167'z`'#164'wZ'#255#0#255#255#0#255#255#255#255
+ +#255#255#255#254#250#247#254#250#244#254#251#248#254#252#252#254#251#248#254
+ +#250#244#254#248#240#254#244#237#254#243#230#254#240#226#254#239#222#254#237
+ +#217#254#235#213#254#233#209#255#234#206#235#208#181#197#160#136#178#138'r'
+ +#172#130'i'#255#0#255#255#0#255#255#0#255#255#255#255#255#255#255#255#255#252
+ +#254#250#247#254#250#247#254#251#247#254#251#247#254#250#244#252#246#239#254
+ +#246#234#254#243#230#254#240#226#254#239#221#254#237#217#254#237#216#254#233
+ ,#209#242#218#192#211#181#157#189#154#131#182#144'z'#178#138't'#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#255#255#255#255#255#255#254#254#254#251#248
+ +#254#250#244#254#247#240#254#247#240#254#244#237#254#244#234#254#243#230#254
+ +#240#226#255#240#221#254#237#216#251#231#208#239#216#193#217#191#171#198#167
+ +#149#192#159#139#187#153#132#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#255#255#255#255#255#255#255#255#254#251#248#254#250#244
+ +#252#246#239#252#243#234#252#240#229#251#239#226#250#235#220#248#231#215#242
+ +#224#206#230#211#193#218#194#178#208#181#164#202#173#156#198#167#149#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#255#255#255#255#255#255#255#255#255#254#254#252#252#248#250#247#240#247
+ +#239#233#244#234#225#239#227#217#235#220#209#229#212#201#221#203#191#216#196
+ +#182#213#189#175#208#183#166#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#255#255
+ +#255#255#255#255#255#255#255#254#254#251#247#246#246#239#235#242#233#227#237
+ +#225#220#231#218#211#227#212#202#221#204#193#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#255#255#255#254
+ +#254#251#247#246#246#240#237#242#233#227#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDADriverManager','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#129#30#0
+ +#129#30#0#131#31#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +'@'#0#0#129#30#0#129#30#0#136'%'#2#247#172'Q'#131#31#0#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#189'O'#3#173'E'#6#222'}'#31#255#173'C'#255#184'Z'#131#31#0
+ +#131#31#0#131#31#0#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255
+ +#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#128#0#0'@'#0#0#255#134#3#255#140#12#255#152#28#255#163'/'#255#175'E'#255
+ +#186']'#255#198'v'#131#31#0#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0'@'#0#0#255#146#19#255#134#3#255#142#13#230''#23
+ +#255#164'2'#255#176'G'#255#187'_'#131#31#0#255#0#255#255#0#255#128#0#0#255
+ +#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0
+ +#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#255#164'2'#247#136#15#154'0'
+ +#0#130#31#0#137'$'#1#230#137')'#255#177'I'#213#130'8'#131#31#0#255#0#255#128
+ +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0
+ +#255#183'V'#154'0'#0#255#0#255'_'#9#0'}'#27#0#167'A'#9#255#166'5'#255#177'L'
+ +#188'K'#0#140'+'#5#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#216#159#255#202#128#154
+ +'0'#0#255#0#255'L'#0#0'i'#14#0#163':'#4#255#156'#'#255#167'7'#255#178'N'#131
+ +#31#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#130#0'K'#130'"'
+ +#143#186'o'#220#248#3'_'#150#149','#0#181'D'#0#173'Z,'#255#217#161#255#216
+ +#158#154'0'#0#255#0#255'h'#13#0#150'-'#0#176'B'#2#255#146#19#255#157'%'#188
+ +'K'#0#129#30#0#255#0#255#255#0#255#0'M'#132#2'W'#138#0'K'#130#0'K'#130#15#129
+ +#177'@'#201#240'c'#222#255'^'#203#234#3'_'#150#24'f'#142'(f}'#197'}K'#255#217
+ +#161#255#215#157#154'0'#0#165'B'#14#169'C'#9#247#130#7#255#136#6#238#130#17
+ +#131#31#0#255#0#255#255#0#255#255#0#255#0'X'#144#4'g'#153#19#201#254#15#199
+ +#254'!'#206#254'5'#211#254'L'#217#254'e'#224#255''#229#255#154#235#255#3'_'
+ +#150#189'rA'#255#217#161#255#217#161#255#215#154#255#196's'#255#175'F'#255
+ +#154'!'#255#136#6#131#31#0#255#0#255#255#0#255#255#0#255#255#0#255#0'['#147#3
+ +'d'#152'('#194#240#17#199#254#17#199#254'#'#206#254'7'#212#254'N'#217#254'g'
+ +#224#255#129#230#255#3'_'#150#222#163'n'#255#217#161#255#217#161#255#217#161
+ +#255#213#152#255#194'n'#255#173'C'#255#153#30#131#31#0#255#0#255#255#0#255
+ +#255#0#255#0'K'#130#1'd'#157#3'i'#157'I'#203#240'-'#208#254#13#180#233#0'K'
+ +#130#3'Z'#140#27#146#192'P'#218#254'j'#224#255')x'#149#149'I"'#158'@'#17#172
+ +'A'#4#222#163'n'#255#217#161#230#172'p'#131#31#0#131#31#0#157'5'#3#255#0#255
+ +#255#0#255#0'K'#130#1'd'#156#11'v'#166'b'#184#213#129#230#255'R'#218#255#0'K'
+ +#130#255#0#255#0'K'#130#0'K'#130'*'#177#220'S'#218#255'Z'#208#240#3'_'#150'['
+ +'-'#24#238's'#0#158'<'#10#255#217#161#131#31#0#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#0'K'#130#4#138#193'i'#186#213#186#242#255#171#239#255'{'
+ +#229#255#0'K'#130#255#0#255#0'Q'#137#0'K'#130#23#153#199'>'#213#254'U'#220
+ +#255'n'#225#255#3'_'#150#140'&'#0#149','#0#149'6'#15#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#0'S'#139#3#129#187#28#137#181#144#213
+ +#234#186#242#255#167#238#255#0'K'#130#255#0#255#0'K'#130#2'f'#156#18#169#220
+ +'*'#208#254'@'#213#254#3'_'#150#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#130#3
+ +#139#197#12'~'#173#171#233#248#186#242#255#131#211#234#0'K'#130#3'j'#157#13
+ +#139#188#12#198#254#24#202#254#26#166#213#0'K'#130#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#0'K'#130#5#147#201#144#213#234#186#242#255#184#242#255
+ +#159#237#255'n'#225#255'B'#215#254#28#203#254#12#198#254#0'K'#130#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#130#6#139#191#186#242#255
+ +#186#242#255#186#242#255#184#242#255#154#235#255'j'#225#255'>'#213#254#25#203
+ +#254#0'K'#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ ,#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#2'}'#182#0
+ +'K'#130#0'K'#130'0'#153#193':'#157#193#186#242#255#183#242#255'j'#198#227#0
+ +'K'#130#0'K'#130#9'y'#170#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#0'\'#149#6#169#225'\'#177#207#171#233#248
+ +#0'K'#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#130#0'K'
+ +#130#0'K'#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDAConnectionManager','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'M'#194#11
+ +'c'#221#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#0'M'#194#0'M'#194#3'S'#202#7'\'#213#0'M'#194#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#0'M'#194#12'e'#217#17'n'#217#0'M'#194#0'M'
+ +#194#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255
+ +#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0
+ +#255#0#255#255#0#255#255#0#255#0'M'#194#10'c'#217'9'#166#255','#147#255#7'\'
+ +#213#0'M'#194#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0
+ +#0#255#0#255#255#0#255#0'M'#194#10'c'#217#29#128#231'0'#154#255#24'w'#243#1
+ +'P'#198#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#0'M'#194#0'M'#194#10'c'#217'&'#140#243'0'#154#255#13'h'#225#1
+ +'P'#198#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128
+ +#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255
+ +#255#128#0#0'@'#0#0'C'#178#255'A'#177#255'4'#159#255#0'M'#194#24'w'#243#0'M'
+ +#194#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#128#0#0'@'#0#0'C'#180#255'6'#161#255'('#143
+ +#255#31#130#255#0'M'#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#3'S'#198'+'#146#243'*'#146#255' '#131#255#31#129
+ +#255#0'M'#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#3'Z'#5#8's'#21#3'^'#8#0'Lh'#2
+ +'Q'#198'-'#150#243'F'#183#255' '#131#231#2'Q'#198#25'y'#243#31#129#255#31#129
+ +#255#0'M'#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#3'Z'#5#5'e'#12#31#189'M%'#196'R'#6'e'#12
+ +#0'Lc'#3'S'#198'.'#152#243'.'#152#255#19'p'#231#1'P'#198#19'p'#235#31#129#255
+ +#0'M'#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#3'Z'#5#3'Z'#5#22#153'08'#227'l?'#233'o'#6
+ +'e'#10#0'L9'#2'Q'#198#28'}'#243#31#129#255#17'm'#231#0'M'#194#17'm'#231#0'M'
+ +#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#3'Z'#5#7#138#19#3'Z'#5'$'#175'A7'#226'_'#31
+ +#188'7'#2'['#3#0'L5'#1'P'#198#24'w'#243#31#129#255#17'm'#231#0'M'#194#0'M'
+ +#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#3'Z'#5#18#169'.'#19#160'2'#3'Z'#5#17#146#31#15
+ +#165#27#3#135#5#0'U'#0#0'L5'#1'P'#198#24'w'#243#28'~'#251#3'S'#202#0'M'#194
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#3'Z'#5#27#182'C'#24#175'='#13#140'!'#3'Z'#5#1'r'#2#0
+ +#129#0#0'~'#0#0'U'#0#0'L5'#1'P'#198#4'V'#206#0'M'#194#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#3'Z'#5#24#172';'#17#156')'#11#139#25#4'r'#9#3'Z'#5#0'i'#0#0#129#0
+ +#0'~'#0#0'['#0#0'L5'#0'M'#194#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#3
+ +'Z'#5#16#154'('#10#137#24#5'y'#10#1'l'#2#1'd'#1#3'Z'#5#0'^'#0#0'~'#0#0'U'#0#0
+ +'K'#0#255#0#255#0#189#255#0#189#255#0#189#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#3'Z'#5#12#137#29#0'K'#0#4
+ +'w'#9#1'l'#2#1'j'#1#1'j'#1#1'd'#1#0'K'#0#0'N'#0#0'K'#0#255#0#255#7#233#231#7
+ +#233#231#7#233#231#0#189#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#3'Z'#5#15#128#29'-'#212'N'#3'm'#6#0'K'#0#0'K'#0#0'K'
+ +#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#7#233
+ +#231#0#189#255#0#189#255#0#189#255#255#0#255#255#0#255#255#0#255#255#0#255#3
+ +'Z'#5#31#166':-'#212'N'#3'v'#5#0'M'#0#0'K'#0#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#7#233
+ +#231#7#233#231#7#233#231#255#0#255#255#0#255#255#0#255#255#0#255#3'Z'#5#9'n'
+ +#17'('#206'G'#3#140#6#0'^'#0#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#0#0'K'
+ ,#0#0'`'#1#0'^'#0#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#3'Z'#5#6'l'#16#2'X'#5#0'K'
+ +#0#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#10'y'#25#3'Z'#5
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDASchema','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255#0'K'#0
+ +#12#152#25#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#255#0
+ +#255#0'K'#0#24#169'-'#17#160'#'#12#152#25#0'K'#0#255#0#255#255#0#255#255#0
+ +#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255
+ +#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#0
+ +'K'#0'&'#186'D'#31#177'8'#24#169'-'#17#160'#'#12#152#25#0'K'#0#255#0#255#255
+ +#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0
+ +#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0#0'4'
+ +#203'\,'#193'N&'#186'D'#31#177'8'#23#167','#17#159'!'#12#151#24#0'K'#0#255#0
+ +#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0
+ +#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0
+ +#0'>'#215'm4'#203'\,'#193'N&'#186'D'#29#176'6'#23#167','#17#159'!'#9#138#19#0
+ +'K'#0#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255
+ +#255#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0
+ +'>'#215'm9'#209'f4'#203'\,'#193'N&'#186'D'#29#176'6'#17#151'"'#0'K'#0#255#0
+ +#255#255#0#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#128#0#0'@'#0#0#0'K'#0'>'#215'm9'#209'f4'#203'\,'#193'N'#28#164'3'#0'K'#0
+ +#255#0#255#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#0#255#255#0
+ +#255#0'K'#0'>'#215'm9'#209'f&'#177'E'#0'K'#0#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#0'/'#188'T'#0'K'#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0'K'#0'/'#188'T'#0'K'#0#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#0'K'#0#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#0
+ +'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0
+ +'K'#0#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#0'K'#0#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#0'K'#0#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0
+ +#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#0#0#130#3'('#255#0#30#254#0#24#243#0#18#225#0#13#204#1#10#182#3#7#164#0
+ +#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#0#0#130#12'5'#255#3'('#255#0'!'#255#0#24#243#0#18#225#0#15#212#1#10#187
+ +#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#0#0#130#24'C'#255#12'5'#255#3'('#255#0'!'#255#0#30#254#0#20#234#0
+ +#15#212#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0#0#130'&R'#255#24'C'#255#18'='#255#3'('#255#0'!'#255#0#30#254
+ +#0#20#234#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0#0#130'/]'#255'&R'#255#24'C'#255#22'A'#255#12'5'#255#0'!'#255
+ +#0#30#254#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ ,#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0#0#130'1^'#255'1^'#255'1^'#255#24'C'#255#22'A'#255#12'5'#255
+ +#3'('#255#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0#0#130'1^'#255'1^'#255'/]'#255'1^'#255#24'C'#255#22'A'#255#12
+ +'5'#255#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130#0#0
+ +#130#0#0#130#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255
+]);
+LazarusResources.Add('TDADiagrams','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#5'f'#149#5'f'#149#5'f'#149#5'f'#149#5'f'#149#5'f'#149#255#0
+ +#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#142']Y'#2't'#169'0'#201#233
+ +#18#203#254' '#206#254'T'#222#255't'#224#248','#167#211#5'f'#149#255#0#255
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222#255't'#224#248
+ +'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222
+ +#255't'#224#248'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255
+ +#255#255#128#0#0'@'#0#0#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254
+ +'T'#222#255't'#224#248'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0'@'#0#0#2't'#169#159#251#254#163#243#255#182
+ +#242#255#218#248#255#229#250#255#216#247#254#154#220#239'A'#172#213#5'f'#149
+ +#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255
+ +#255#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#2't'#169#167#233
+ +#243#28#170#211#7#145#197#7#136#188#16#139#188#31#145#191#20'y'#173'y'#192
+ +#220#5'f'#149#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#128#0#0'@'#0#0#2't'#169'1'#181#211'?'#227#254#18#203#254' '#206#254'T'#222
+ +#255't'#224#248'0'#176#218#2'h'#163#3'h'#154#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0';'
+ +#192'['#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222#255't'
+ +#224#248'0'#176#218#3#134#193#5'f'#149#152'ic'#249#238#225#251#242#234#0'K'#0
+ +#28#186'G'#28#186'G'#25#181'A'#0'K'#0#244#218#185#242#213#176#242#212#174#0
+ +'K'#0#28#186'GA'#201'k'#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254
+ +'T'#222#255't'#224#248'0'#176#218#3#134#193#5'f'#149#163'rf'#246#238#233#251
+ +#242#234#0'K'#0#0'K'#0#0'K'#0#0'K'#0#0'K'#0#244#218#185#244#218#182#242#212
+ +#174#0'K'#0#0'K'#0#30'k'#30#2't'#169's'#250#254'?'#227#254#18#203#254' '#206
+ +#254'T'#222#255't'#224#248'0'#176#218#3#134#193#5'f'#149#167'uh'#248#243#240
+ +#253#249#245#251#242#234#251#242#230#0'e'#0#247#230#209#246#226#204#240#222
+ +#204#244#218#185#244#218#185#242#213#176#242#212#174#30#129#30#2't'#169'x'
+ +#251#254'h'#246#255'U'#246#254'_'#254#255'x'#251#254#137#251#254'H'#207#242#5
+ +#139#199#5'f'#149#172'yi'#248#243#240#255#254#254#248#243#240#251#242#234#0
+ +'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#30#129#30#2't'#169#255
+ +#254#254#240#255#255#198#255#255#160#255#255#159#251#254#159#251#254#146#255
+ +#255'U'#246#254#5'f'#149#177'~k'#248#243#240#255#254#254#255#254#254#248#243
+ +#240#254#247#241#249#238#225#248#234#216#247#230#209#0'e'#0#245#222#192#245
+ +#222#192#242#213#176#242#213#176#244#218#185#4'y'#175#240#255#255#218#248#255
+ +#183#255#255#159#251#254#137#251#254#131#250#251#8'k'#154#255#0#255#182#129
+ +'l'#248#243#240#255#254#254#255#254#254#255#254#254#251#242#234#248#243#240
+ +#251#242#230#248#234#216#0'e'#0#247#230#209#245#222#192#245#222#192#244#218
+ +#185#242#213#176#244#218#185#2't'#169#2't'#169#2't'#169#2't'#169#2't'#169#2
+ +'t'#169#255#0#255#255#0#255#187#132'n'#248#243#240#255#254#254#255#254#254
+ +#255#254#254#255#254#254#251#242#234#0#0#130#0#0#130#0#0#130#0#0#130#0#0#130
+ +#245#222#192#244#218#185#242#213#176#242#212#174#240#208#165#240#207#163#128
+ +'PK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#192#137'o'#253#249#245
+ +#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254#0#0#130#13'4'
+ +#255#4''''#255#0#30#255#0#0#130#246#224#193#245#222#192#244#218#182#242#213
+ +#176#242#212#174#240#208#165#128'PK'#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#192#137'o'#253#249#245#255#254#254#255#254#254#255#254#254#255#254
+ +#254#255#254#254#0#0#130'(S'#255#26'D'#255#13'4'#255#0#0#130#247#230#209#246
+ +#224#193#245#222#192#244#218#185#242#213#176#242#212#174#128'PK'#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#203#145's'#248#243#240#255#254#254
+ +#255#254#254#255#254#254#255#254#254#255#254#254#0#0#130'1^'#255'1^'#255'(S'
+ +#255#0#0#130#248#234#216#247#230#209#246#226#204#244#218#185#244#218#185#244
+ +#218#182#128'PK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#203#145's'
+ +#253#249#245#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254#0#0
+ ,#130#0#0#130#0#0#130#0#0#130#0#0#130#249#238#225#248#234#216#247#230#209#246
+ +#224#193#246#224#193#244#218#182#128'PK'#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#212#152'u'#253#249#245#255#254#254#255#254#254#255#254#254#255
+ +#254#254#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254#251#242
+ +#234#253#249#245#248#234#216#248#234#216#248#234#216#246#224#193#245#222#192
+ +#128'PK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#212#152'u'#253#249
+ +#245#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254
+ +#255#254#254#255#254#254#255#254#254#253#249#245#251#242#234#251#242#234#250
+ +#238#222#248#234#216#248#234#216#246#224#193#128'PK'#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#212#152'u'#255#254#254#255#254#254#255#254#254#255
+ +#254#254#255#254#254#255#254#254#255#254#254#255#254#254#255#254#254#255#254
+ +#254#255#254#254#253#249#245#254#247#241#251#242#230#248#234#216#248#234#216
+ +#246#224#193#128'PK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#207
+ +#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207
+ +#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#207
+ +#142'h'#207#142'h'#207#142'h'#207#142'h'#207#142'h'#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDADataDictionary','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255
+ +#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128
+ +#0#0#255#255#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255
+ +#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0'@'#0#0#15'A'#180#15'@'#178#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#206#139
+ +'bIg'#166#17'G'#189#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#215#137'^'#226#149'_'#238#172'u'
+ +#131#142#172#19'N'#198#19'N'#198#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#31'w'#254'e'#151#217#252#209
+ +#160#252#209#160#252#209#161#252#211#163#252#211#164#244#197#156#247#203#160
+ +#213#132'U'#220#138'W'#234#169'x'#247#206#169#215#202#197'Bw'#211#21'U'#208
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#31'x'
+ +#255#31'x'#255#220#206#187#254#218#178#254#220#181#254#221#183#254#221#184
+ +#254#222#187#237#191#159#220#153't'#209'zK'#227#151'b'#246#201#159#248#216
+ +#186#251#229#208#252#238#225#138#175#229'#f'#218#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255')m'#207'tgN'#254#224#187#254#230#201#254
+ +#230#202#254#231#204#254#231#206#243#207#178#239#196#165#220#153'r'#233#163
+ +'l'#233#167'w'#247#211#177#250#225#201#251#235#220#254#243#234#254#250#244
+ +#203#221#246'9{'#230#24'b'#225#255#0#255#255#0#255#255#0#255#31'x'#255'fe['
+ +#255#164'5'#254#238#217#254#238#218#254#239#220#254#239#221#254#239#222#244
+ +#216#193#239#203#178#211#128'S'#212'{J'#237#178#135#248#220#193#251#231#213
+ +#252#240#230#254#247#242#255#251#248#255#254#254#221#234#252#26'h'#234#26'f'
+ +#231#255#0#255#255#0#255#31'x'#255#175'u,'#255#192'm'#255#244#231#255#244#233
+ +#255#246#234#255#246#234#252#237#224#233#183#153#221#156'w'#213#130'S'#233
+ +#166'w'#247#209#178#233#213#194#252#238#225#254#246#238#254#250#246#255#254
+ +#252#255#255#255#218#198#198'?\'#153#28'm'#240#255#0#255#255#0#255#31']'#164
+ +#30#188'L'#206#238#207#255#248#242#255#250#243#255#250#243#255#250#244#244
+ +#217#199#243#213#194#220#158'{'#230#164'u'#233#170''#250#224#199#157#154#149
+ +#158#157#153#235#231#227#255#252#250#255#255#254#255#255#255#202#151#151'po'
+ +#150#29's'#247#255#0#255#31'x'#255#31'eS'#30#188'L'#255#252#248#255#252#250
+ +#255#252#250#255#252#250#255#252#250#248#233#224#238#202#180#208'}P'#213#128
+ +'O'#240#192#156#251#231#212#252#240#229#217#213#208#142#144#142#183#184#183
+ +#255#255#255#247#238#238#191#129#129'7f'#181#255#0#255#255#0#255#31'p'#237#25
+ +'lYl'#193#169#255#254#252#255#254#252#255#254#254#255#255#254#252#244#239#229
+ +#173#143#224#164#130#217#139']'#238#186#146#248#221#197#252#237#222#254#244
+ +#237#254#250#246#255#254#251#183#184#183#201#202#201#206#227#255'\}'#197#31
+ +'x'#255#255#0#255#255#0#255#28'S'#176#0#30#255#193#206#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#224#166#135#225#157
+ +'r'#230#165'z'#225#211#196#217#211#202#254#248#243#255#252#250#255#254#254
+ +#255#255#255#255#255#255'f'#167#255#31'x'#255#255#0#255#255#0#255#255#0#255
+ +#17'7'#176#0#30#255#255#255#255#255#255#255#255#255#255#255#255#255#189#220
+ +#255'z'#180#255'?'#143#255#31'x'#255''#167#221#251#230#211#234#224#213#158
+ +#158#154#158#159#157#237#235#234#255#255#255#255#255#255#255#255#255')'#128
+ ,#255#31'x'#255#255#0#255#255#0#255#31'x'#255#21'_'#255#132#171#255#238#246
+ +#255#175#211#255'r'#175#255'/'#132#255'/'#132#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255'D'#144#248#220#227#238#254#250#246#218#218#216#142#144#143#183
+ +#186#184#255#255#255#159#202#255#31'x'#255#31'x'#255#255#0#255#255#0#255#31
+ +'x'#255#31'x'#255#31'x'#255#31'x'#255#31'x'#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'-'#131#254#144#192#252#255
+ +#254#254#255#255#255#192#193#192#246#246#246'L'#152#255#31'x'#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255']'#163#255#238#246#255#255#255#255#175#211#255#31'x'#255
+ +#31'x'#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#31'x'#255#31'x'#255#31'x'
+ +#255#31'x'#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#31'x'#255#31'x'#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDABin2DataStreamer','BMP',[
+ 'BM'#248#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#194#6#0#0#18#11#0#0#18#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#142']'
+ +'Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#225#189#255#221#181#255#217#172#255
+ +#213#165#255#211#157#255#207#151#255#203#145#255#201#140#255#199#135#128'PK'
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#255#231#203#0#0#0#0#0#0#255#220#178#255#216#171#0#0#0#0#0#0#0#0#0#255#203
+ +#143#128'PK'#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#255
+ +#238#217#0#0#0#255#230#199#0#0#0#255#221#182#0#0#0#255#215#166#255#211#159
+ +#255#207#152#128'PK'#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128
+ +#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0#0
+ +#255#243#229#0#0#0#0#0#0#255#233#204#255#229#197#255#224#187#0#0#0#255#216
+ +#171#255#213#165#128'PK'#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128
+ +#0#0'@'#0#0#255#250#242#0#0#0#255#242#225#0#0#0#255#234#209#255#231#203#255
+ +#227#193#0#0#0#255#218#176#128'PK'#128#0#0#255#255#255#128#0#0#128#0#0#128#0
+ +#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255
+ +#255#128#0#0'@'#0#0#255#254#250#0#0#0#0#0#0#255#244#231#255#240#222#0#0#0#0#0
+ +#0#255#229#198#255#225#189#128'PK'#128#0#0#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#128#0#0'@'#0#0#255#255#255#255#254#252#255#252#247
+ +#255#250#242#255#246#235#255#243#227#255#239#220#255#235#211#255#231#203#128
+ +'PK'#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#254#250#255#251#246#255#248#239#255#244#231#255#242#225#255#238#217
+ +#128'PKHJK'#201#194#201#7'9z'#7'9z'#7'9z='#154#242'5'#149#239'-'#140#239#7'9'
+ +'z'#7'9z'#7'9zyyy'#194#140'm'#255#255#255#255#255#255#255#255#255#137#167#199
+ +#7'9z'#137#167#199#255#252#248#247#240#235#226#218#209#226#216#204'{MIHJK'
+ +#206#199#204#191#184#192#7'9z@'#157#242'@'#157#242'@'#157#242'9'#152#240'2'
+ +#145#239#7'9zE_{yyy'#203#147'o'#255#255#255#255#255#255#137#167#199#7'9z'#15
+ +'s'#233#7'9z'#137#167#199#234#233#230#182#180#176#182#177#171'uIEHJK'#209#202
+ +#209#194#188#194'h'#129#163#7'9z@'#157#242'@'#157#242'@'#157#242#7'9zE_{{{{y'
+ +'yy'#209#153'r'#255#255#255#137#167#199#7'9z'#15's'#233#15's'#233#15's'#233#7
+ +'9zURf'#160'g['#160'g['#149'\KHJK'#213#207#213#197#191#197#194#188#194'Qk'
+ +#138#7'9z@'#157#242#7'9zId'#128'yzzyyyyyy'#216#159'u'#137#167#199#7'9z'#27'}'
+ +#235#22'y'#234#18'u'#233#15's'#233#15's'#233#7'9z'#254#176'J'#240#145','#225
+ +#132'.HJK'#217#213#217#201#196#202#199#192#198#150#146#152'0Kf'#7'9z,D^'#137
+ +#137#137''#130#130#131'yyy'#220#163'v'#7'9z'#7'9z'#7'9z'#31#130#235#27'}'
+ +#235#22'y'#234#7'9z'#7'9z'#7'9z'#218#152'c'#255#0#255'HJK'#225#218#224#207
+ +#201#206#199#192#198#151#150#153'UWX'#175#175#177'JLM'#137#137#137#128#128
+ +#128#132#132#132''#220#163'v'#209#146'm'#209#146'm'#7'9z-'#140#239'%'#135
+ +#238#31#130#237#7'9zXTh'#212#154's'#255#0#255#255#0#255'HJK'#231#226#230#212
+ +#207#211#225#218#224#152#149#152'UWX'#176#175#177'LNO'#150#149#149#132#131
+ +#131'vvvyyy'#143#143#143#131#132#132'*C]'#7'9z7'#150#240'2'#146#240#7'9z'#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#239#235#239#235#233#235
+ +#198#197#199#160#157#161'UWX'#164#165#167';=>'#130#130#131#137#137#137#143
+ +#143#143#137#137#137#147#147#147'Id'#128#7'9z@'#157#242'@'#157#242'='#154#242
+ +#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#238#237#238#178
+ +#177#180#156#153#156#159#158#161'RTU'#235#235#237'ossY[Z'#7'9z'#7'9z'#7'9z'#7
+ +'9z'#7'9z@'#157#242'@'#157#242#7'9z'#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255'HJK'#237#235#237#129#129#130#213#209#212#207#207
+ +#208'`cdprrxy{'#138#142#140#171#172#172'Xt'#146#7'9z'#7'9z'#7'9z'#7'9z'#7'9z'
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255'HJK'#251#251#252#204#204#204#254#254#254#227#227#230#186#184#188#151#149
+ +#152#136#134#137'xy{rssfihehi'#150#152#153#150#152#153'HJK'#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'H'
+ +'JK'#255#255#255#251#251#252#238#238#242#237#238#240#231#230#233#217#213#217
+ +#196#192#196#172#170#172#151#145#151#136#131#136#150#142#146#136#129#131'HJK'
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255'HJK'#255#255#255#255#255#255#246#246#248#248#247#251
+ ,#237#237#239#226#226#229#209#207#212#194#191#196#193#187#193#167#159#165'HJK'
+ +'HJK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJKHJK'#255#255#255#255
+ +#255#255#255#255#255#240#239#243#229#225#230#203#197#203'HJKHJK'#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'L'
+ +'NOHJKHJKHJKHJKHJK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#0#0
+]);
+LazarusResources.Add('TDABinDataStreamer','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#142']'
+ +'Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#225#189#255#221#181#255#217#172#255
+ +#213#165#255#211#157#255#207#151#255#203#145#255#201#140#255#199#135#128'PK'
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#255#231#203#255#227#194#255#224#187#255#220#178#255#216#171#0#0#0#0#0#0
+ +#255#206#149#255#203#143#128'PK'#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#255#238#217#255#233#208#255#230#199#255#226#191#255#221#182#0
+ +#0#0#255#215#166#0#0#0#255#207#152#128'PK'#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255
+ +#255#255#128#0#0'@'#0#0#255#243#229#255#240#222#255#235#213#255#233#204#255
+ +#229#197#0#0#0#0#0#0#255#216#171#255#213#165#128'PK'#128#0#0#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0'@'#0#0#7'9z'#255#246#233#255#242#225#255#238
+ +#218#255#234#209#0#0#0#255#227#193#0#0#0#255#218#176#128'PK'#128#0#0#255#255
+ +#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128
+ +#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#255#254#250#255#250#244#255#248
+ +#239#255#244#231#255#240#222#0#0#0#0#0#0#255#229#198#255#225#189#128'PK'#128
+ +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0
+ +#255#255#255#255#254#252#255#252#247#255#250#242#255#246#235#255#243#227#255
+ +#239#220#255#235#211#255#231#203#128'PK'#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#254#250#255#251#246#255#248#239
+ +#255#244#231#255#242#225#255#238#217#128'PKHJK'#201#194#201#7'9z'#7'9z'#7'9z'
+ +'='#154#242'5'#149#239'-'#140#239#7'9z'#7'9z'#7'9zyyy'#194#140'm'#255#255#255
+ +#255#255#255#255#255#255#137#167#199#7'9z'#137#167#199#255#252#248#247#240
+ +#235#226#218#209#226#216#204'{MIHJK'#206#199#204#191#184#192#7'9z@'#157#242
+ +'@'#157#242'@'#157#242'9'#152#240'2'#145#239#7'9zE_{yyy'#203#147'o'#255#255
+ +#255#255#255#255#137#167#199#7'9z'#15's'#233#7'9z'#137#167#199#234#233#230
+ +#182#180#176#182#177#171'uIEHJK'#209#202#209#194#188#194'h'#129#163#7'9z@'
+ +#157#242'@'#157#242'@'#157#242#7'9zE_{{{{yyy'#209#153'r'#255#255#255#137#167
+ +#199#7'9z'#15's'#233#15's'#233#15's'#233#7'9zURf'#160'g['#160'g['#149'\KHJK'
+ +#213#207#213#197#191#197#194#188#194'Qk'#138#7'9z@'#157#242#7'9zId'#128'yzzy'
+ +'yyyyy'#216#159'u'#137#167#199#7'9z'#27'}'#235#22'y'#234#18'u'#233#15's'#233
+ +#15's'#233#7'9z'#254#176'J'#240#145','#225#132'.HJK'#217#213#217#201#196#202
+ +#199#192#198#150#146#152'0Kf'#7'9z,D^'#137#137#137''#130#130#131'yyy'#220
+ +#163'v'#7'9z'#7'9z'#7'9z'#31#130#235#27'}'#235#22'y'#234#7'9z'#7'9z'#7'9z'
+ +#218#152'c'#255#0#255'HJK'#225#218#224#207#201#206#199#192#198#151#150#153'U'
+ +'WX'#175#175#177'JLM'#137#137#137#128#128#128#132#132#132''#220#163'v'#209
+ +#146'm'#209#146'm'#7'9z-'#140#239'%'#135#238#31#130#237#7'9zXTh'#212#154's'
+ +#255#0#255#255#0#255'HJK'#231#226#230#212#207#211#225#218#224#152#149#152'UW'
+ +'X'#176#175#177'LNO'#150#149#149#132#131#131'vvvyyy'#143#143#143#131#132#132
+ +'*C]'#7'9z7'#150#240'2'#146#240#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255'HJK'#239#235#239#235#233#235#198#197#199#160#157#161'UWX'#164#165
+ +#167';=>'#130#130#131#137#137#137#143#143#143#137#137#137#147#147#147'Id'#128
+ +#7'9z@'#157#242'@'#157#242'='#154#242#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255'HJK'#238#237#238#178#177#180#156#153#156#159#158#161'RTU'
+ +#235#235#237'ossY[Z'#7'9z'#7'9z'#7'9z'#7'9z'#7'9z@'#157#242'@'#157#242#7'9z'
+ +#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#237
+ +#235#237#129#129#130#213#209#212#207#207#208'`cdprrxy{'#138#142#140#171#172
+ +#172'Xt'#146#7'9z'#7'9z'#7'9z'#7'9z'#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#251#251#252#204#204#204
+ +#254#254#254#227#227#230#186#184#188#151#149#152#136#134#137'xy{rssfihehi'
+ +#150#152#153#150#152#153'HJK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#255#255#255#251#251#252#238
+ +#238#242#237#238#240#231#230#233#217#213#217#196#192#196#172#170#172#151#145
+ +#151#136#131#136#150#142#146#136#129#131'HJK'#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'
+ ,#255#255#255#255#255#255#246#246#248#248#247#251#237#237#239#226#226#229#209
+ +#207#212#194#191#196#193#187#193#167#159#165'HJKHJK'#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255'HJKHJK'#255#255#255#255#255#255#255#255#255#240#239#243
+ +#229#225#230#203#197#203'HJKHJK'#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255'LNOHJKHJKHJKHJKHJK'#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDAXMLDataStreamer','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#142']'
+ +'Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#225#189#255#221#181#255#217#172#255
+ +#213#165#255#211#157#255#207#151#255#203#145#255#201#140#255#199#135#128'PK'
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#255#231#203#255#227#194#255#224#187#255#220#178#0#0#0#255#212#161#255#208
+ +#156#0#0#0#255#203#143#128'PK'#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#255#238#217#255#233#208#255#230#199#255#226#191#0#0#0#255#218
+ +#175#255#215#166#0#0#0#255#207#152#128'PK'#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255
+ +#255#255#128#0#0'@'#0#0#255#243#229#255#240#222#255#235#213#255#233#204#255
+ +#229#197#0#0#0#0#0#0#255#216#171#255#213#165#128'PK'#128#0#0#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0'@'#0#0#7'9z'#255#246#233#255#242#225#255#238
+ +#218#0#0#0#255#231#203#255#227#193#0#0#0#255#218#176#128'PK'#128#0#0#255#255
+ +#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128
+ +#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#255#254#250#255#250#244#255#248
+ +#239#255#244#231#0#0#0#255#238#215#255#233#206#0#0#0#255#225#189#128'PK'#128
+ +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0
+ +#255#255#255#255#254#252#255#252#247#255#250#242#255#246#235#255#243#227#255
+ +#239#220#255#235#211#255#231#203#128'PK'#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#254#250#255#251#246#255#248#239
+ +#255#244#231#255#242#225#255#238#217#128'PKHJK'#201#194#201#7'9z'#7'9z'#7'9z'
+ +'='#154#242'5'#149#239'-'#140#239#7'9z'#7'9z'#7'9zyyy'#194#140'm'#255#255#255
+ +#255#255#255#255#255#255#137#167#199#7'9z'#137#167#199#255#252#248#247#240
+ +#235#226#218#209#226#216#204'{MIHJK'#206#199#204#191#184#192#7'9z@'#157#242
+ +'@'#157#242'@'#157#242'9'#152#240'2'#145#239#7'9zE_{yyy'#203#147'o'#255#255
+ +#255#255#255#255#137#167#199#7'9z'#15's'#233#7'9z'#137#167#199#234#233#230
+ +#182#180#176#182#177#171'uIEHJK'#209#202#209#194#188#194'h'#129#163#7'9z@'
+ +#157#242'@'#157#242'@'#157#242#7'9zE_{{{{yyy'#209#153'r'#255#255#255#137#167
+ +#199#7'9z'#15's'#233#15's'#233#15's'#233#7'9zURf'#160'g['#160'g['#149'\KHJK'
+ +#213#207#213#197#191#197#194#188#194'Qk'#138#7'9z@'#157#242#7'9zId'#128'yzzy'
+ +'yyyyy'#216#159'u'#137#167#199#7'9z'#27'}'#235#22'y'#234#18'u'#233#15's'#233
+ +#15's'#233#7'9z'#254#176'J'#240#145','#225#132'.HJK'#217#213#217#201#196#202
+ +#199#192#198#150#146#152'0Kf'#7'9z,D^'#137#137#137''#130#130#131'yyy'#220
+ +#163'v'#7'9z'#7'9z'#7'9z'#31#130#235#27'}'#235#22'y'#234#7'9z'#7'9z'#7'9z'
+ +#218#152'c'#255#0#255'HJK'#225#218#224#207#201#206#199#192#198#151#150#153'U'
+ +'WX'#175#175#177'JLM'#137#137#137#128#128#128#132#132#132''#220#163'v'#209
+ +#146'm'#209#146'm'#7'9z-'#140#239'%'#135#238#31#130#237#7'9zXTh'#212#154's'
+ +#255#0#255#255#0#255'HJK'#231#226#230#212#207#211#225#218#224#152#149#152'UW'
+ +'X'#176#175#177'LNO'#150#149#149#132#131#131'vvvyyy'#143#143#143#131#132#132
+ +'*C]'#7'9z7'#150#240'2'#146#240#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255'HJK'#239#235#239#235#233#235#198#197#199#160#157#161'UWX'#164#165
+ +#167';=>'#130#130#131#137#137#137#143#143#143#137#137#137#147#147#147'Id'#128
+ +#7'9z@'#157#242'@'#157#242'='#154#242#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255'HJK'#238#237#238#178#177#180#156#153#156#159#158#161'RTU'
+ +#235#235#237'ossY[Z'#7'9z'#7'9z'#7'9z'#7'9z'#7'9z@'#157#242'@'#157#242#7'9z'
+ +#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#237
+ +#235#237#129#129#130#213#209#212#207#207#208'`cdprrxy{'#138#142#140#171#172
+ +#172'Xt'#146#7'9z'#7'9z'#7'9z'#7'9z'#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#251#251#252#204#204#204
+ +#254#254#254#227#227#230#186#184#188#151#149#152#136#134#137'xy{rssfihehi'
+ +#150#152#153#150#152#153'HJK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#255#255#255#251#251#252#238
+ +#238#242#237#238#240#231#230#233#217#213#217#196#192#196#172#170#172#151#145
+ +#151#136#131#136#150#142#146#136#129#131'HJK'#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'
+ ,#255#255#255#255#255#255#246#246#248#248#247#251#237#237#239#226#226#229#209
+ +#207#212#194#191#196#193#187#193#167#159#165'HJKHJK'#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255'HJKHJK'#255#255#255#255#255#255#255#255#255#240#239#243
+ +#229#225#230#203#197#203'HJKHJK'#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255'LNOHJKHJKHJKHJKHJK'#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDARemoteDataAdapter','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#17#128#169#17#128#169
+ +#17#128#169#17#128#169#17#128#169#17#128#169#17#128#169#255#0#255#255#0#255
+ +#255#0#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#128#0#0'@'#0#0'$}'#145#25#149#178'%'#183#215'Q'#210#235'~'#229#245#130#218
+ +#234'J'#179#210#17#128#169#17#128#169#255#0#255#128#0#0#255#255#255#128#0#0
+ +#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128
+ +#0#0#255#255#255#128#0#0'@'#0#0'aTA'#29'u'#133#29#144#168'I'#188#211'|'#225
+ +#240#145#230#243'b'#201#228'0'#169#212#21#148#197#17#128#169#128#0#0#255#255
+ +#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128
+ +#0#0#128#0#0#255#255#255#128#0#0'@'#0#0#174'L'#8#158'='#12'JfaH'#186#209'}'
+ +#227#242#145#230#243'b'#201#228'0'#169#212#22#153#204#17#128#169#128#0#0#255
+ +#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255
+ +#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#216#140';'#168'N'#31'5'
+ +#130#140'M'#200#225''#230#246#145#230#243'b'#201#228'0'#169#212#22#153#204
+ +#17#128#169#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255
+ +#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#203
+ +#130'F|M."'#168#197'R'#213#238#128#232#248#145#230#243'b'#201#228'0'#169#212
+ +#22#153#204#17#128#169#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#128#0#0'@'#0#0#177']-Jok&'#187#220'U'#220#247#128#232#248#145
+ +#230#243'b'#201#228'0'#169#212#22#153#204#17#128#169#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#159'N"'#152'R+a'#188#202's'#217#233#143#236#247#164#240#247#172#239#244
+ +#129#215#233'A'#178#216#22#153#204#17#128#169#17#128#169#150#248#247'u'#239
+ +#249'N'#227#250'&'#215#252'2'#203#234#154'I'#30#199#136'Z'#169'S&'#139'X9Trw'
+ +#16'z'#161#163#230#233#137'pZdib0'#142#172#17'}'#166#17#128#169#17#128#169'3'
+ +#151#183'?'#158#188'x'#196#212#133#209#225#17#128#169#17#128#169#150#248#247
+ +'u'#239#249'N'#227#250'&'#215#252'+'#214#251'x'#138'~'#140'j'#139#196#201'_'
+ +#195#222'0'#168#211#17#128#169#25#135#174'H'#159#178'C'#191#213'$'#207#244'+'
+ +#213#250'V'#223#250#128#232#248#138#225#238'N'#182#213' '#147#188#17#130#171
+ +#17#128#169#17#128#169#150#248#247'u'#239#249'N'#227#250'&'#215#252'+'#214
+ +#251'V'#223#250#128#232#248#145#230#243'b'#201#228'0'#168#210#17'~'#167#141
+ +#239#240'u'#239#249'N'#227#250'&'#214#251'*'#208#244'Q'#210#235'y'#219#234
+ +#142#225#238'b'#201#228'0'#169#212#22#151#202#17#128#169#17#128#169#150#248
+ +#247#129#240#248'u'#234#248'w'#231#248'z'#231#248#143#236#247#164#240#247#172
+ +#239#244''#212#230'='#168#204#16'v'#156#145#239#238's'#235#245'J'#215#237'"'
+ +#193#226'$'#177#208'A'#170#190'f'#185#197#134#213#225'b'#200#227'0'#169#212
+ +#22#153#204#17#128#169#17#128#169#165#233#236'x'#196#212'?'#158#188'3'#151
+ +#183#17#128#169#17#128#169#17#128#169'3'#151#183'<'#150#178'l'#140#141#13'c'
+ +#131#128#211#210'd'#205#214'<'#175#193'*'#135#150'aVDkT>R'#149#159'z'#193#204
+ +'`'#196#223'0'#169#212#22#153#204#17#128#169#17#128#169#25#135#174'<'#176#204
+ +'>'#202#230'$'#209#246'+'#214#251'V'#223#250#128#232#248#136#222#235'exuhE0'
+ +#10'Mfe'#155#152'hsc'#133'B'#27#156'7'#0#175'J'#1#153'3'#0'Rxzm'#172#182'\'
+ +#188#214'0'#169#212#22#153#204#17#128#169#17#128#169#142#241#242'u'#239#249
+ +'N'#227#250'&'#215#252'+'#214#251'V'#223#250#128#232#248#139#220#233#144'A'
+ +#23#153'3'#0'c9!'#148'8'#8#172'L'#14#192'd'#20#207'q'#17#205'k'#7#172'G'#1'o'
+ +'WAb'#156#165'X'#180#204'0'#168#211#22#153#204#17#128#169#17#128#169#150#248
+ +#247'u'#239#249'N'#227#250'&'#215#252'+'#214#251'V'#223#250''#230#246#137
+ +#158#150#162'@'#10#188'i*'#193'q1'#212#140'A'#217#143'<'#215#138'6'#215#137
+ +'7'#213#132'1'#200'r('#150'I'#31'o'#181#181'z'#214#219'Q'#201#228#30#162#210
+ +#17#128#169#17#128#169#150#248#247'u'#239#249'N'#227#250'&'#215#252'+'#214
+ +#251'V'#223#250'}'#227#242#145'W3'#200'A'#229#179'q'#230#179'q'#227#173'j'
+ +#226#170'g'#225#165'b'#211#141'K'#191'n5'#168'N'#31#151'W/'#141#204#196#148
+ +#240#238#136#243#247'a'#230#250#17#128#169#17#128#169#150#248#247'u'#239#249
+ +'N'#227#250'&'#215#252'+'#214#251'V'#223#250#129#193#196#158';'#7#234#192#134
+ +#239#208#158#241#212#166#234#197#148#210#151'd'#178'_/'#161'J'#30#158'c'#151
+ +#209#201#149#242#240#152#248#246#153#249#247#17#128#169#17#128#169#255#0#255
+ +#17#128#169#150#248#247'u'#239#249'N'#227#250'&'#215#252'+'#214#251'V'#223
+ ,#250#134#173#168#160'N#'#191'{P'#229#197#160#225#190#154#164'H'#27'oA''Qbe'
+ +#17#128#169#17#128#169#17#128#169#17#128#169#17#128#169#17#128#169#255#0#255
+ +#255#0#255#255#0#255#17#128#169#163#249#248#174#246#251#172#246#251#160#246
+ +#249#156#249#247#153#249#247#153#249#247#150#233#230#141#152#133#150'Q*'#172
+ +'Y.'#144'4'#6#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#255#255#244#254
+ +#254#219#253#252#194#251#250#168#250#248#154#249#247#153#249#247#153#249#247
+ +#153#249#247#137#244#248'r'#172#170#144'4'#6#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#17#128#169#17#128#169#236#254#254#211#252#252#186#251#250#162
+ +#250#248#153#249#247#153#249#247#153#249#247#17#128#169#17#128#169#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#17#128#169
+ +#17#128#169#17#128#169#17#128#169#17#128#169#17#128#169#17#128#169#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDABusinessProcessor','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +'@'#0#0#255#0#255#1#3#132#1#1'z'#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128
+ +#0#0'@'#0#0#1#6#140#3#19#202#2#10#171#1#1'z'#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255
+ +#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128
+ +#0#0'@'#0#0#2#29#218#2#25#216#3#20#207#2#10#171#1#1'z'#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255
+ +#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255
+ +#255#128#0#0'@'#0#0#1'%'#234#2#31#225#2#25#216#3#20#207#2#10#171#1#1'z'#255#0
+ +#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0
+ +#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255#255#255#255
+ +#255#128#0#0'@'#0#0#128#149#248'1N'#237#2#31#225#2#25#216#3#20#207#2#10#171#1
+ +#1'z'#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#128#0#0'@'#0#0#255#255#255#144#162#248#1'%'#234#2#31
+ +#225#2#25#216#3#20#207#2#10#171#1#1'z'#255#0#255#255#0#255#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#255#255#255#225#231#255#239#242#254#17'8'#243#1'%'#234#2#31#225
+ +#2#25#216#3#20#207#2#10#171#1#1'z'#255#0#255#255#0#255#7#141#187'v'#223#233
+ +#131#248#254'`'#236#254'<'#224#254#27#210#251'+'#203#239#14#22#147'7d'#247'2'
+ +'b'#255')Z'#255#159#181#255'n'#141#255'Lr'#255#255#255#255#175#190#253#1'+'
+ +#243#1'%'#234#2#31#225#2#25#216#3#20#207#2#10#171#1#1'z'#255#0#255#7#141#187
+ +'v'#223#233#151#249#254#147#242#254#149#238#254#157#235#253#176#233#247#23'&'
+ +#164'Ds'#255';k'#255'2b'#255')Z'#255' Q'#255#23'I'#255#151#173#255#255#255
+ +#255'`}'#252#1'+'#243#1'%'#234#2#31#225#2#25#216#3#19#202#1#3#132#255#0#255#7
+ +#141#187#180#238#243#188#242#248#138#218#235'Y'#194#221'2'#170#206'"'#154#192
+ +#28'I'#158#28'.'#172'Ds'#255';k'#255'2b'#255')Z'#255' Q'#255'&U'#255#211#220
+ +#255#255#255#255#175#190#253'@`'#245#1'%'#234#2#29#218#1#6#140#255#0#255#255
+ +#0#255#9#138#183'o'#194#214'?'#176#203'='#189#218'/'#198#231#25#199#241','
+ +#210#248'S'#220#251'CO'#157#28'.'#172'Ds'#255';k'#255'2b'#255')Z'#255' Q'#255
+ +'&U'#255#151#173#255#255#255#255#207#216#254#1')'#235#1#8#143#255#0#255#255#0
+ +#255#255#0#255#11#134#178'Y'#196#215#128#245#252'`'#236#254'<'#224#254#27#212
+ +#254'.'#216#254'U'#223#254'z'#229#252#28'9'#141#28'.'#172'Ds'#255';k'#255'2b'
+ +#255')Z'#255' Q'#255#23'I'#255'-Y'#255'5Z'#247#1#10#146#255#0#255#255#0#255
+ +#255#0#255#255#0#255#7#140#186'v'#223#233#131#248#254'`'#236#254'<'#224#254
+ +#27#212#254'.'#216#254'U'#224#255'{'#231#254'v'#200#220#27'<'#145#28'.'#172
+ +'Ds'#255';k'#255'2b'#255')Z'#255' Q'#255#22'E'#247#4#13#147#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#7#141#187'v'#223#233#131#248#254'`'#236
+ +#254'<'#224#254#27#212#254'.'#216#254'U'#224#255'{'#232#255#144#227#244'c'
+ +#194#217#19';'#146#28'.'#172'Ds'#255';k'#255'2b'#255'''T'#247#7#16#147#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#7#141#187'v'#223#233
+ +#131#248#254'`'#236#254'<'#224#254#27#212#254'.'#216#254'U'#224#255'{'#232
+ +#255#149#235#253'h'#205#230'4'#168#203#4'3'#142#28'.'#172'Ds'#255'7d'#247#10
+ +#19#147#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#7#141#187'v'#223#233#131#248#254'`'#236#254'<'#224#254#27#212#254'.'#216#254
+ +'U'#224#255'{'#232#255#149#235#253'l'#212#238'7'#178#214#9#145#190#2'0'#139
+ +#23'&'#164#14#22#147#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#7#141#187'v'#223#233#131#248#254'`'#236#254'<'#224
+ +#254#27#212#254'.'#216#254'U'#224#255'{'#232#255#149#235#253'l'#212#238'9'
+ +#184#222#10#153#201#4#138#184#13'v'#157#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#7#141#187'}'#223#233
+ +#173#251#254#179#249#255#168#249#254#170#255#254#154#255#254#153#255#254#153
+ +#255#254#153#255#254#143#246#251'k'#227#244')'#187#224#4#145#194#14'}'#167
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ ,#255#255#0#255#7#141#187#195#223#234#250#255#255#229#255#255#207#255#255#185
+ +#255#254#164#255#254#153#255#254#153#255#254#153#255#254#153#255#254#148#253
+ +#254'q'#242#254'>'#205#233#14#128#170#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#7#141#187'h'#176#202#240
+ +#247#250#245#255#255#223#255#255#201#255#254#179#255#254#158#255#254#153#255
+ +#254#153#255#254#153#255#254#153#255#254#132#243#249'0'#170#202#14#128#170
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#7#141#187#14#145#190'|'#192#213'|'#192#213#164#223
+ +#234#148#223#233#131#223#233'w'#223#233'v'#223#233'T'#192#212'T'#192#212#23
+ +#136#175#14#128#170#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#7
+ +#141#187#7#141#187#7#141#187#7#141#187#7#141#187#7#141#187#7#141#187#7#141
+ +#187#7#141#187#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDADesigntimeCall','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#1'2'#2
+ +#1'2'#2#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#2'p'#7#1'J'#4#1'2'#2#1'2'#2
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#3#166#12#3
+ +#166#12#3'{'#9#1'J'#4#1'2'#2#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#3#154#11#3
+ +#154#11#3#166#12#3#166#12#2'l'#7#1'2'#2#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0#0#3#166#12#3#166#12
+ +#3#154#11#3#166#12#3#166#12#2'l'#7#1'2'#2#255#0#255#255#0#255#255#0#255#128#0
+ +#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#3#154#11#3#154#11
+ +#3#154#11#3#154#11#3#166#12#3#166#12#2'l'#7#1'2'#2#255#0#255#255#0#255#128#0
+ +#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255
+ +#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#3#154#11#3#166#12#3
+ +#154#11#3#166#12#3#154#11#3#166#12#3#166#12#1'J'#4#255#0#255#255#0#255#128#0
+ +#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#3
+ +#166#12#3#154#11#3#154#11#3#154#11#3#154#11#3#154#11#3#166#12#3'{'#9#1'2'#2
+ +#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#3#154#11#3#154#11#3#166#12#3#154#11
+ +#3#166#12#3#154#11#3#166#12#3#154#11#3#166#12#1'@'#3#255#0#255#1'J'#4#7'i'#20
+ +#28#184'P'#25#177'A'#20#175'A'#218#244#225#246#252#246'#'#176'-'#3#154#11#3
+ +#166#12#3#154#11#3#154#11#3#166#12' '#175'+.'#181'9'#3#154#11#3#166#12#3#154
+ +#11#3#154#11#3#154#11#3#166#12#3#166#12#1'Y'#5#2'='#4#1'Y'#5#13#128'#!'#186
+ +'V'#28#178'N'#20#175'A'#218#244#225#255#255#255#153#222#160#8#163#25#8#163#25
+ +#6#164#21#8#163#25#8#161#22'='#187'G'#231#247#233'Y'#199'c'#3#154#11#3#166#12
+ +#3#154#11#3#166#12#3#154#11#3#166#12#2'p'#7#2'='#4#1'Y'#5#19#144'/*'#191'`'
+ +#30#180'P"'#181'T'#181#233#199#255#255#255#255#255#255#134#217#160')'#183'Q'
+ +#25#177'A'#28#178'N)'#183'Q1'#182'?'#255#255#255#255#255#255'r'#208'z'#3#154
+ +#11#3#166#12#3#154#11#3#154#11#3#166#12#3#129#9#1'2'#2#2'l'#7#29#154'9C'#197
+ +'s"'#181'T"'#181'Tc'#206#138#255#255#255#255#255#255#255#255#255#202#239#216
+ +'}'#215#158'W'#202#128'W'#202#128#132#216#144#255#255#255#255#255#255#255#255
+ +#255#146#220#153#8#163#25#3#154#11#3#166#12#3#166#12#3#129#9#1'@'#3#4'm'#8#29
+ +#154'9\'#208#137'9'#191'h"'#181'T('#184'Y'#183#234#202#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#178#230#186'1'#182'?'#3#154#11#3#166#12
+ +#3#129#9#2'='#4#3'u'#9#26#150'0l'#212#149'Y'#205#133'"'#181'T"'#181'T9'#191
+ +'h'#192#237#209#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#159
+ +#225#175#6#164#21#3#166#12#4'm'#8#2'='#4#255#0#255#14#139#28'l'#212#149#134
+ +#217#160'='#192'k'#22#175'I"'#181'T('#184'Y'#140#220#170#230#248#237#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#178#230#186'#'#178';'#4#159#17#3#166#12#1'Y'#5#255#0#255#255#0
+ +#255#15#146#28'I'#193'l'#167#230#192'v'#213#152'('#184'Y'#22#175'I"'#181'T"'
+ +#181'T9'#191'hv'#213#152#177#231#198#208#242#221#246#252#246#255#255#255#255
+ +#255#255#255#255#255#147#221#163#22#171'-'#8#163#25#6#164#21#4#159#17#1'@'#3
+ +#255#0#255#255#0#255#255#0#255#26#161'1'#154#227#186#181#233#199'Y'#205#133
+ +'"'#181'T'#20#175'A'#30#180'P"'#181'T"'#181'T"'#181'T9'#191'h'#159#225#175
+ +#255#255#255#255#255#255'z'#212#138#22#171'-'#12#167'$'#8#163#25#9#176#28#3
+ +'u'#9#255#0#255#255#0#255#255#0#255#255#0#255'('#161'2I'#193'l'#183#234#202
+ +#183#234#202'W'#202#128'('#184'Y'#22#175'I'#30#180'P"'#181'T'#30#180'P'#30
+ +#180'P'#147#222#175#246#252#246'Y'#205#133#16#170'0'#16#170'0'#12#173''''#12
+ +#173''''#12#167'$'#1'@'#3#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#20#156'$k'#209#139#192#237#209#189#237#208'v'#213#152'9'#191'h"'#181'T'#28
+ +#178'N('#184'Y"'#181'Tl'#212#149'Y'#205#133#25#177'A'#25#177'A'#21#166'<'#16
+ +#170'0'#15#176'-'#5'_'#13#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#21#151'$l'#212#149#192#237#209#208#242#221#164#227#188
+ ,'l'#212#149'P'#198'y9'#191'h('#184'Y='#192'k9'#191'h9'#191'h('#184'Y '#183'L'
+ +#25#177'A'#7'i'#20#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#28#158'(O'#196's'#154#227#186#189#237#208
+ +#192#237#209#183#234#202#154#227#186#140#220#170#129#217#164'l'#212#149'Y'
+ +#205#133'9'#191'h '#183'L'#7'i'#20#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#28#158
+ +'('#26#161'1P'#198'y'#129#217#164#149#226#181#149#226#181#140#220#170'v'#213
+ +#152'\'#208#137'9'#191'h'#22#145'2'#5'_'#13#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#28#158'('#26#161'1&'#169'C&'#169'C&'#169'C#'
+ +#161'@'#19#144'/'#2'l'#7#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDADataSource','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255#255
+ +#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128
+ +#0#0#255#255#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#128#0
+ +#0#128#0#0#128#0#0#128#0#0#255#0#255#255#0#255#128#0#0#255#255#255#128#0#0
+ +#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255
+ +#255#255#255#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#0#0#128#0#0#128#0#0#255#0#255#255#0#255#128#0#0#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#255#0#255#255#0#255#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0
+ +#0#255#0#255#255#0#255#128#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#128#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128
+ +#255#255#255#255#255#255#255#255#255#255#255#255#200#208#212#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#128#128#128#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#128#128#255#255#255#200#208#212#200#208
+ +#212#255#255#255#200#208#212#255#255#255#200#208#212#200#208#212#200#208#212
+ +#200#208#212#200#208#212#200#208#212#255#255#255#128#128#128#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255#200#208#212#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#255#255#255#200#208#212
+ +#200#208#212#255#255#255#200#208#212#255#255#255#200#208#212#200#208#212#200
+ +#208#212#200#208#212#200#208#212#255#255#255#255#255#255#128#128#128#255#0
+ +#255#255#0#255#255#0#255#255#0#255#128#0#0#128#0#0#255#0#255#255#0#255#255#0
+ +#255#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255#200#208#212
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#128#128#128#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#255#0#255#255#0#255#128#128#128#255#255#255#200#208#212#200
+ +#208#212#255#255#255#200#208#212#255#255#255#200#208#212#200#208#212#200#208
+ +#212#200#208#212#200#208#212#200#208#212#255#255#255#128#128#128#255#0#255
+ +#255#0#255#255#0#255#255#0#255#128#0#0#128#0#0#255#0#255#255#0#255#255#0#255
+ +#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255#200#208#212#255
+ ,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0
+ +#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#128#128#128#200#208#212#200#208#212#200#208#212#200#208#212#200
+ +#208#212#200#208#212#200#208#212#200#208#212#200#208#212#200#208#212#200#208
+ +#212#200#208#212#200#208#212#128#128#128#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255
+]);
+LazarusResources.Add('TDAServerLog','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#194#30#0#0#194#30#0#0#0#0#0#0#0#0#0#0#255#0#255'>'#0#0'>'#0#0'>'#0
+ +#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0'>'#0#0#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0
+ +'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'>'#0#0#183#129#131#183#129#131#183#129
+ +#131#183#129#131#183#129#131#183#129#131#183#129#131#183#129#131#183#129#131
+ +#255#0#255'}'#4#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255'}'#4
+ +#0'>'#0#0#254#220#182#254#216#173#254#220#182#254#215#171#254#215#171#254#215
+ +#171#254#215#171#254#215#171#179#137'{'#255#0#255'}'#4#0#255#255#255'}'#4#0
+ +'}'#4#0'}'#4#0#255#255#255#255#255#255'}'#4#0#255#255#255#255#255#255'}'#4#0
+ +#255#255#255'}'#4#0'>'#0#0#254#220#182#254#220#182#254#215#171#254#220#182
+ +#254#216#173#254#216#173#254#215#171#254#215#171#179#137'{'#255#0#255'}'#4#0
+ +#255#255#255'}'#4#0#255#255#255#255#255#255'}'#4#0#255#255#255'}'#4#0'}'#4#0
+ +'}'#4#0'}'#4#0#255#255#255'}'#4#0'>'#0#0#254#220#182#254#220#182#0#153#0#254
+ +#216#173#254#220#182#254#216#173#254#216#173#254#216#173#179#137'{'#255#0#255
+ +'}'#4#0#255#255#255'}'#4#0#255#255#255#255#255#255'}'#4#0#255#255#255'}'#4#0
+ +#255#255#255#255#255#255'}'#4#0#255#255#255'}'#4#0'>'#0#0#254#222#185#0#153#0
+ +#0#153#0#0#153#0#254#220#182#254#216#173#254#216#173#254#216#173#179#137'{'
+ +#255#0#255'}'#4#0#255#255#255'}'#4#0'}'#4#0'}'#4#0#255#255#255#255#255#255
+ +#255#255#255'}'#4#0'}'#4#0#255#255#255#255#255#255'}'#4#0'>'#0#0#0#153#0'K'
+ +#144'<~'#164'^'#0#153#0'o'#156'Q'#254#220#182#254#216#173#254#216#173#179#137
+ +'{'#255#0#255'}'#4#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +'}'#4#0'>'#0#0#0#153#0#254#222#185#254#222#185#192#194#141#0#153#0#0#153#0
+ +#254#220#182#254#216#173#179#137'{'#255#0#255'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'
+ +#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0'}'#4#0#254#228#198#254
+ +#228#198#254#228#198#254#222#185#254#222#185#242#217#178#0#153#0#0#153#0#254
+ +#220#182#179#137'{'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#179#137
+ +'{'#254#240#225#254#240#222#254#238#220#254#238#220#254#233#209#254#233#209
+ +#254#233#209#254#231#204#254#231#204#254#228#198#254#228#198#254#228#198#254
+ +#228#198#254#220#182#254#222#185#254#222#185#254#220#182#179#137'{'#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#182#139#128#254#240#225#254#240#225
+ +#254#240#222#254#238#220#254#238#220#254#238#220#254#233#209#254#233#209#254
+ +#232#206#254#231#204#254#228#198#0#153#0#254#228#198#254#228#198#254#222#185
+ +#254#222#185#254#222#185#179#137'{'#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#186#142#130#254#244#233#254#240#225#254#240#225#254#240#225#254
+ +#238#220#254#238#220#254#233#209#254#233#209#254#233#209#254#232#206#0#153#0
+ +#0#153#0#0#153#0#254#228#198#254#228#198#254#222#185#254#222#185#179#137'{'
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#190#146#131#254#244#233
+ +#254#244#233#223#153'>'#223#153'>'#223#153'>'#223#153'>'#223#153'>'#223#153
+ +'>'#254#233#209#0#153#0'K'#147'A~'#169'g'#0#153#0'o'#160'X'#254#228#198#254
+ +#228#198#254#228#198#179#137'{'#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#194#150#133#255#248#239#254#244#233#254#244#233#254#244#233#254#240#225
+ +#254#240#225#254#240#225#254#238#220#254#238#220#0#153#0#254#231#204#254#233
+ +#209#192#201#156#0#153#0#0#153#0#254#228#198#254#224#190#179#137'{'#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#198#153#134#254#248#241#254#248#241
+ +#254#244#233#254#244#233#254#244#233#254#240#225#254#240#225#254#240#225#254
+ +#238#220#254#238#220#254#233#209#254#233#209#254#233#209#242#226#197#0#153#0
+ +#0#153#0#254#228#198#182#139#128#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#202#156#136#254#248#241#254#248#241#254#248#241#255#248#239#254#244
+ +#233#254#244#233#254#244#233#254#240#225#254#240#225#254#240#222#254#238#220
+ +#254#238#220#254#233#209#254#233#209#254#233#209#254#231#204#254#231#204#156
+ +#131'~'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#206#160#137#254#248
+ +#241#254#248#241#254#248#241#254#248#241#254#244#233#254#244#233#254#244#233
+ +#254#240#225#254#240#225#254#240#225#254#240#222#0#153#0#254#238#220#254#233
+ +#209#254#233#209#254#233#209#254#231#204#156#131'~'#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#210#163#138#255#252#249#255#252#249#254#248#241#254
+ +#248#241#254#248#241#254#248#241#255#248#239#254#244#233#254#244#233#254#240
+ +#225#0#153#0#0#153#0#0#153#0#254#238#220#254#238#220#254#233#209#254#232#206
+ +#156#131'~'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#210#163#138#254
+ +#248#241#255#252#249#223#153'>'#223#153'>'#223#153'>'#223#153'>'#223#153'>'
+ +#223#153'>'#254#244#233#0#153#0'K'#147'A~'#174'q'#0#153#0'o'#165'b'#254#238
+ ,#220#254#233#209#254#233#209#173#130't'#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#222#173#142#255#252#249#255#252#249#255#252#249#255#252#249
+ +#254#248#241#254#248#241#254#248#241#254#248#241#254#244#233#0#153#0#254#240
+ +#225#254#244#233#192#209#172#0#153#0#0#153#0#254#238#220#254#238#220#184#130
+ +#133#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#222#173#142#254#248
+ +#241#255#252#249#254#248#241#255#252#249#255#252#249#255#252#249#254#248#241
+ +#254#248#241#254#248#241#254#248#241#254#248#241#254#244#233#254#240#225#243
+ +#236#218#0#153#0#0#153#0#254#238#220#156#131'~'#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#222#173#142#255#252#249#255#252#249#255#252#249#255#252
+ +#249#255#252#249#255#252#249#255#252#249#255#252#249#254#248#241#254#248#241
+ +#255#248#239#254#244#233#254#244#233#254#244#233#254#240#225#254#240#225#254
+ +#240#222#156#131'~'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#222#173
+ +#142#254#248#241#255#252#249#254#248#241#255#252#249#254#248#241#255#252#249
+ +#254#248#241#255#252#249#254#248#241#254#248#241#254#248#241#254#248#241#255
+ +#248#239#254#244#233#254#244#233#254#240#225#254#240#225#156#131'~'#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#218#164#130#218#171#141#218#164#130
+ +#218#171#141#218#164#130#218#171#141#218#164#130#218#171#141#218#164#130#218
+ +#164#130#218#164#130#218#164#130#218#164#130#218#164#130#218#164#130#218#164
+ +#130#218#164#130#218#164#130#156#131'~'#255#0#255
+]);
+LazarusResources.Add('TDADatasetProvider','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#128#0#0'@'#0#0#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#128#128#128
+ +#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#255#255#255#128#128
+ +#128#0#0#0#192#220#192#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255
+ +#128#128#128#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255
+ +#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0#0#128#128
+ +#128#0#0#0#255#255#255#128#128#128#255#255#255#0#0#0#128#128#128#255#255#255
+ +#255#255#255#128#128#128#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128
+ +#0#0'@'#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#128#128#128#255#255#255#255#255#255#128#128#128#128#0#0#255#255#255#128#0#0
+ +#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128#0#0#255#255
+ +#255#255#255#255#128#0#0'@'#0#0#192#220#192#128#128#128#255#255#255#0#0#0#255
+ +#255#255#128#128#128#192#220#192#255#255#255#255#255#255#128#128#128#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#0#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#255
+ +#255#255#255#255#128#128#128#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#128
+ +#128#0#0#0#255#255#255#128#128#128#255#255#255#0#0#0#128#128#128#255#255#255
+ +#255#255#255#128#128#128#255#0#255#128#128#128#192#220#192#255#255#255#255
+ +#255#255#192#220#192#192#220#192#0#0#0#255#0#255#128#128#128#128#128#128#128
+ +#128#128#255#255#255#255#255#255#255#255#255#128#128#128#0#0#0#192#220#192#0
+ +#0#0#128#128#128#255#255#255#255#255#255#255#255#255#128#128#128#255#0#255
+ +#128#128#128#192#220#192#192#220#192#255#255#255#255#255#255#192#220#192#0#0
+ +#0#255#0#255#128#128#128#192#220#192#128#128#128#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#128#128#128#255#0#255#128#128#128#192#220#192
+ +#255#255#255#255#255#255#192#220#192#192#220#192#0#0#0#255#0#255#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#255#0#255#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#0#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#192#220#192
+ +#255#255#255#255#255#255#255#255#255#192#220#192#0#0#0#255#0#255#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#255#0#255#128#128#128#128#128#128#255#255#255#255#255#255
+ +#255#255#255#128#128#128#0#0#0#255#0#255#128#128#128#192#220#192#128#128#128
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#128#128#255#0
+ +#255#255#0#255#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#255#0#255#255#0#255#128#128#128#255#255#255#128#128#128#255#255#255#255#255
+ +#255#255#255#255#128#128#128#0#0#0#192#220#192#0#0#0#128#128#128#255#255#255
+ +#255#255#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#192#220#192
+ +#128#128#128#255#255#255#255#255#255#128#128#128#0#0#0#255#255#255#128#128
+ +#128#255#255#255#0#0#0#128#128#128#255#255#255#255#255#255#128#128#128#255#0
+ +#255#255#0#255#255#0#255#128#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#128#128#128#255#255#255#128#128#128#255#255#255#255#255#255#0#0#0#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#128#128#255#255
+ +#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255#128#0#0#255#0#255
+ +#128#0#0#255#0#255#255#0#255#255#0#255#128#128#128#192#220#192#128#128#128
+ ,#255#255#255#255#255#255#192#220#192#128#128#128#255#255#255#0#0#0#255#255
+ +#255#128#128#128#192#220#192#255#255#255#255#255#255#128#128#128#255#0#255
+ +#255#0#255#255#0#255#128#0#0#255#0#255#128#0#0#128#0#0#255#0#255#255#0#255
+ +#128#128#128#255#255#255#128#128#128#255#255#255#255#255#255#0#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#255#255#255
+ +#255#255#128#128#128#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#128#0#0
+ +#128#0#0#128#0#0#255#0#255#128#128#128#192#220#192#128#128#128#255#255#255
+ +#255#255#255#128#128#128#0#0#0#255#255#255#128#128#128#255#255#255#0#0#0#128
+ +#128#128#255#255#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#128#0#0#128#0#0#255#0#255#255#0#255#128#128#128#128#128
+ +#128#128#128#128#255#255#255#255#255#255#255#255#255#128#128#128#0#0#0#192
+ +#220#192#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255#128#128#128
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#0#0#255#0#255#255#0
+ +#255#255#0#255#128#128#128#192#220#192#128#128#128#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#128#128#128#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128
+]);
+
+LazarusResources.Add('TDAMemDataTable','BMP',[
+ 'BM'#248#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#194#6#0#0#18#11#0#0#18#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#5'f'#149#5'f'#149#5'f'#149#5'f'#149#5'f'#149#5'f'#149#255#0
+ +#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#2't'#169'0'#201
+ +#233#18#203#254' '#206#254'T'#222#255't'#224#248','#167#211#5'f'#149#255#0
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +'@'#0#0#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222#255't'
+ +#224#248'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255#255#128#0#0#128#0#0
+ +#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255
+ +#255#255#128#0#0'@'#0#0#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254
+ +'T'#222#255't'#224#248'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128
+ +#0#0#255#255#255#128#0#0'@'#0#0#2't'#169's'#250#254'?'#227#254#18#203#254' '
+ +#206#254'T'#222#255't'#224#248'0'#176#218#3#134#193#5'f'#149#128#0#0#255#255
+ +#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255
+ +#255#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#2't'#169#159#251#254#163#243
+ +#255#182#242#255#218#248#255#229#250#255#216#247#254#154#220#239'A'#172#213#5
+ +'f'#149#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255
+ +#255#255#255#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#2't'#169
+ +#167#233#243#28#170#211#7#145#197#7#136#188#16#139#188#31#145#191#20'y'#173
+ +'y'#192#220#5'g'#150#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#128#0#0'@'#0#0#2't'#169'1'#181#211'?'#227#254#18#203#254' '#206#254
+ +'T'#222#255't'#224#248'0'#176#218#2'h'#163#3'h'#154#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0'4'#144'4'#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222
+ +#255't'#224#248'0'#176#218#3#134#193#5'f'#149#150'5'#17#254#254#254#254#254
+ +#254#254#254#251#254#250#247#0'e'#0#254#246#237#254#243#230#254#240#225#254
+ +#237#218#254#233#211#0'e'#0#254#226#197#254#233#208#2't'#169's'#250#254'?'
+ +#227#254#18#203#254' '#206#254'T'#222#255't'#224#248'0'#176#218#3#134#193#5
+ +'f'#149#150'5'#17#254#254#254#254#254#254#254#254#254#254#254#252#0'e'#0#254
+ +#248#243#254#246#239#254#244#233#254#242#226#254#238#221#0'e'#0#254#230#206
+ +#254#235#216#2't'#169's'#250#254'?'#227#254#18#203#254' '#206#254'T'#222#255
+ +'t'#224#248'0'#176#218#3#134#193#5'f'#149#150'5'#17#254#254#254#254#254#254
+ +#254#254#254#254#254#254#0'e'#0#254#251#250#254#250#244#254#247#240#254#244
+ +#234#254#242#227#0'e'#0#254#235#215#254#238#222#2't'#169'x'#251#254'h'#246
+ +#255'T'#246#255'_'#254#255''#254#255#137#251#254'H'#207#242#5#139#199#5'f'
+ +#149#150'5'#17#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0#0'e'#0
+ +#0'e'#0#0'e'#0#0'e'#0'4'#144'4'#2't'#169#251#255#255#240#255#255#198#255#255
+ +#160#255#255#152#255#255#152#255#255#147#255#255'W'#247#254#5'f'#149#150'5'
+ +#17#254#254#254#254#254#254#254#254#254#254#254#254#0'e'#0#254#254#254#254
+ +#254#254#254#252#252#254#251#247#254#248#243#0'e'#0#254#243#233#254#240#225
+ +#254#243#230#4'y'#175#237#250#252#220#255#255#183#255#255#153#255#255#146#255
+ +#255#131#250#251#8'k'#154#255#0#255#150'5'#17#254#254#254#254#254#254#254#254
+ +#254#254#254#254#0'e'#0#254#254#254#254#254#254#254#254#254#254#254#254#254
+ +#252#250#0'e'#0#254#247#239#254#244#234#254#242#227#254#244#231#2't'#169#2't'
+ +#169#2't'#169#2't'#169#2't'#169#2't'#169#150'5'#17#255#0#255#150'5'#17#254
+ +#254#254#254#254#254#254#254#254#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#255#0#255#150'5'#17#0'e'#0#0'e'#0#0'e'#0#128#128#128#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#0#0#0#255#0#255#150'5'#17#254#254#254#254#254
+ +#254#254#254#254#128#128#128#255#255#255#128#0#0#255#255#255#255#255#255#255
+ +#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#255#255#255#128#0#0#255#255#255#0#0#0#255#0#255#150'5'
+ +#17#254#254#254#254#254#254#254#254#254#128#128#128#255#255#255#128#0#0#255
+ +#255#255#192#220#192#255#255#255#128#0#0#255#255#255#128#0#0#192#220#192#255
+ +#255#255#255#255#255#128#0#0#255#255#255#192#220#192#255#255#255#128#0#0#255
+ +#255#255#0#0#0#255#0#255#150'5'#17#220#220#220#220#220#220#220#220#220#128
+ +#128#128#255#255#255#128#0#0#192#220#192#128#0#0#192#220#192#128#0#0#255#255
+ ,#255#128#0#0#128#0#0#192#220#192#255#255#255#128#0#0#192#220#192#128#0#0#192
+ +#220#192#128#0#0#255#255#255#0#0#0#255#0#255#150'5'#17#152'D'#16#152'D'#16
+ +#152'D'#16#128#128#128#255#255#255#128#0#0#128#0#0#192#220#192#128#0#0#128#0
+ +#0#255#255#255#128#0#0#192#220#192#255#255#255#255#255#255#128#0#0#128#0#0
+ +#192#220#192#128#0#0#128#0#0#255#255#255#0#0#0#255#0#255#189'X'#12#233''#30
+ +#233''#30#233''#30#128#128#128#255#255#255#128#0#0#192#220#192#255#255#255
+ +#192#220#192#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0
+ +#192#220#192#255#255#255#192#220#192#128#0#0#255#255#255#0#0#0#255#0#255#255
+ +#0#255#189'X'#12#189'X'#12#189'X'#12#128#128#128#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#0#0#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#255#0#255#0#0
+]);
+
+LazarusResources.Add('TDARemoteCommand','BMP',[
+ 'BMv'#6#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#8#0#0#0#0#0'@'#2#0
+ +#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#255#0#255#0#153'3'#0#0#154'4'#0#0#156'6'#0
+ +#0#158'8'#0#0#162'<'#0#0#165'?'#0#0#166'@'#0#0#169'C'#0#0#170'D'#0#0#175'I'#0
+ +#0#175'M'#11#0#172'L'#13#0#176'J'#0#0#179'M'#0#0#180'N'#0#0#182'P'#0#0#185'S'
+ +#0#0#185'V'#7#0#183'V'#11#0#181'T'#12#0#185'Y'#15#0#179'W'#25#0#191'd'#26#0
+ +#139'Q$'#0#138'Z+'#0#179'\&'#0#183'i$'#0#199'a'#0#0#201'c'#0#0#203'e'#0#0#204
+ +'f'#0#0#198'd'#10#0#209'k'#0#0#220'v'#0#0#229''#0#0#197'v9'#0#204'>'#0#144
+ +'kG'#0#183'uD'#0#198'{D'#0#247#145#0#0#255#157#11#0#249#152#12#0#255#158#12#0
+ +#242#148#20#0#249#156#24#0#255#161#19#0#255#163#25#0#255#166#31#0#217#137'6'
+ +#0#230#146'-'#0#242#155'%'#0#236#159'>'#0#255#166'!'#0#255#169')'#0#255#172
+ +'.'#0#255#175'7'#0#255#176'8'#0#255#178'>'#0#138#141''#0#210#136'E'#0#204
+ +#139'['#0#255#179'@'#0#249#178'M'#0#255#184'N'#0#236#167'S'#0#255#186'Q'#0
+ +#255#187'T'#0#255#188'W'#0#210#149'f'#0#223#170'y'#0#255#193'c'#0#255#194'e'
+ +#0#255#195'i'#0#255#196'j'#0#255#197'l'#0#249#193'r'#0#255#202'x'#0#255#203
+ +'|'#0#255#204'~'#0'(r'#138#0' '#129#159#0#14#128#170#0#23#136#175#0#11#134
+ +#178#0#9#138#183#0#7#140#186#0#14#145#190#0#30#148#188#0'('#152#186#0'g'#145
+ +#154#0'p'#159#166#0#4#147#196#0#9#151#199#0#10#157#206#0'"'#155#194#0#21#175
+ +#217#0'!'#170#207#0'5'#160#195#0'0'#170#202#0'2'#170#206#0'?'#176#203#0'='
+ +#189#218#0'9'#184#222#0')'#187#224#0'h'#176#202#0#25#199#241#0#27#212#254#0
+ +'/'#198#231#0'&'#194#233#0'>'#205#233#0','#211#249#0'.'#216#254#0'<'#224#254
+ +#0'T'#192#212#0'Y'#196#215#0'Y'#194#221#0'o'#194#214#0'|'#192#213#0'C'#200
+ +#233#0'T'#223#254#0'`'#206#234#0'l'#212#238#0'd'#217#233#0'v'#223#233#0'}'
+ +#223#233#0'U'#224#255#0'k'#227#244#0'`'#236#254#0'u'#226#250#0'{'#232#255#0
+ +'q'#242#254#0#136#153#143#0#151#166#158#0#150#177#174#0#236#187#133#0#230#182
+ +#136#0#255#205#130#0#255#210#141#0#236#193#147#0#255#212#147#0#249#212#162#0
+ +#255#220#166#0#249#215#170#0#255#221#169#0#255#223#173#0#255#224#175#0#255
+ +#226#181#0#134#187#196#0#131#223#233#0#138#218#235#0#148#223#233#0#149#223
+ +#237#0#164#223#234#0#149#235#253#0#149#238#254#0#158#237#255#0#132#243#249#0
+ +#128#245#252#0#143#246#251#0#131#248#254#0#147#242#254#0#151#249#254#0#148
+ +#253#254#0#153#255#254#0#158#255#254#0#180#238#243#0#164#255#254#0#168#249
+ +#254#0#173#251#254#0#170#255#254#0#182#241#255#0#188#242#248#0#179#249#255#0
+ +#179#255#254#0#185#255#254#0#195#223#234#0#206#234#238#0#204#246#255#0#201
+ +#255#254#0#207#255#255#0#209#247#255#0#223#255#255#0#229#255#255#0#240#247
+ +#250#0#245#255#255#0#250#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#1#1#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#1#22'N'#1#0#0#0#0#0#0#0#0#0
+ +'SSSSSSQ'#1#1#1#18#21'5HM'#1#1#1#0#0#0#0'SSbbanxz\'#7#4'.*19AHN'#141#1#0#0#0
+ +'SZ|'#129'rlq'#131#153#7#9'31*6:CJN'#1#0#0#0'W}'#161#129'rlq'#131#135#10#9
+ +'B:-'#7#1#12'@J='#1#0#0'W}'#161#129'rlq'#133#16#12'G'#141'H'#27#0#1#4#23'CJ'
+ +'%'#1#0'W}'#161#129'rlq'#15'!F'#148#147#139'&'#0#1#9#20'?CJ'#1#0'W}'#161#129
+ +'rlq<'#29#20#137#148#146''''#0#4#15' 7?2'#1#0'W}'#161#129'rlq'#131#134#29
+ +#18#140#148#142#26#9#20'*/4'#1#0#0'W}'#163#162#156#157#172#179#182#178#29'"'
+ +#137#148#148#146'NE7*'#1#0#0#0'W'#167#173#151'ue`Yc[#'#29#144#148#148#148#146
+ +'NC7'#1#0#0#0'Vvfgmkpy'#130#149#18#15'>$$'#144#148#136#1#1#1#0#0#0'Ut'#159
+ +#129'rlq'#131#156'{g_'#24')('#148#1#0#0#0#0#0#0'W}'#161#129'rlq'#131#156'{'
+ +'h_R'#25#4#1#0#0#0#0#0#0#0'W}'#161#129'rlq'#131#156'{h_]S'#0#0#0#0#0#0#0#0#0
+ +'W}'#161#129'rlq'#131#156'{g_]S'#0#0#0#0#0#0#0#0#0'W}'#161#129'rlq'#131#156
+ +'{h_]S'#0#0#0#0#0#0#0#0#0'W}'#161#129'rlq'#131#156'{h_]S'#0#0#0#0#0#0#0#0#0
+ +'W~'#170#174#170#170#165#165#165#165#160#128'i^S'#0#0#0#0#0#0#0#0#0'W'#177
+ +#187#184#181#174#168#165#165#165#165#163#132'oS'#0#0#0#0#0#0#0#0#0'Wj'#185
+ +#186#183#181#174#165#165#165#165#165#159'eS'#0#0#0#0#0#0#0#0#0#0'WXww'#154
+ +#153#150'~}ssTS'#0#0#0#0#0#0#0#0#0#0#0#0#0'WWWWWWWWW'#0#0#0#0#0#0#0#0#0#0#0
+]);
+
+LazarusResources.Add('TDABinAdapter','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#142']'
+ +'Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'#142']Y'
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#225#189#255#221#181#255#217#172#255
+ +#213#165#255#211#157#255#207#151#255#203#145#255#201#140#255#199#135#128'PK'
+ +#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0
+ +#0#255#231#203#255#227#194#255#224#187#255#220#178#255#216#171#0#0#0#0#0#0
+ +#255#206#149#255#203#143#128'PK'#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255
+ +#128#0#0'@'#0#0#255#238#217#255#233#208#255#230#199#255#226#191#255#221#182#0
+ +#0#0#255#215#166#0#0#0#255#207#152#128'PK'#128#0#0#255#255#255#128#0#0#255
+ +#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255
+ +#255#255#128#0#0'@'#0#0#255#243#229#255#240#222#255#235#213#255#233#204#255
+ +#229#197#0#0#0#0#0#0#255#216#171#255#213#165#128'PK'#128#0#0#255#255#255#128
+ +#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0'@'#0#0#7'9z'#255#246#233#255#242#225#255#238
+ +#218#255#234#209#0#0#0#255#227#193#0#0#0#255#218#176#128'PK'#128#0#0#255#255
+ +#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128
+ +#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#255#254#250#255#250#244#255#248
+ +#239#255#244#231#255#240#222#0#0#0#0#0#0#255#229#198#255#225#189#128'PK'#128
+ +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0
+ +#255#255#255#255#254#252#255#252#247#255#250#242#255#246#235#255#243#227#255
+ +#239#220#255#235#211#255#231#203#128'PK'#128#0#0#128#0#0#128#0#0#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#254#250#255#251#246#255#248#239
+ +#255#244#231#255#242#225#255#238#217#128'PKHJK'#201#194#201#7'9z'#7'9z'#7'9z'
+ +'='#154#242'5'#149#239'-'#140#239#7'9z'#7'9z'#7'9zyyy'#194#140'm'#255#255#255
+ +#255#255#255#255#255#255#137#167#199#7'9z'#137#167#199#255#252#248#247#240
+ +#235#226#218#209#226#216#204'{MIHJK'#206#199#204#191#184#192#7'9z@'#157#242
+ +'@'#157#242'@'#157#242'9'#152#240'2'#145#239#7'9zE_{yyy'#203#147'o'#255#255
+ +#255#255#255#255#137#167#199#7'9z'#15's'#233#7'9z'#137#167#199#234#233#230
+ +#182#180#176#182#177#171'uIEHJK'#209#202#209#194#188#194'h'#129#163#7'9z@'
+ +#157#242'@'#157#242'@'#157#242#7'9zE_{{{{yyy'#209#153'r'#255#255#255#137#167
+ +#199#7'9z'#15's'#233#15's'#233#15's'#233#7'9zURf'#160'g['#160'g['#149'\KHJK'
+ +#213#207#213#197#191#197#194#188#194'Qk'#138#7'9z@'#157#242#7'9zId'#128'yzzy'
+ +'yyyyy'#216#159'u'#137#167#199#7'9z'#27'}'#235#22'y'#234#18'u'#233#15's'#233
+ +#15's'#233#7'9z'#254#176'J'#240#145','#225#132'.HJK'#217#213#217#201#196#202
+ +#199#192#198#150#146#152'0Kf'#7'9z,D^'#137#137#137''#130#130#131'yyy'#220
+ +#163'v'#7'9z'#7'9z'#7'9z'#31#130#235#27'}'#235#22'y'#234#7'9z'#7'9z'#7'9z'
+ +#218#152'c'#255#0#255'HJK'#225#218#224#207#201#206#199#192#198#151#150#153'U'
+ +'WX'#175#175#177'JLM'#137#137#137#128#128#128#132#132#132''#220#163'v'#209
+ +#146'm'#209#146'm'#7'9z-'#140#239'%'#135#238#31#130#237#7'9zXTh'#212#154's'
+ +#255#0#255#255#0#255'HJK'#231#226#230#212#207#211#225#218#224#152#149#152'UW'
+ +'X'#176#175#177'LNO'#150#149#149#132#131#131'vvvyyy'#143#143#143#131#132#132
+ +'*C]'#7'9z7'#150#240'2'#146#240#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255'HJK'#239#235#239#235#233#235#198#197#199#160#157#161'UWX'#164#165
+ +#167';=>'#130#130#131#137#137#137#143#143#143#137#137#137#147#147#147'Id'#128
+ +#7'9z@'#157#242'@'#157#242'='#154#242#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255'HJK'#238#237#238#178#177#180#156#153#156#159#158#161'RTU'
+ +#235#235#237'ossY[Z'#7'9z'#7'9z'#7'9z'#7'9z'#7'9z@'#157#242'@'#157#242#7'9z'
+ +#7'9z'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#237
+ +#235#237#129#129#130#213#209#212#207#207#208'`cdprrxy{'#138#142#140#171#172
+ +#172'Xt'#146#7'9z'#7'9z'#7'9z'#7'9z'#7'9z'#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#251#251#252#204#204#204
+ +#254#254#254#227#227#230#186#184#188#151#149#152#136#134#137'xy{rssfihehi'
+ +#150#152#153#150#152#153'HJK'#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'#255#255#255#251#251#252#238
+ +#238#242#237#238#240#231#230#233#217#213#217#196#192#196#172#170#172#151#145
+ +#151#136#131#136#150#142#146#136#129#131'HJK'#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255'HJK'
+ ,#255#255#255#255#255#255#246#246#248#248#247#251#237#237#239#226#226#229#209
+ +#207#212#194#191#196#193#187#193#167#159#165'HJKHJK'#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255'HJKHJK'#255#255#255#255#255#255#255#255#255#240#239#243
+ +#229#225#230#203#197#203'HJKHJK'#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255'LNOHJKHJKHJKHJKHJK'#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+]);
+
+LazarusResources.Add('TDADBSessionManager','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@@@@@@@@@@@@@@@@@@@'
+ +'@@@@@@@@@@@@@@@@@'#0'Z'#0#0'Z'#0#0'Z'#0#0'Z'#0#0'Z'#0#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255'@'#0#192'@'#0#192'@'#0#192'@'#0#192
+ +'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@@@'
+ +#3#143#10#17#172'.'#22#175'2'#13#146#15#0''#0#0'Z'#0#0'Z'#0#255#0#255#255#0
+ +#255#255#0#255#255#0#255'@'#0#192#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +'@'#0#192'@@@'#31#189'L'#23#186'K'#15#147#19#140#226#140#17#144#19#0'z'#0#0
+ +']'#0'n-'#19'n-'#19#255#0#255#255#0#255'@'#0#192#255#255#255'@'#0#192#255#255
+ +#255'@'#0#192#255#255#255#255#255#255'@'#0#192'@'#0#192#255#255#255#255#255
+ +#255'@'#0#192'@@@"'#202'Y'#15#147#19'p'#211'j'#255#240#239#30#157'"'#7#147#24
+ +#0'\'#0#244'[A'#248'J6n-'#19'n-'#19'@'#0#192#255#255#255'@'#0#192'@'#0#192
+ +#255#255#255#255#255#255'@'#0#192#255#255#255#255#255#255'@'#0#192#255#255
+ +#255'@'#0#192'@@@'#23#178'='#15#147#19#160#199#188#251#252#252#25#164'$'#12
+ +#150'%'#0'Z'#1#237#156#136#234#136't'#225'@#n-'#19'@'#0#192#255#255#255'@'#0
+ +#192#255#255#255'@'#0#192#255#255#255'@'#0#192#255#255#255#255#255#255'@'#0
+ +#192#255#255#255'@'#0#192'@@@'#12')'#24'1X~.X'#146'5i'#130#17#135'8'#0'Z'#0
+ +#184'A'#23#255#240#239#226#176#154#212'C'#31'n-'#19'@'#0#192#255#255#255'@'#0
+ +#192'@'#0#192'@'#0#192#255#255#255#255#255#255'@'#0#192'@'#0#192#255#255#255
+ +#255#255#255'@'#0#192'@@@'#9#17'?'#7')'#154#5'('#149#2#29#143#2#29#143#184'A'
+ +#23#233#161#140#251#252#252#229#160#136#226'U-n-'#19'@'#0#192#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255'@'#0#192'@@@'#14'?'#167#13'A'#181#13'?'#172#14
+ +'@'#175#2#28#145#134'wwZ'#135#153'W'#131#143#149'hR'#181'2'#21#255#0#255'@'#0
+ +#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192'@'#0#192
+ +'@'#0#192'@'#0#192'@'#0#192#10#28'='#18'T'#213#16'M'#198#17'M'#197#17'M'#197
+ +#17'L'#203#17'W'#139#9'_'#194#4'W'#193#11'n'#154#13#13#13'uuu~~~YYYEuM*'#194
+ +'?;a?BBBBBB========='#3#3#4#0#0#0#10#26'1'#24'j'#229#22'g'#229#22'c'#221#22
+ +'c'#221#23'e'#231#17'W'#139' '#129#251#30'{'#247#22'k'#239#11'n'#154'===dddY'
+ +'YYE'#145'S1'#202'KCiIIIIBBBBBB======'#5#5#6#10#9#7#24#27#31#28'['#169#31#139
+ +#255#31#138#255#31#139#255#31#138#255#17'W'#139')'#145#250'&'#142#250'!'#132
+ +#250#26'p'#235#11'n'#154'^^^YYYJ'#150'Z9'#209'VHnNIIIIIIBBBBBB======%%%USP+2'
+ +':'#17'5]'#19'K'#135#23'W'#154#22'Cx('#142#230'0'#157#251'-'#152#250'('#144
+ +#251#31#130#247#11'n'#154'^^^^^^P'#156'aA'#217'aKzTYYYIIIIIIBBBBBBBBB'#5#5#6
+ +'AABNKJ865'#22#19#19#5#3#3#5#2#1#2'7\5'#166#255'1'#157#251','#150#251'#'#137
+ +#246#11'n'#154'hhh^^^U'#161'iH'#224'mB'#209'aA'#132'LHnNJSKIIIBBBBBB====== '
+ +#31'"'#29#28#28#20#20#20#12#12#12#2'Bm'#29'x'#189'9'#172#255'7'#167#255'4'
+ +#160#255#11'n'#154#23#30#23#138#138#138'bbb\'#139'iP'#232'xH'#224'mA'#217'a9'
+ +#209'V1'#202'K;'#135'FIIIBBBBBB=========&I&'#19'i'#156'R'#152#188#21'c'#146#3
+ +'>h'#3'>h'#0''#148'MIIIIIIBBBBBB======''V'''#0#147#0'#w'#166#22'i'#151#7'P'
+ +'~'#0'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Unix.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Unix.lpk
new file mode 100644
index 0000000..ed7169f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Unix.lpk
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Windows.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Windows.lpk
new file mode 100644
index 0000000..927b0b1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Lazarus_Windows.lpk
@@ -0,0 +1,333 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Reg.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Reg.pas
new file mode 100644
index 0000000..991a562
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Core_Reg.pas
@@ -0,0 +1,81 @@
+unit DataAbstract_Core_Reg;
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library }
+{ }
+{ compiler: Delphi 6 and up, Kylix 3 and up }
+{ platform: Win32, Linux }
+{ }
+{ (c)opyright RemObjects Software. all rights reserved. }
+{ }
+{ Using this code requires a valid license of the Data Abstract }
+{ which can be obtained at http://www.remobjects.com. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+procedure Register;
+
+implementation
+
+uses
+ {$IFDEF FPC}LResources,{$ENDIF}
+ Classes,
+ uDARes, uDAInterfaces, uDAClasses, uDADriverManager,
+ uDABinAdapter, uDAXMLAdapter, uDADataTable, uDADesigntimeCall,uDABin2DataStreamer,
+ {$IFNDEF FPC}uDACDSDataTable,uDADatasetProvider,uDACache,{$ENDIF FPC}
+ uDARemoteDataAdapter,
+ {$IFDEF USE_LOCALDATAADAPTER}uDALocalDataAdapter,{$ENDIF}
+ {$IFDEF MSWINDOWS}
+ {$IFNDEF FPC}
+ uDAADODataTable,
+ {$ENDIF}
+ {$ENDIF MSWINDOWS}
+ uDABusinessProcessor,
+ uDADBSessionManager,
+ uDAServerLog,
+ uDAMemDataTable,
+ uDARemoteCommand,
+ uDAPoweredByDataAbstractButton;
+
+{$IFNDEF FPC}
+ {$R DataAbstract_Core_Glyphs.res}
+{$ENDIF}
+
+procedure Register;
+begin
+ RegisterComponents(DAPalettePageName,
+ [TDAPoweredByDataAbstractButton,
+ TDADriverManager,
+ TDAConnectionManager,
+ TDASchema,
+ TDADiagrams,
+ TDADataDictionary,
+ TDABin2DataStreamer,
+ TDAXMLDataStreamer,
+ TDARemoteDataAdapter, {$IFDEF USE_LOCALDATAADAPTER}TDALocalDataAdapter,{$ENDIF}
+ {$IFNDEF FPC}
+ TDADatasetProvider,
+ {$ENDIF FPC}
+ TDAMemDataTable,
+ TDABusinessProcessor,
+ TDADesigntimeCall,
+ TDADataSource,
+ TDARemoteCommand,
+ TDAServerLog]);
+{$WARN SYMBOL_DEPRECATED OFF}
+ RegisterComponents('RemObjects Data Abstract (Legacy)', [TDABinAdapter,TDABinDataStreamer
+ {$IFNDEF FPC}
+ ,TDACDSDataTable, TDAADODataTable,
+ TDAXMLAdapter,TDACache{$ENDIF}]);
+{$WARN SYMBOL_DEPRECATED ON}
+ RegisterComponents('RemObjects SDK', [TDADBSessionManager]);
+end;
+
+{$IFDEF FPC}
+initialization
+ {$I DataAbstract_Core_Glyphs.lrs}
+{$ENDIF}
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.bdsproj
new file mode 100644
index 0000000..81d84c2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_Scripting_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Scripting Integration LibraryFalse
+
+
+
+ ..\Dcu\D10
+ ..\Dcu\D10
+ ..\Dcu\D10
+ ..\Dcu\D10;..\..\Pascal Script\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
+ $00000000
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.cfg
new file mode 100644
index 0000000..6d65c2e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.cfg
@@ -0,0 +1,52 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\Dcu\D10"
+-LE"..\Dcu\D10"
+-LN"..\Dcu\D10"
+-U"..\Dcu\D10;..\..\Pascal Script\Dcu\D10"
+-O"..\Dcu\D10;..\..\Pascal Script\Dcu\D10"
+-I"..\Dcu\D10;..\..\Pascal Script\Dcu\D10"
+-R"..\Dcu\D10;..\..\Pascal Script\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-SYMBOL_EXPERIMENTAL
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNIT_EXPERIMENTAL
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.dpk
new file mode 100644
index 0000000..14457eb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_Scripting_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Scripting Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dbrtl,
+ vcl,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10,
+ PascalScript_Core_D10;
+
+contains
+ uDAPascalScript in 'uDAPascalScript.pas',
+ uDAPSScriptingProvider in 'uDAPSScriptingProvider.pas',
+ DataAbstract_Scripting_Reg in 'DataAbstract_Scripting_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dpk
new file mode 100644
index 0000000..93e1fa3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_Scripting_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Scripting Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dbrtl,
+ vcl,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ PascalScript_Core_D11;
+
+contains
+ uDAPascalScript in 'uDAPascalScript.pas',
+ uDAPSScriptingProvider in 'uDAPSScriptingProvider.pas',
+ DataAbstract_Scripting_Reg in 'DataAbstract_Scripting_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dproj
new file mode 100644
index 0000000..d240db5
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.dproj
@@ -0,0 +1,78 @@
+
+
+ {3fb27763-9440-44c3-bb51-17969172e8fe}
+ DataAbstract_Scripting_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\Dcu\D11\DataAbstract_Scripting_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ 0
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script for Delphi\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script for Delphi\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script for Delphi\Dcu\D11
+ ..\Dcu\D11;..\..\Pascal Script for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - Scripting Integration LibraryFalseFalseFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_Scripting_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dpk
new file mode 100644
index 0000000..aa68349
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_Scripting_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Scripting Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ RemObjects_Core_D12,
+ DataAbstract_Core_D12,
+ PascalScript_Core_D12;
+
+contains
+ uDAPascalScript in 'uDAPascalScript.pas',
+ uDAPSScriptingProvider in 'uDAPSScriptingProvider.pas',
+ DataAbstract_Scripting_Reg in 'DataAbstract_Scripting_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dproj
new file mode 100644
index 0000000..a58aede
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.dproj
@@ -0,0 +1,90 @@
+
+
+ {3fb27763-9440-44c3-bb51-17969172e8fe}
+ DataAbstract_Scripting_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\Dcu\D11\DataAbstract_Scripting_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ ..\Dcu\D12
+ ..\Dcu\D12
+ ..\Dcu\D12;..\..\Pascal Script for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ ..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\Dcu\D12\DataAbstract_Scripting_D12.bpl
+ RemObjects Data Abstract - Scripting Integration Library
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_Scripting_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.cfg
new file mode 100644
index 0000000..d94514b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D6"
+-LE"..\Dcu\D6"
+-LN"..\Dcu\D6"
+-U"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-O"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-I"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-R"..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dof
new file mode 100644
index 0000000..75f52a1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Scripting Integration Library
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D6
+PackageDLLOutputDir=..\Dcu\D6
+PackageDCPOutputDir=..\Dcu\D6
+SearchPath=..\Dcu\D6;..\..\RemObjects SDK for Delphi\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.280
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dpk
new file mode 100644
index 0000000..4c39879
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_Scripting_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Scripting Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dbrtl,
+ vcl,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6,
+ PascalScript_Core_D6;
+
+contains
+ uDAPascalScript in 'uDAPascalScript.pas',
+ uDAPSScriptingProvider in 'uDAPSScriptingProvider.pas',
+ DataAbstract_Scripting_Reg in 'DataAbstract_Scripting_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.cfg
new file mode 100644
index 0000000..b26eab1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.cfg
@@ -0,0 +1,46 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D7"
+-LE"..\Dcu\D7"
+-LN"..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dof
new file mode 100644
index 0000000..97dc0fb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Scripting Integration Library
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D7
+PackageDLLOutputDir=..\Dcu\D7
+PackageDCPOutputDir=..\Dcu\D7
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=ROServiceTester
+FileVersion=3.0.0.257
+InternalName=ROServiceTester
+LegalCopyright=Copyright RemObjects Software 2002
+LegalTrademarks=RemObjects Software 2002
+OriginalFilename=ROServiceTester.exe
+ProductName=RemObjects SDK
+ProductVersion=3.0.0.0
+Compile Date=Sunday, March 21, 2004 5:55 PM
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dpk
new file mode 100644
index 0000000..34f8513
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.dpk
@@ -0,0 +1,43 @@
+package DataAbstract_Scripting_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Scripting Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dbrtl,
+ vcl,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7,
+ PascalScript_Core_D7,
+ dsnap,
+ adortl;
+
+contains
+ uDAPascalScript in 'uDAPascalScript.pas',
+ uDAPSScriptingProvider in 'uDAPSScriptingProvider.pas',
+ DataAbstract_Scripting_Reg in 'DataAbstract_Scripting_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.lrs b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.lrs
new file mode 100644
index 0000000..4501711
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.lrs
@@ -0,0 +1,78 @@
+LazarusResources.Add('TDAPSScriptingProvider','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#19#11#0#0#19#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#1'>'#3#1'='#3#1'<'#3#1';'#3#255#0#255#255#0#255#255#0#255#255#0#255#255
+ +#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#1'='#3#3#151#11#3#137#10#3#128#9#2
+ +'z'#9#1'.'#2#1'4'#3#255#0#255#255#0#255#255#0#255#128#0#0#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#4#158#15#3#151#11#3#149
+ +#11#3#149#11#3#145#10#3#132#10#2't'#9#1'-'#2'111'#255#0#255#128#0#0#255#255
+ +#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#255
+ +#255#255#128#0#0#255#255#255#128#0#0'@'#0#0#7#163#24#5#160#16#3#158#12#3#158
+ +#12#3#158#12#3#158#12#3#151#11#3'~'#9#1'.'#2#255#0#255#128#0#0#255#255#255
+ +#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#128#0#0#255#255#255#128#0#0'@'#0#0#12#166'#'#8#163#26#255#255#255#3#158#12#3
+ +#158#12#3#158#12#3#158#12#3#154#12#1'0'#3#255#0#255#128#0#0#255#255#255#128#0
+ +#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255
+ +#255#128#0#0#255#255#255#128#0#0'@'#0#0#15#170'.'#12#166'%'#255#255#255#255
+ +#255#255#3#159#13#3#158#12#3#158#12#3#158#12#3#146#11#2'V'#5#128#0#0#255#255
+ +#255#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#128#0#0#128
+ +#0#0#255#255#255#255#255#255#128#0#0'@'#0#0#20#173':'#17#170'0'#255#255#255
+ +#255#255#255#255#255#255#4#159#15#3#158#12#3#158#12#3#156#12#2'_'#6#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#24
+ +#177'G'#21#173'='#255#255#255#255#255#255#255#255#255#7#163#24#4#160#16#3#158
+ +#12#3#158#12#2'g'#6#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#28#178'N'#28#178'N'#26#177
+ +'I'#255#255#255#255#255#255#15#169','#11#166'#'#8#163#25#5#160#17#3#158#12#2
+ +'g'#6#255#0#255'KKK'#217#217#217#177#176#176#166#165#165#152#152#152#145#145
+ +#145#137#137#137#255#255#255#255#255#255'D'#173'Mb'#206#137#137#218#167'&'
+ +#183'W'#28#178'N'#28#178'N'#255#255#255#23#175'A'#19#172'7'#15#170'-'#12#166
+ +'$'#9#164#28#6#161#19#2'P'#5#255#0#255'KKK'#226#226#226#193#193#193#177#177
+ +#177#159#159#159#153#153#153#144#144#144#209#209#209#255#255#255#177#215#163
+ +#10#143#22#154#225#181#131#217#164'.'#187'^'#28#178'N'#28#178'N'#27#178'L'#24
+ +#176'D'#20#173':'#16#170'0'#13#167''''#7#135#16#255#0#255#255#0#255'KKK'#234
+ +#233#233#209#208#208#189#188#188#167#167#167#163#163#163#151#151#151#194#193
+ +#193#240#240#240#206#206#206'O'#180'T'#11#144#24#165#227#188#173#230#196'i'
+ +#208#143'A'#193'n5'#189'e6'#189'f-'#184'Y'#24#175'@'#9#139#19'5='#10#255#0
+ +#255#255#0#255'KKK'#238#238#238#218#218#218#198#198#198#176#175#175#171#170
+ +#170#158#158#158#177#177#177#226#226#226#208#208#208#166#166#166'_'#187'c'#10
+ +#143#22'o'#211#149#153#224#180#149#222#176'}'#215#158'Z'#203#131'/'#187'`'#11
+ +#140#22'K'#128':111'#255#0#255#255#0#255'KKK'#240#240#240#225#225#225#206#204
+ +#204#182#182#182#199#199#199#191#190#190#153#152#152#227#227#227#226#226#226
+ +#136#136#136#255#255#255#177#217#167'D'#178'O'#9#142#20#10#143#22#10#142#22#9
+ +#139#19'B'#153'C'#176#186#132'~ee111'#255#0#255#255#0#255'KKK'#242#242#242
+ +#230#230#230#212#211#211#191#189#189#204#204#204#234#234#234#218#218#218#229
+ +#229#229#228#228#228#142#142#142#255#255#255#255#255#255#130#129#129#132''
+ +#138'~'#143''#147'~~'#152'~~'#158'~}zee111'#255#0#255#255#0#255'KKK'#243
+ +#242#242#233#233#233#218#218#218#196#196#196#197#196#196#228#227#227#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#187#185#185#137'~'#143''#146'~~'#152'~~wfe111'#255#0#255#255
+ +#0#255'KKK'#243#243#243#235#235#235#224#224#224#206#204#204#207#207#207#199
+ +#199#199#188#188#188#180#178#178#171#171#171#163#161#161#156#156#156#147#147
+ +#147#140#140#140#134#134#134#130#129#129#131''#137'~~'#143'~'#146'~~uff11'
+ +'1'#255#0#255#255#0#255'KKK'#243#243#243#238#238#238#230#230#230#208#207#207
+ +#211#211#211#204#204#204#197#196#196#189#188#188#181#181#181#173#172#172#170
+ +#169#169#159#159#159#151#151#151#142#142#142#134#134#134#130#130#130#131''
+ +#136''#142'~pgg111'#255#0#255#255#0#255'KKK'#243#243#243#240#239#239#238
+ +#238#238#220#218#218#216#216#216#213#213#213#206#204#204#199#198#198#191#189
+ +#189#183#182#182#182#182#182#171#171#171#159#158#158#150#149#149#143#143#143
+ +#135#135#135#130#130#130#130''#135'mgf111'#255#0#255#255#0#255'KKK'#242
+ +#242#242#238#238#238#243#242#242#240#239#239#238#238#238#235#235#235#231#231
+ +#231#226#226#226#218#218#218#208#208#208#198#198#198#183#182#182#170#170#170
+ +#157#157#157#149#147#147#140#140#140#136#136#136#131#131#131#130'kgg111'
+ ,#255#0#255#255#0#255'KKK'#239#239#239#233#233#233#238#238#238#242#240#240#242
+ +#240#240#239#239#239#237#237#237#234#234#234#227#227#227#218#218#218#206#206
+ +#206#193#193#193#177#177#177#165#164#164#156#156#156#149#149#149#140#140#140
+ +#137#136#136#131#131#131'hgg111'#255#0#255#255#0#255'KKK'#216#216#216#239#239
+ +#239#242#242#242#243#243#243#244#244#244#243#243#243#243#242#242#242#240#240
+ +#239#239#239#235#235#235#230#230#230#225#224#224#217#217#217#211#211#211#207
+ +#207#207#203#202#202#199#199#199#197#197#197#194#194#194'hgg111'#255#0#255
+ +#255#0#255#255#0#255'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQSSSQQQQQQQ'
+ +'QQQQQ'#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255
+]);
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.res
new file mode 100644
index 0000000..fa5cad1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Unix.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Unix.lpk
new file mode 100644
index 0000000..35f6313
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Unix.lpk
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Windows.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Windows.lpk
new file mode 100644
index 0000000..97b164d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Lazarus_Windows.lpk
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Reg.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Reg.pas
new file mode 100644
index 0000000..f71baf2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_Scripting_Reg.pas
@@ -0,0 +1,40 @@
+unit DataAbstract_Scripting_Reg;
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library }
+{ }
+{ compiler: Delphi 6 and up, Kylix 3 and up }
+{ platform: Win32, Linux }
+{ }
+{ (c)opyright RemObjects Software. all rights reserved. }
+{ }
+{ Using this code requires a valid license of the Data Abstract }
+{ which can be obtained at http://www.remobjects.com. }
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+interface
+
+procedure Register;
+
+implementation
+
+uses
+ {$IFDEF FPC}LResources,{$ENDIF}
+ Classes, uDAPSScriptingProvider, uDARes;
+
+{$IFNDEF FPC}
+ {$R DataAbstract_Scripting_Glyphs.res}
+{$ENDIF FPC}
+
+procedure Register;
+begin
+ RegisterComponents(DAPalettePageName, [TDAPSScriptingProvider]);
+end;
+
+{$IFDEF FPC}
+initialization
+ {$I DataAbstract_Scripting_Glyphs.lrs}
+{$ENDIF}
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.bdsproj
new file mode 100644
index 0000000..ddab013
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.bdsproj
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_SimpleQuery_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Korzh SimpleQuery Integration LibraryFalse
+
+
+
+ ..\Dcu\D10
+ ..\Dcu\D10
+ ..\Dcu\D10
+ ..\Dcu\D10;..\..\RemObjects SDK for Dephi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.cfg
new file mode 100644
index 0000000..c44bc25
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.cfg
@@ -0,0 +1,44 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\Dcu\D10"
+-LE"..\Dcu\D10"
+-LN"..\Dcu\D10"
+-U"..\Dcu\D10;..\..\RemObjects SDK for Dephi\Dcu\D10"
+-O"..\Dcu\D10;..\..\RemObjects SDK for Dephi\Dcu\D10"
+-I"..\Dcu\D10;..\..\RemObjects SDK for Dephi\Dcu\D10"
+-R"..\Dcu\D10;..\..\RemObjects SDK for Dephi\Dcu\D10"
+-Z
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.dpk
new file mode 100644
index 0000000..9f33f70
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.dpk
@@ -0,0 +1,42 @@
+package DataAbstract_SimpleQuery_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Korzh SimpleQuery Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ RemObjects_Core_D10,
+ dbrtl,
+ vcl,
+ DataAbstract_Core_D10,
+ PascalScript_Core_D10,
+ sq7,
+ kprocs7;
+
+contains
+ uDAKDBInfo in 'uDAKDBInfo.pas',
+ DataAbstract_SimpleQuery_Reg in 'DataAbstract_SimpleQuery_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.res
new file mode 100644
index 0000000..c73b102
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dpk
new file mode 100644
index 0000000..795f67f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dpk
@@ -0,0 +1,42 @@
+package DataAbstract_SimpleQuery_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Korzh SimpleQuery Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ RemObjects_Core_D11,
+ dbrtl,
+ vcl,
+ DataAbstract_Core_D11,
+ PascalScript_Core_D11,
+ sq11,
+ kprocs11;
+
+contains
+ uDAKDBInfo in 'uDAKDBInfo.pas',
+ DataAbstract_SimpleQuery_Reg in 'DataAbstract_SimpleQuery_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dproj
new file mode 100644
index 0000000..58bef6e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.dproj
@@ -0,0 +1,71 @@
+
+
+ {12feb998-13fa-45f9-8ee6-f5ab6077ef8e}
+ DataAbstract_SimpleQuery_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\Dcu\D11\DataAbstract_SimpleQuery_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ 0
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D10
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D10
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D10
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D10
+ RELEASE
+
+
+ 7.0
+ True
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D11
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D11
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D11
+ ..\Dcu\D11;..\..\RemObjects SDK for Dephi\Dcu\D11
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - Korzh SimpleQuery Integration LibraryFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse103312521.0.0.01.0.0.0DataAbstract_SimpleQuery_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.res
new file mode 100644
index 0000000..c73b102
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.cfg
new file mode 100644
index 0000000..e2a8294
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.cfg
@@ -0,0 +1,47 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"s:\exe"
+-N"..\Dcu\D6"
+-LE"..\Dcu\D6"
+-LN"..\Dcu\D6"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dof
new file mode 100644
index 0000000..29abd6f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dof
@@ -0,0 +1,114 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Korzh SimpleQuery Integration Library
+
+[Directories]
+UnitOutputDir=..\Dcu\D6
+PackageDLLOutputDir=..\Dcu\D6
+PackageDCPOutputDir=..\Dcu\D6
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=ROServiceTester
+FileVersion=3.0.0.257
+InternalName=ROServiceTester
+LegalCopyright=Copyright RemObjects Software 2002
+LegalTrademarks=RemObjects Software 2002
+OriginalFilename=ROServiceTester.exe
+ProductName=RemObjects SDK
+ProductVersion=3.0.0.0
+Compile Date=Sunday, March 21, 2004 5:55 PM
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dpk
new file mode 100644
index 0000000..b8c2834
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.dpk
@@ -0,0 +1,42 @@
+package DataAbstract_SimpleQuery_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Korzh SimpleQuery Integration Library'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ RemObjects_Core_D6,
+ dbrtl,
+ vcl,
+ DataAbstract_Core_D6,
+ PascalScript_Core_D6,
+ sq6,
+ kprocs6;
+
+contains
+ uDAKDBInfo in 'uDAKDBInfo.pas',
+ DataAbstract_SimpleQuery_Reg in 'DataAbstract_SimpleQuery_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.res
new file mode 100644
index 0000000..fff68a1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.cfg
new file mode 100644
index 0000000..b26eab1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.cfg
@@ -0,0 +1,46 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D7"
+-LE"..\Dcu\D7"
+-LN"..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dof
new file mode 100644
index 0000000..7e2dfdc
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Korzh SimpleQuery Integration Library
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D7
+PackageDLLOutputDir=..\Dcu\D7
+PackageDCPOutputDir=..\Dcu\D7
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=ROServiceTester
+FileVersion=3.0.0.257
+InternalName=ROServiceTester
+LegalCopyright=Copyright RemObjects Software 2002
+LegalTrademarks=RemObjects Software 2002
+OriginalFilename=ROServiceTester.exe
+ProductName=RemObjects SDK
+ProductVersion=3.0.0.0
+Compile Date=Sunday, March 21, 2004 5:55 PM
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dpk
new file mode 100644
index 0000000..63ff17e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.dpk
@@ -0,0 +1,42 @@
+package DataAbstract_SimpleQuery_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Korzh SimpleQuery Integration Library'}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ RemObjects_Core_D7,
+ dbrtl,
+ vcl,
+ DataAbstract_Core_D7,
+ PascalScript_Core_D7,
+ sq7,
+ kprocs7;
+
+contains
+ uDAKDBInfo in 'uDAKDBInfo.pas',
+ DataAbstract_SimpleQuery_Reg in 'DataAbstract_SimpleQuery_Reg.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.res
new file mode 100644
index 0000000..fff68a1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Glyphs.res
new file mode 100644
index 0000000..4a5d497
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Reg.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Reg.pas
new file mode 100644
index 0000000..5a9be83
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/DataAbstract_SimpleQuery_Reg.pas
@@ -0,0 +1,33 @@
+unit DataAbstract_SimpleQuery_Reg;
+
+{----------------------------------------------------------------------------}
+{ Data Abstract Library - Core Library
+{
+{ compiler: Delphi 6 and up, Kylix 3 and up
+{ platform: Win32, Linux
+{
+{ (c)opyright RemObjects Software. all rights reserved.
+{
+{ Using this code requires a valid license of the Data Abstract
+{ which can be obtained at http://www.remobjects.com.
+{----------------------------------------------------------------------------}
+
+{$I DataAbstract.inc}
+
+{$R DataAbstract_SimpleQuery_Glyphs.res}
+
+interface
+
+procedure Register;
+
+implementation
+
+uses
+ Classes, uDAKDBInfo;
+
+procedure Register;
+begin
+ RegisterComponents('Data Abstract', [TDAKDBConnectionInfo, TDAKDBSchemaInfo]);
+end;
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/ASGRout3.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/ASGRout3.pas
new file mode 100644
index 0000000..6382a1b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/ASGRout3.pas
@@ -0,0 +1,424 @@
+{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+Author: Albert Drent
+Description: ASGRout parser routines
+Creation: Januari 1998
+Version: 1.2.B
+EMail: a.drent@aducom.com (www.aducom.com)
+Support: support@aducom.com (www.aducom.com)
+Legal issues: Copyright (C) 2003 by Aducom Software
+
+ Aducom Software
+ Eckhartstr 61
+ 9746 BN Groningen
+ Netherlands
+
+ This software is provided 'as-is', without any express or
+ implied warranty. In no event will the author be held liable
+ for any damages arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any
+ purpose, including commercial applications, and to alter it
+ and redistribute it freely, subject to the following
+ restrictions:
+
+ 1. The origin of this software must not be misrepresented,
+ you must not claim that you wrote the original software.
+ If you use this software in a product, an acknowledgment
+ in the product documentation would be appreciated but is
+ not required.
+
+ 2. Altered source versions must be plainly marked as such, and
+ must not be misrepresented as being the original software.
+
+ 3. If you make changes which improves the component you must
+ mail these to aducom as the moderator of the components
+ complete with documentation for the benefits of the community.
+
+ 4. You are not allowed to create commercial available components
+ using this software. If you use this source in any way to create
+ your own components, your source should be free of charge,
+ available to anyone. It's a far better idea to distribute your
+ changes through Aducom Software.
+
+ 5. This notice may not be removed or altered from any source
+ distribution.
+
+ 6. You must register this software by entering the support forum.
+ I like to keep track about where the components are used, so
+ sending a picture postcard to the author would be appreciated.
+ Use a nice stamp and mention your name, street
+ address, EMail address and any comment you like to say.
+
+Modifications
+ 26/5/2004 Function YYYYMMDDParser by JPierce, necessary for
+ locale independent datehandling in SQLite components.
+ 1/9/2005 Changes to the StrToFloatX routine, now depending on
+ decimalseparator.
+
+*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
+
+unit ASGRout3;
+
+interface
+
+uses SysUtils;
+
+const
+ vtcIdentifier = 1;
+ vtcNumber = 2;
+ vtcAssignment = 3;
+ vtcQString = 4;
+ vtcDString = 5;
+ vtcRelOp = 6;
+ vtcFloat = 7;
+ vtcDelimiter = 8;
+ vtcEof = 9;
+
+procedure FindErrorPos(InString: string; ErrPos: integer;
+ var TheLine, TheCol: integer);
+function GetWord(var InString: string; var StartPos: integer;
+ var VarType: integer): string;
+function GetWordByDelim(var InString: string; var StartPos: integer;
+ var Delim: string): string;
+function PeekWord(var InString: string; StartPos: integer;
+ var VarType: integer): string;
+function Recover(var InString: string; var StartPos: integer): boolean;
+function StrToIntX(StrIn: string): integer;
+function StrToFloatX(StrIn : string) : extended;
+function StrToDateX(TheDate: string): TDateTime;
+function StrToDateTimeX(const S: string): TDateTime;
+function YYYYMMDDParser(Str: PChar): TDateTime;
+function FloatParser(Str: string): string;// jordi march
+
+implementation
+
+function FloatParser(Str: string): string;// jordi march
+var
+ Point: Byte;
+begin
+ if DecimalSeparator <> '.' then begin
+ Point := Pos ('.', Str);
+ if Point <> 0
+ then Str[Point] := DecimalSeparator;
+ end;
+ Result := Str;
+end;
+
+ //==============================================================================
+ // Convert dates to a correct datetime notation. Try several notations,
+ // starting with the system defaults
+ //==============================================================================
+
+function StrToDateTimeX(const S: string): TDateTime;
+begin
+ if S = '' then
+ StrToDateTimeX := 0
+ else begin
+ try
+ StrToDateTimeX := StrToDateTime(S);
+ except
+ StrToDateTimeX := StrToDateX(s);
+ end;
+ end;
+end;
+
+function StrToDateX(TheDate: string): TDateTime;
+var
+ DateFormat: string;
+ DateSep: char;
+begin
+ DateFormat := ShortDateFormat; // save current settings
+ DateSep := DateSeparator;
+ try
+ try
+ StrToDateX := StrToDate(TheDate)
+ except
+ DateSeparator := '-';
+ ShortDateFormat := 'dd-mm-yyyy';
+ try
+ StrToDateX := StrToDate(TheDate)
+ except
+ ShortDateFormat := 'yyyy-mm-dd';
+ try
+ StrToDateX := StrToDate(TheDate)
+ except
+ StrToDateX := StrToDateX('01-01-1900');
+ raise;
+ end;
+ end;
+ end;
+ finally
+ ShortDateFormat := DateFormat;
+ DateSeparator := DateSep;
+ end;
+end;
+
+// Routine submitted by jpierce, modified to accept more types
+// It requires that the date be in strict yyyy-mm-dd [hh:nn:[ss[:mmm]]]
+
+function YYYYMMDDParser(Str: PChar): TDateTime;
+var
+ Year, Month, Day, Hour, Min, Sec, MSec: Word;
+begin
+ Result := 0;
+
+ try
+ if Length(Str) >= 10 then // 10 = Length of YYYY-MM-DD
+ begin
+ Year := StrToInt(Copy(Str, 1, 4));
+ Month := StrToInt(Copy(Str, 6, 2));
+ Day := StrToInt(Copy(Str, 9, 2));
+
+ Result := EncodeDate(Year, Month, Day);
+ end;
+
+ if Length(Str) > 10 then // it has a time
+ begin
+ Hour := StrToInt(Copy(Str, 12, 2));
+ Min := StrToInt(Copy(Str, 15, 2));
+ Sec := 0;
+ MSec := 0;
+ if Length(Str) > 16 then Sec := StrToInt(Copy(Str, 18, 2));
+ if Length(Str) > 19 then Msec := StrToInt(Copy(Str, 21, 3));
+ Result := Result + EncodeTime(Hour, Min, Sec, MSec);
+ end;
+ except
+ Result := 0;
+ end;
+end;
+
+function StrToIntX(StrIn: string): integer;
+var
+E: Integer;
+begin
+ Val(StrIn, Result, E);
+ if E <> 0 then Result := 0;
+end;
+
+function StrToFloatX(StrIn : string) : extended;
+begin
+ if not TextToFloat(PChar(StrIn), Result, fvExtended) then
+ Result := 0;
+end;
+
+procedure FindErrorPos(InString: string; ErrPos: integer;
+ var TheLine, TheCol: integer);
+var
+ i: integer;
+begin
+ TheLine := 1;
+ TheCol := 1;
+ i := 1;
+ while i < ErrPos do
+ begin
+ if InString[i] in [ #10, #13] then
+ begin
+ Inc(TheLine);
+ TheCol := 1;
+ Inc(i);
+ Inc(i);
+ end
+ else
+ begin
+ Inc(TheCol);
+ Inc(i);
+ end;
+ end;
+end;
+
+function Recover(var InString: string;
+ var StartPos: integer): boolean;
+begin
+ if (StartPos > Length(InString)) then
+ begin
+ Recover := false;
+ exit;
+ end;
+
+ while (Startpos < Length(InString)) and
+ ( not (InString[StartPos] in [ #10, #13])) do
+ Inc(StartPos);
+ Recover := true;
+end;
+
+function PeekWord(var InString: string; StartPos: integer;
+ var VarType: integer): string;
+begin
+ PeekWord := GetWord(InString, StartPos, VarType);
+end;
+
+function GetWordByDelim(var InString: string;
+ var StartPos: integer;
+ var Delim: string): string;
+var
+ Ret: string;
+begin
+ Ret := '';
+ while (StartPos <= Length(InString)) and (InString[StartPos] = ' ') do
+ Inc(StartPos);
+ while (StartPos <= Length(InString)) and (Pos(InString[StartPos], Delim) = 0) do
+ begin
+ Ret := Ret + InString[StartPos];
+ Inc(StartPos);
+ end;
+ GetWordByDelim := Trim(Ret);
+end;
+
+function GetWord(var InString: string; var StartPos: integer;
+ var VarType: integer): string;
+var
+ TheChar: char;
+ Rv: string;
+begin
+ if (StartPos > Length(InString)) then
+ begin
+ GetWord := '';
+ VarType := vtcEof;
+ exit;
+ end;
+
+ while (StartPos <= Length(InString)) and (InString[StartPos] <= #32) do
+ Inc(StartPos);
+
+ TheChar := InString[StartPos];
+ Rv := '';
+
+ if TheChar in ['a'..'z', 'A'..'Z'] then
+ VarType := vtcIdentifier
+ else if TheChar in ['0'..'9', '-'] then
+ VarType := vtcNumber
+ else if TheChar = ':' then
+ VarType := vtcAssignment
+ else if TheChar = '"' then
+ VarType := vtcDString
+ else if TheChar = '''' then
+ VarType := vtcQString
+ else if TheChar in ['>', '=', '<'] then
+ VarType := vtcRelOp
+ else
+ begin
+ Inc(StartPos);
+ if TheChar = '!' then
+ begin
+ Recover(InString, StartPos);
+ Rv := GetWord(InString, StartPos, VarType);
+ GetWord := Rv;
+ end
+ else
+ begin
+ GetWord := TheChar;
+ end;
+ exit;
+ end;
+
+ case VarType of
+ vtcIdentifier:
+ begin
+ while InString[StartPos] in ['a'..'z', 'A'..'Z', '_','0'..'9'] do
+ begin
+ Rv := Rv + InString[StartPos];
+ Inc(StartPos);
+ end;
+ end;
+ vtcNumber:
+ begin
+ while InString[StartPos] in ['-', '0'..'9', '.'] do
+ begin
+ if InString[StartPos] = '.' then
+ VarType := vtcFloat;
+ Rv := Rv + InString[StartPos];
+ Inc(StartPos);
+ end;
+ if VarType = vtcFloat then
+ Rv := FloatToStr(StrToFloat(Rv))
+ else
+ Rv := IntToStr(StrToInt(Rv));
+ end;
+ vtcAssignment:
+ begin
+ Rv := InString[StartPos];
+ Inc(StartPos);
+ if InString[StartPos] = '=' then
+ begin
+ Inc(StartPos);
+ Rv := ':=';
+ end
+ else
+ begin
+ VarType := vtcDelimiter;
+ Rv := ':';
+ end;
+ end;
+ vtcQString:
+ begin
+ Inc(StartPos);
+ while InString[StartPos] <> '''' do
+ begin
+ Rv := Rv + InString[StartPos];
+ Inc(StartPos);
+ end;
+ Inc(StartPos);
+ end;
+ vtcDString:
+ begin
+ Inc(StartPos);
+ while InString[StartPos] <> '"' do
+ begin
+ Rv := Rv + InString[StartPos];
+ Inc(StartPos);
+ end;
+ Inc(StartPos);
+ end;
+ vtcRelOp:
+ begin
+ Rv := InString[StartPos];
+ if Rv = '<' then
+ begin
+ if InString[StartPos + 1] in ['=', '>'] then
+ begin
+ Rv := Rv + InString[StartPos + 1];
+ StartPos := StartPos + 2;
+ end
+ else
+ begin
+ Inc(StartPos);
+ end;
+ end
+ else if Rv = '>' then
+ begin
+ if InString[StartPos + 1] in ['=', '<'] then
+ begin
+ Rv := Rv + InString[StartPos + 1];
+ StartPos := StartPos + 2;
+ end
+ else
+ begin
+ Inc(StartPos);
+ end;
+ end
+ else
+ begin
+ Inc(StartPos);
+ end;
+ end;
+ end;
+ GetWord := Rv;
+end;
+
+{$IFDEF SQLite_Static}
+Var
+ TZInfo :_TIME_ZONE_INFORMATION;
+ TZRes :Integer;
+
+initialization
+ PInteger(@__timezone)^:=0;
+ PInteger(@__daylight)^:=0;
+ TZRes:=GetTimezoneInformation(TZInfo);
+ if TZRes>=0 Then
+ PInteger(@__timezone)^:=TZInfo.Bias*60;
+ if TZRes=TIME_ZONE_ID_DAYLIGHT Then
+ PInteger(@__daylight)^:=1;
+{$ENDIF}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODriverHtml.res
new file mode 100644
index 0000000..98b7c6e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.cfg
new file mode 100644
index 0000000..fbc8cdc
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.cfg
@@ -0,0 +1,46 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-GD
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dof
new file mode 100644
index 0000000..1a2d3d6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=3
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsD7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.287
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dpr
new file mode 100644
index 0000000..7d130a8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.dpr
@@ -0,0 +1,13 @@
+library DAADODrv;
+
+uses
+ ShareMem,
+ uDAADODriver in 'uDAADODriver.pas',
+ uDAADOInterfaces in '..\uDAADOInterfaces.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAADODriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAADODrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDriverHtml.res
new file mode 100644
index 0000000..93f013e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.cfg
new file mode 100644
index 0000000..9f8c69f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.cfg
@@ -0,0 +1,37 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dof
new file mode 100644
index 0000000..b542147
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsD7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=5.0.5.25
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dpr
new file mode 100644
index 0000000..ab5ec53
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.dpr
@@ -0,0 +1,12 @@
+library DAAnyDACDrv;
+
+uses
+ ShareMem,
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAAnyDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.res
new file mode 100644
index 0000000..84f461e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAAnyDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDriverHtml.res
new file mode 100644
index 0000000..57e2373
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.bdsproj
new file mode 100644
index 0000000..720c571
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.bdsproj
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+ DABDEDrv.dpr
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 3
+ 0
+ False
+ 1
+ True
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+ ..\..\bin
+
+
+
+ $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+
+
+ False
+
+
+
+ D:\Program Files\RemObjects Software\Data Abstract\DASchemaModeler.exe
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 0
+ 290
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.0.290
+
+
+
+
+ Data Abstract
+ 2.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.cfg
new file mode 100644
index 0000000..695c614
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.cfg
@@ -0,0 +1,39 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-GD
+-cg
+-vn
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\bin"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dof
new file mode 100644
index 0000000..593b787
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dof
@@ -0,0 +1,94 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dpr
new file mode 100644
index 0000000..f00c885
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.dpr
@@ -0,0 +1,12 @@
+library DABDEDrv;
+
+uses
+ ShareMem,
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DABDEDriverHtml.res}
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DABDEDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.cfg
new file mode 100644
index 0000000..4a853d2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J+
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_PLATFORM
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dof
new file mode 100644
index 0000000..af7d0f6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=1
+K=0
+L=1
+M=0
+N=1
+O=0
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Purposesoft HtmlEdit 2.0
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;CDKSmp;EaglWk;ESGraphUtils;ESBase;CDKDesignTimeSupport;ESVsCp;ESSampleCompositeEditors7;ESSampleComposites70;SynEdit_D7;dxsbD7;dxComnD7;dxExELD7;dxGrEdD7;ECQDBCD7;EQTLD7;dxEdtrD7;EQDBTLD7;EQGridD7;dxMasterViewD7;dxmdsd7;dxObjInsD7;dxPSCoreD7;Rz252N70;Rz252D70;madBasic_;madHelp_;madDisAsm_;madExcept_;EzSpecials_D7;sq7;kprocs7;dxDockingD7;dxLayoutControlD7;dxPageControlD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;Phoenix_Core_D7;cxPageControlVCLD7;dxELibD7;dxExRwD7;dxDBEdD7;dxInsD7;dxNavBarD7;Phoenix_IDE_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;cxWebD7;cxWebPascalScriptD7;cxWebTeeChartD7;cxWebSnapD7;SchemaModelerUtils_d7;Ani95_D7;DataAbstract_IDE_D7;DataAbstract_DiskDriver_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=3.0.0.50
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dpr
new file mode 100644
index 0000000..8efca9c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.dpr
@@ -0,0 +1,18 @@
+library DADBISAM3Drv;
+
+uses
+ ShareMem,
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+{$E dad}
+
+{$I dbisamvr.inc}
+{$IFDEF DBISAM_V4}
+Please only build this driver dpr with DBISAM3
+{$ENDIF DBISAM_V4}
+
+{$R *.res}
+{$R DADBISAMDriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM3Drv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.cfg
new file mode 100644
index 0000000..4a853d2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J+
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_PLATFORM
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dof
new file mode 100644
index 0000000..af7d0f6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=1
+K=0
+L=1
+M=0
+N=1
+O=0
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Purposesoft HtmlEdit 2.0
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;CDKSmp;EaglWk;ESGraphUtils;ESBase;CDKDesignTimeSupport;ESVsCp;ESSampleCompositeEditors7;ESSampleComposites70;SynEdit_D7;dxsbD7;dxComnD7;dxExELD7;dxGrEdD7;ECQDBCD7;EQTLD7;dxEdtrD7;EQDBTLD7;EQGridD7;dxMasterViewD7;dxmdsd7;dxObjInsD7;dxPSCoreD7;Rz252N70;Rz252D70;madBasic_;madHelp_;madDisAsm_;madExcept_;EzSpecials_D7;sq7;kprocs7;dxDockingD7;dxLayoutControlD7;dxPageControlD7;cxEditorsVCLD7;cxLibraryVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;Phoenix_Core_D7;cxPageControlVCLD7;dxELibD7;dxExRwD7;dxDBEdD7;dxInsD7;dxNavBarD7;Phoenix_IDE_D7;DataAbstract_Core_D7;DataAbstract_DBXDriver_D7;cxWebD7;cxWebPascalScriptD7;cxWebTeeChartD7;cxWebSnapD7;SchemaModelerUtils_d7;Ani95_D7;DataAbstract_IDE_D7;DataAbstract_DiskDriver_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=3.0.0.50
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dpr
new file mode 100644
index 0000000..c81ef35
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.dpr
@@ -0,0 +1,18 @@
+library DADBISAM4Drv;
+
+uses
+ ShareMem,
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+{$E dad}
+
+{$I dbisamvr.inc}
+{$IFNDEF DBISAM_V4}
+Please only build this driver dpr with DBISAM4
+{$ENDIF DBISAM_V4}
+
+{$R *.res}
+{$R DADBISAMDriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAM4Drv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAMDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAMDriverHtml.res
new file mode 100644
index 0000000..449e052
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBISAMDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDriverHtml.res
new file mode 100644
index 0000000..d7774e2
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.cfg
new file mode 100644
index 0000000..b0ec5d7
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.cfg
@@ -0,0 +1,45 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dof
new file mode 100644
index 0000000..daabfcd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dpr
new file mode 100644
index 0000000..4c68283
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.dpr
@@ -0,0 +1,13 @@
+library DADBXDrv;
+
+uses
+ ShareMem,
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DADBXDriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADBXDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADriverHtml.res
new file mode 100644
index 0000000..077daa2
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.cfg
new file mode 100644
index 0000000..ce504fe
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.cfg
@@ -0,0 +1,44 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J+
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\bin"
+-LN"D:\Program files.all\Winsys\borland\DCP_70"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.dpr
new file mode 100644
index 0000000..6282793
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.dpr
@@ -0,0 +1,15 @@
+library DADOADrv;
+
+uses
+ ShareMem,
+ Forms,
+ SysUtils,
+ Classes,
+ uDADOADriver in 'uDADOADriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DADOADriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DADOADrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDriverHtml.res
new file mode 100644
index 0000000..e0b8925
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.cfg
new file mode 100644
index 0000000..a0ce1dc
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\bin"
+-U"d:\program files.all\borland\delphi7\Lib\Debug;"
+-O"d:\program files.all\borland\delphi7\Lib\Debug;"
+-I"d:\program files.all\borland\delphi7\Lib\Debug;"
+-R"d:\program files.all\borland\delphi7\Lib\Debug;"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.dpr
new file mode 100644
index 0000000..7f7050b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.dpr
@@ -0,0 +1,12 @@
+library DAElevateDBDrv;
+
+uses
+ ShareMem,
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAElevateDBDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.res
new file mode 100644
index 0000000..08ba56e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAElevateDBDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDriverHtml.res
new file mode 100644
index 0000000..d12ca9d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.cfg
new file mode 100644
index 0000000..a17abb2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.cfg
@@ -0,0 +1,46 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-GD
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dof
new file mode 100644
index 0000000..1a2d3d6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=3
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsD7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.287
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dpr
new file mode 100644
index 0000000..1373b9a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.dpr
@@ -0,0 +1,12 @@
+library DAFIBDrv;
+
+uses
+ ShareMem,
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAFIBDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAFIBDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDriverHtml.res
new file mode 100644
index 0000000..4732a47
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.dpr
new file mode 100644
index 0000000..5c46278
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.dpr
@@ -0,0 +1,12 @@
+library DAIBDACDrv;
+
+uses
+ ShareMem,
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAIBDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.res
new file mode 100644
index 0000000..233c4ec
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODriverHtml.res
new file mode 100644
index 0000000..32c06f3
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.cfg
new file mode 100644
index 0000000..301d58f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.cfg
@@ -0,0 +1,39 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dof
new file mode 100644
index 0000000..daabfcd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dpr
new file mode 100644
index 0000000..152fbe5
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.dpr
@@ -0,0 +1,13 @@
+library DAIBODrv;
+
+uses
+ ShareMem,
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAIBODriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBODrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDriverHtml.res
new file mode 100644
index 0000000..790cda2
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.cfg
new file mode 100644
index 0000000..b0ec5d7
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.cfg
@@ -0,0 +1,45 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dof
new file mode 100644
index 0000000..daabfcd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dpr
new file mode 100644
index 0000000..39dde39
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.dpr
@@ -0,0 +1,13 @@
+library DAIBXDrv;
+
+uses
+ ShareMem,
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAIBXDriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAIBXDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDriverHtml.res
new file mode 100644
index 0000000..e1fa180
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.cfg
new file mode 100644
index 0000000..301d58f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.cfg
@@ -0,0 +1,39 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dof
new file mode 100644
index 0000000..dd86d8f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dof
@@ -0,0 +1,115 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.178
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dpr
new file mode 100644
index 0000000..971e17b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.dpr
@@ -0,0 +1,12 @@
+library DAMyDACDrv;
+
+uses
+ ShareMem,
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAMyDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMyDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDriverHtml.res
new file mode 100644
index 0000000..c7f7a82
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.cfg
new file mode 100644
index 0000000..40c80d0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.cfg
@@ -0,0 +1,45 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dof
new file mode 100644
index 0000000..dd86d8f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dof
@@ -0,0 +1,115 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.178
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dpr
new file mode 100644
index 0000000..3a48d91
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.dpr
@@ -0,0 +1,12 @@
+library DAMySQLDACDrv;
+
+uses
+ ShareMem,
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAMySQLDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAMySQLDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDriverHtml.res
new file mode 100644
index 0000000..46b9c33
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.cfg
new file mode 100644
index 0000000..7caebcd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.cfg
@@ -0,0 +1,45 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Data Abstract\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.dpr
new file mode 100644
index 0000000..5d47e04
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.dpr
@@ -0,0 +1,12 @@
+library DANexusDBDrv;
+
+uses
+ ShareMem,
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DANexusDBDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DANexusDBDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDriverHtml.res
new file mode 100644
index 0000000..a096da3
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.cfg
new file mode 100644
index 0000000..301d58f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.cfg
@@ -0,0 +1,39 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dof
new file mode 100644
index 0000000..daabfcd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dpr
new file mode 100644
index 0000000..b2aa1e2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.dpr
@@ -0,0 +1,13 @@
+library DAODACDrv;
+
+uses
+ ShareMem,
+ uDAODACDriver in 'uDAODACDriver.pas',
+ uDAOracleInterfaces in '..\uDAOracleInterfaces.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAODACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAODACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDriverHtml.res
new file mode 100644
index 0000000..c7f7a82
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.cfg
new file mode 100644
index 0000000..40c80d0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.cfg
@@ -0,0 +1,45 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dof
new file mode 100644
index 0000000..dd86d8f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dof
@@ -0,0 +1,115 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.178
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dpr
new file mode 100644
index 0000000..700c0aa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.dpr
@@ -0,0 +1,12 @@
+library DAPostgresDACDrv;
+
+uses
+ ShareMem,
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAPostgresDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAPostgresDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDriverHtml.res
new file mode 100644
index 0000000..2ca3ed1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.cfg
new file mode 100644
index 0000000..301d58f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.cfg
@@ -0,0 +1,39 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dof
new file mode 100644
index 0000000..8c8eb5f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+
+[Directories]
+OutputDir=..\..\Bin
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.1.196
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=Data Abstract
+ProductVersion=2.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dpr
new file mode 100644
index 0000000..615439d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.dpr
@@ -0,0 +1,12 @@
+library DASDACDrv;
+
+uses
+ ShareMem,
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DASDACDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASDACDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDriverHtml.res
new file mode 100644
index 0000000..316f711
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.bdsproj
new file mode 100644
index 0000000..584582a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.bdsproj
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+ DASQLiteDrv.dpr
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 3
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+ D:\Program Files\RemObjects Software\Data Abstract
+
+
+
+ $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;$(DELPHI)\Lib\Debug
+ vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+
+
+ False
+
+
+
+ D:\Program Files\RemObjects Software\Data Abstract\DASchemaModeler.exe
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 0
+ 290
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.0.290
+
+
+
+
+ Data Abstract
+ 2.0.0.0
+
+ RemObjects Data Abstract - FIBPlus Driver
+ RemObjects Hydra - Core Library
+ RemObjects Hydra - IDE Integration
+ RemObjects Hydra - RemObjects SDK Integration Library
+ RemObjects Hydra - RemObjects SDK IDE Integration
+ RemObjects NexusDB Pack - Library
+ RemObjects NexusDB Pack - IDE Integration
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.cfg
new file mode 100644
index 0000000..8549342
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.cfg
@@ -0,0 +1,34 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"..\..\Bin"
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.dpr
new file mode 100644
index 0000000..dafaf13
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.dpr
@@ -0,0 +1,13 @@
+library DASQLiteDrv;
+
+uses
+ ShareMem,
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DASQLiteDriverHtml.res}
+
+begin
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DASQLiteDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDriverHtml.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDriverHtml.res
new file mode 100644
index 0000000..f3000f5
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDriverHtml.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.cfg
new file mode 100644
index 0000000..96a1b9a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O-
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"D:\Program Files\RemObjects Software\Data Abstract"
+-U"d:\program files.all\borland\delphi7\Lib\Debug;J:\Products\ACAT\Source"
+-O"d:\program files.all\borland\delphi7\Lib\Debug;J:\Products\ACAT\Source"
+-I"d:\program files.all\borland\delphi7\Lib\Debug;J:\Products\ACAT\Source"
+-R"d:\program files.all\borland\delphi7\Lib\Debug;J:\Products\ACAT\Source"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.dpr b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.dpr
new file mode 100644
index 0000000..a566487
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.dpr
@@ -0,0 +1,12 @@
+library DAZeosDrv;
+
+uses
+ ShareMem,
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+{$E dad}
+
+{$R *.res}
+{$R DAZeosDriverHtml.res}
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.res
new file mode 100644
index 0000000..155b50d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DAZeosDrv.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.bdsproj
new file mode 100644
index 0000000..1e97716
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_ADODriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - ADOExpress/dbGo DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.dpk
new file mode 100644
index 0000000..501b019
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ADODriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ADOExpress/dbGo Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ adortl;
+
+contains
+ uDAADODriver in 'uDAADODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dpk
new file mode 100644
index 0000000..503d123
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ADODriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ADOExpress/dbGo Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ adortl;
+
+contains
+ uDAADODriver in 'uDAADODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dproj
new file mode 100644
index 0000000..b399aa9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.dproj
@@ -0,0 +1,68 @@
+
+
+ {6843d8de-6ab6-4222-a3c5-282e7cc611df}
+ DataAbstract_ADODriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ADODriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - ADOExpress/dbGo DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_ADODriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dpk
new file mode 100644
index 0000000..9bd8e7c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ADODriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ADOExpress/dbGo Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ adortl,
+ DataAbstract_Core_D12;
+
+contains
+ uDAADODriver in 'uDAADODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dproj
new file mode 100644
index 0000000..149460f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {6843d8de-6ab6-4222-a3c5-282e7cc611df}
+ DataAbstract_ADODriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ADODriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_ADODriver_D12.bpl
+ RemObjects Data Abstract - ADOExpress/dbGo Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_ADODriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dof
new file mode 100644
index 0000000..e0035fa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dpk
new file mode 100644
index 0000000..9a608cd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ADODriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ADOExpress/dbGo Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ adortl;
+
+contains
+ uDAADODriver in 'uDAADODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dof
new file mode 100644
index 0000000..f2d0c96
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dpk
new file mode 100644
index 0000000..a1427e8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ADODriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ADOExpress/dbGo Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ adortl;
+
+contains
+ uDAADODriver in 'uDAADODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_Glyphs.res
new file mode 100644
index 0000000..067c6a6
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ADODriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.bdsproj
new file mode 100644
index 0000000..a34aa65
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_AnyDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - AnyDAC DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.dpk
new file mode 100644
index 0000000..d6baf13
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.dpk
@@ -0,0 +1,53 @@
+package DataAbstract_AnyDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - AnyDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ dbexpress,
+ xmlrtl,
+ AnyDAC_PhysIB_D10,
+ AnyDAC_Phys_D10,
+ AnyDAC_ComI_D10,
+ AnyDAC_PhysADS_D10,
+ AnyDAC_PhysODBC_D10,
+ AnyDAC_PhysDBExp_D10,
+ AnyDAC_PhysASA_D10,
+ AnyDAC_PhysOracl_D10,
+ AnyDAC_PhysMySQL_D10,
+ AnyDAC_PhysDb2_D10,
+ AnyDAC_PhysMSSQL_D10,
+ AnyDAC_PhysMSAcc_D10,
+ AnyDAC_Comp_D10;
+
+contains
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dpk
new file mode 100644
index 0000000..bd83783
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dpk
@@ -0,0 +1,54 @@
+package DataAbstract_AnyDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - AnyDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ dbexpress,
+ xmlrtl,
+ AnyDAC_PhysIB_D11,
+ AnyDAC_Phys_D11,
+ AnyDAC_ComI_D11,
+ AnyDAC_PhysADS_D11,
+ AnyDAC_PhysODBC_D11,
+ AnyDAC_PhysASA_D11,
+ AnyDAC_PhysOracl_D11,
+ AnyDAC_PhysMySQL_D11,
+ AnyDAC_PhysDb2_D11,
+ AnyDAC_PhysMSSQL_D11,
+ AnyDAC_PhysMSAcc_D11,
+ AnyDAC_Comp_D11,
+ AnyDAC_PhysTDBX_D11,
+ DbxMetaData;
+
+contains
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dproj
new file mode 100644
index 0000000..37cf6a8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.dproj
@@ -0,0 +1,67 @@
+
+
+ {6843d8de-6ab6-4222-a3c5-282e7cc611df}
+ DataAbstract_AnyDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_AnyDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - AnyDAC DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_AnyDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dpk
new file mode 100644
index 0000000..57f22a5
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dpk
@@ -0,0 +1,51 @@
+package DataAbstract_AnyDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - AnyDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ AnyDAC_PhysIB_D12,
+ AnyDAC_Phys_D12,
+ AnyDAC_ComI_D12,
+ AnyDAC_PhysADS_D12,
+ AnyDAC_PhysODBC_D12,
+ AnyDAC_PhysASA_D12,
+ AnyDAC_PhysOracl_D12,
+ AnyDAC_PhysMySQL_D12,
+ AnyDAC_PhysDb2_D12,
+ AnyDAC_PhysMSSQL_D12,
+ AnyDAC_PhysMSAcc_D12,
+ AnyDAC_Comp_D12,
+ AnyDAC_PhysTDBX_D12;
+
+contains
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dproj
new file mode 100644
index 0000000..532bd6a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.dproj
@@ -0,0 +1,157 @@
+
+
+ {6843d8de-6ab6-4222-a3c5-282e7cc611df}
+ DataAbstract_AnyDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D12\DataAbstract_AnyDACDriver_D12.bpl
+ 11.1
+ Debug
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_AnyDACDriver_D12.bpl
+ RemObjects Data Abstract - AnyDAC Driver
+
+
+ ..\..\Dcu\D12
+ 7.0
+ False
+ 0
+ False
+ False
+ False
+ False
+ False
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_ObjPath)
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_ResourcePath)
+ RELEASE;$(DCC_Define)
+ False
+ ..\..\Dcu\D12
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_IncludePath)
+ False
+
+
+ ..\..\Dcu\D12
+ 7.0
+ False
+ False
+ False
+ False
+ False
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_ObjPath)
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_ResourcePath)
+ ..\..\Dcu\D12
+ ..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_IncludePath)
+ False
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_Release
+ Base
+
+
+ Cfg_Debug
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_AnyDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dof
new file mode 100644
index 0000000..70f2fea
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - AnyDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dpk
new file mode 100644
index 0000000..f744ae2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.dpk
@@ -0,0 +1,53 @@
+package DataAbstract_AnyDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - AnyDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ dbexpress,
+ xmlrtl,
+ AnyDAC_PhysIB_D6,
+ AnyDAC_Phys_D6,
+ AnyDAC_ComI_D6,
+ AnyDAC_PhysADS_D6,
+ AnyDAC_PhysODBC_D6,
+ AnyDAC_PhysDBExp_D6,
+ AnyDAC_PhysASA_D6,
+ AnyDAC_PhysOracl_D6,
+ AnyDAC_PhysMySQL_D6,
+ AnyDAC_PhysDb2_D6,
+ AnyDAC_PhysMSSQL_D6,
+ AnyDAC_PhysMSAcc_D6,
+ AnyDAC_Comp_D6;
+
+contains
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.cfg
new file mode 100644
index 0000000..f33a910
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\..\RemObjects SDK for Delphi\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\..\RemObjects SDK for Delphi\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\..\RemObjects SDK for Delphi\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\..\RemObjects SDK for Delphi\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dof
new file mode 100644
index 0000000..f8327e9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - AnyDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\..\RemObjects SDK for Delphi\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.289
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dpk
new file mode 100644
index 0000000..47a39c3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.dpk
@@ -0,0 +1,53 @@
+package DataAbstract_AnyDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - AnyDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ dbexpress,
+ xmlrtl,
+ AnyDAC_PhysIB_D7,
+ AnyDAC_Phys_D7,
+ AnyDAC_ComI_D7,
+ AnyDAC_PhysADS_D7,
+ AnyDAC_PhysODBC_D7,
+ AnyDAC_PhysDBExp_D7,
+ AnyDAC_PhysASA_D7,
+ AnyDAC_PhysOracl_D7,
+ AnyDAC_PhysMySQL_D7,
+ AnyDAC_PhysDb2_D7,
+ AnyDAC_PhysMSSQL_D7,
+ AnyDAC_PhysMSAcc_D7,
+ AnyDAC_Comp_D7;
+
+contains
+ uDAAnyDACDriver in 'uDAAnyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.res
new file mode 100644
index 0000000..b40eccd
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.lrs b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.lrs
new file mode 100644
index 0000000..6f651d1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.lrs
@@ -0,0 +1,80 @@
+LazarusResources.Add('TDAANYDACDriver','BMP',[
+ 'BM'#248#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#194#6#0#0#18#11#0#0#18#11#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0
+ +'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0
+ +#255#255#0#255#255#0#255#255#0#255#129#30#0'w'#23#0'w'#23#0#255#0#255#255#0
+ +#255#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0
+ +#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255#129#30
+ +#0#129#30#0#129#30#0#252#154'*'#184':'#0#184':'#0#128'*'#3#255#0#255#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#255#0
+ +#255#130#24#0#129#30#0#248'w'#0#255#129#0#255#149#19#255#170'4'#255#189'Z'
+ +#138#31#0#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255
+ +#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0
+ +#0#5'f'#149#130#24#0'y'#16#0#255#158' '#252'w'#0#143#30#0#213'g'#10#255#171
+ +'8'#138#31#0#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0
+ +#0#130#24#0#130#24#0#221#152'Z'#255#191']'#186'M'#5#255#0#255'v'#12#0#242#134
+ +#20#252#160'4'#138#31#0#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#0'R'#143#0'6o'#9
+ +'o'#164'W9'#23#171'3'#0#233#171'n'#255#215#146#193'e%'#255#0#255'v'#12#0#242
+ +'w'#1#255#150#25#138#31#0#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#255#255#255#128#0#0#0'R'#143#0'R'#143#0'R'#143#6#140#194'I'
+ +#221#255#0'v'#186#0'v'#186'YVE'#255#218#154#233#170'j'#145'%'#0#193'M'#0#255
+ +'~'#0#138#31#0#255#0#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#0'6p'#0'j'#161#2#199#255
+ +#9#202#255''''#212#255'N'#222#255'y'#233#255#0'v'#186#255#218#154#255#218#154
+ +#255#211#137#255#177'C'#255#138#7#138#31#0#255#0#255#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#0'9u'#4'v'#170'('#212#255#0
+ +#158#218#0'N'#138#22#163#212'R'#224#255#0'v'#186#196'f#'#203'g'#25#255#218
+ +#154#184':'#0#184':'#0#184':'#0#255#0#255#255#0#255#2't'#169'['#213#226'i'
+ +#246#254'E'#230#254'%'#215#254#13#199#254#26#204#254#0';v'#11#128#176#156#233
+ +#254'h'#230#255'#'#165#212#0'A~'#0'F'#129'0'#215#255'M'#215#254'%_p'#184':'#0
+ +#184':'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#2't'#169'['#213
+ +#226''#247#254'z'#238#254'}'#233#254#135#231#255#163#237#255#0';v'#3'{'#176
+ +#165#235#254#167#243#255'^'#193#226#0'L'#138#0'N'#138#19#204#255'-'#206#252
+ +#13'b'#145#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#2't'#169#160#233#239#170#238#246'p'#207#229'?'#177#211#29#149#192#17#131
+ +#177#15'{'#170#0'@z'#24#150#196#182#246#255'~'#212#238#3'g'#157#13#182#235#1
+ +#198#255#13'b'#145#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#3'p'#164'T'#177#202'('#156#188'&'#171#207#27#182#224
+ +#12#183#237#24#198#247':'#213#254#0'A~'#27#153#196#181#244#255#182#246#255
+ +#154#240#255'N'#222#255#13#202#255#13'b'#145#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#4'l'#158'?'#180#203'f'#242
+ +#251'E'#230#254'%'#215#254#0#0#0#0#0#0#0#0#0#0#0#0#0'Ay'#0'E~;'#175#213#182
+ +#246#255#13'b'#145#13'b'#145#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#2's'#167'['#213#226'i'#246#254
+ +'E'#230#254#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0'Q'
+ +#199#233#0'A{'#0'E{'#1'z'#180#5'f'#149#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#255#0#255#255#0#255#128#128#128#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#255#255#255#128#0#0#128#0#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#254#254#254#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#0#0#0#128#128#128#255#255#255#128#0#0#255#255
+ +#255#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255
+ +#255#255#128#0#0#128#0#0#192#220#192#255#255#255#128#0#0#255#255#255#128#0#0
+ +#255#255#255#192#220#192#128#0#0#255#255#255#0#0#0#128#128#128#255#255#255
+ +#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255#255
+ +#255#128#0#0#255#255#255#128#0#0#192#220#192#128#0#0#255#255#255#128#0#0#255
+ +#255#255#128#0#0#255#255#255#128#0#0#192#220#192#255#255#255#0#0#0#128#128
+ +#128#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0
+ +#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#128
+ +#0#0#128#0#0#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#0#0#0#128
+ +#128#128#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#255
+ ,#255#255#254#254#254#255#255#255#255#255#255#255#255#255#128#0#0#192#220#192
+ +#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#255#255#255#128#0#0#192#220
+ +#192#255#255#255#0#0#0#128#128#128#255#255#255#192#220#192#128#0#0#192#220
+ +#192#255#255#255#255#255#255#255#255#255#254#254#254#255#255#255#255#255#255
+ +#255#255#255#128#0#0#128#0#0#192#220#192#255#255#255#192#220#192#128#0#0#192
+ +#220#192#255#255#255#192#220#192#128#0#0#255#255#255#0#0#0#128#128#128#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#254#254#254#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#0#0#0#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#0#0
+]);
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.res
new file mode 100644
index 0000000..3926468
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Lazarus_Windows.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Lazarus_Windows.lpk
new file mode 100644
index 0000000..a937aad
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_AnyDACDriver_Lazarus_Windows.lpk
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.bdsproj
new file mode 100644
index 0000000..f5afeb9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.bdsproj
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_BDEDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - BDE Driver
+ False
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.dpk
new file mode 100644
index 0000000..de3b837
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_BDEDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - BDE Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ DataAbstract_Core_D10;
+
+contains
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dpk
new file mode 100644
index 0000000..073cecc
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_BDEDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - BDE Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ DataAbstract_Core_D11;
+
+contains
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dproj
new file mode 100644
index 0000000..2d9757f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.dproj
@@ -0,0 +1,68 @@
+
+
+ {3cd4ddcd-76f8-4583-8117-c00562cb6a62}
+ DataAbstract_BDEDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_BDEDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - BDE DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_BDEDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dpk
new file mode 100644
index 0000000..806569a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_BDEDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - BDE Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ DataAbstract_Core_D12;
+
+contains
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dproj
new file mode 100644
index 0000000..07c3f28
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {3cd4ddcd-76f8-4583-8117-c00562cb6a62}
+ DataAbstract_BDEDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_BDEDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_BDEDriver_D12.bpl
+ RemObjects Data Abstract - BDE Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_BDEDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.cfg
new file mode 100644
index 0000000..c2c069b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.dpk
new file mode 100644
index 0000000..aceb56d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_BDEDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - BDE Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ bdertl;
+
+contains
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.cfg
new file mode 100644
index 0000000..8e0bad7
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.dpk
new file mode 100644
index 0000000..a5b4538
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_BDEDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - BDE Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ DataAbstract_Core_D7;
+
+contains
+ uDABDEDriver in 'uDABDEDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_Glyphs.res
new file mode 100644
index 0000000..a2a5a20
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_BDEDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.bdsproj
new file mode 100644
index 0000000..096f1d8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_DBISAMDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - DBISAM DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.dpk
new file mode 100644
index 0000000..b21161d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DBISAMDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - DBISAM Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10,
+ db324d9r;
+
+contains
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dpk
new file mode 100644
index 0000000..2ba6953
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DBISAMDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - DBISAM Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ db324d2007r;
+
+contains
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dproj
new file mode 100644
index 0000000..15260b2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.dproj
@@ -0,0 +1,63 @@
+
+
+ {18f879f9-5865-46a9-8515-d3b4503d16ff}
+ DataAbstract_DBISAMDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_DBISAMDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - DBISAM DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_DBISAMDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dpk
new file mode 100644
index 0000000..db50a91
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_DBISAMDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - DBISAM Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ DataAbstract_Core_D12,
+ db424b2009r;
+
+contains
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dproj
new file mode 100644
index 0000000..19951b8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.dproj
@@ -0,0 +1,96 @@
+
+
+ {18f879f9-5865-46a9-8515-d3b4503d16ff}
+ DataAbstract_DBISAMDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_DBISAMDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_DBISAMDriver_D12.bpl
+ RemObjects Data Abstract - DBISAM Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_DBISAMDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dof
new file mode 100644
index 0000000..1e36acf
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - DBISAM Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6
+Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;webdsnap;websnap;soaprtl;dbexpress;dbxcds;indy;tb2kComplete;CRControls60;dac60;dacvcl60;sdacvcl60;sdac60;oraprov60;odac60;odacvcl60;DataAbstract_Core_D6;DataAbstract_DBXDriver_D6;DataAbstract_DiskDriver_D6
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dpk
new file mode 100644
index 0000000..f1b37bf
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DBISAMDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - DBISAM Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6,
+ db324d6r;
+
+contains
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.res
new file mode 100644
index 0000000..84eaa11
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.cfg
new file mode 100644
index 0000000..02179cd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7"
+-O"..\..\Dcu\D7"
+-I"..\..\Dcu\D7"
+-R"..\..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dof
new file mode 100644
index 0000000..2d15714
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - DBISAM Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dpk
new file mode 100644
index 0000000..6a2ee23
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DBISAMDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - DBISAM Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7,
+ db324d7r;
+
+contains
+ uDADBISAMDriver in 'uDADBISAMDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.res
new file mode 100644
index 0000000..84eaa11
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_Glyphs.res
new file mode 100644
index 0000000..3163762
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBISAMDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.bdsproj
new file mode 100644
index 0000000..214c011
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_DBXDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - dbExpress DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.dpk
new file mode 100644
index 0000000..ce917fe
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_DBXDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - dbExpress Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dbexpress,
+ DataAbstract_Core_D10;
+
+contains
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dpk
new file mode 100644
index 0000000..d3298fa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_DBXDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - dbExpress Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dbexpress,
+ DataAbstract_Core_D11;
+
+contains
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dproj
new file mode 100644
index 0000000..071e5f3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.dproj
@@ -0,0 +1,72 @@
+
+
+ {f8cd0c64-f9cd-46d4-8a1b-03d6a3efbdb3}
+ DataAbstract_DBXDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_DBXDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - dbExpress DriverFalseFalseFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_DBXDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dpk
new file mode 100644
index 0000000..35f7066
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_DBXDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - dbExpress Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dbexpress,
+ DataAbstract_Core_D12;
+
+contains
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dproj
new file mode 100644
index 0000000..7ef561d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.dproj
@@ -0,0 +1,97 @@
+
+
+ {f8cd0c64-f9cd-46d4-8a1b-03d6a3efbdb3}
+ DataAbstract_DBXDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_DBXDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_DBXDriver_D12.bpl
+ true
+ RemObjects Data Abstract - dbExpress Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_DBXDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.cfg
new file mode 100644
index 0000000..0aa2cb6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dof
new file mode 100644
index 0000000..d2de85f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - dbExpress Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dpk
new file mode 100644
index 0000000..d9265ff
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_DBXDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - dbExpress Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dbexpress,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6;
+
+contains
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.cfg
new file mode 100644
index 0000000..a290ad9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dof
new file mode 100644
index 0000000..7f90f99
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - dbExpress Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dpk
new file mode 100644
index 0000000..a20bd62
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_DBXDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - dbExpress Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ dbexpress,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7;
+
+contains
+ uDADBXDriver in 'uDADBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_Glyphs.res
new file mode 100644
index 0000000..3ac39af
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DBXDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.bdsproj
new file mode 100644
index 0000000..9e97b99
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.bdsproj
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_DOADriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Direct Oracle Access DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1031
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.cfg
new file mode 100644
index 0000000..ec7d8d2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C-
+-$D-
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L-
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q+
+-$R+
+-$S-
+-$T-
+-$U+
+-$V+
+-$W-
+-$X+
+-$Y-
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10"
+-O"..\..\Dcu\D10"
+-I"..\..\Dcu\D10"
+-R"..\..\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.dpk
new file mode 100644
index 0000000..15b25df
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D10;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ doa41d2006;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.res
new file mode 100644
index 0000000..7d5072d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dpk
new file mode 100644
index 0000000..150f485
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D11;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ doa41d2007;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dproj
new file mode 100644
index 0000000..28b9bc0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.dproj
@@ -0,0 +1,96 @@
+
+
+ {a2e90cba-5a04-4ca5-b40f-eeb19b461f2f}
+ DataAbstract_DOADriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_DOADriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ False
+ True
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+
+ False
+ True
+ False
+
+
+ RemObjects Data Abstract - Direct Oracle Access Driver
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1031
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ DataAbstract_DOADriver_D11.dpk
+
+
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.res
new file mode 100644
index 0000000..c467631
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dpk
new file mode 100644
index 0000000..166b374
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D12;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ doa41d2009;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dproj
new file mode 100644
index 0000000..d9bf6ae
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.dproj
@@ -0,0 +1,103 @@
+
+
+ {E84B9AAD-18C0-4A3D-893C-C2036F2B3D7A}
+ DataAbstract_DOADriver_D12.dpk
+ Base
+ DCC32
+ 11.1
+
+
+ true
+
+
+ RemObjects Data Abstract - Direct Oracle Access Driver
+ error
+ error
+ ..\..\Dcu\D12\DataAbstract_DOADriver_D12.bpl
+ true
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ false
+ error
+ true
+ error
+ true
+ false
+ true
+ ..\..\Dcu\D12
+ true
+ ..\..\Dcu\D12
+ false
+ true
+ error
+ true
+ 0
+ 00400000
+ x86
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ DataAbstract_DOADriver_D12.dpk
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1049
+ 1251
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.res
new file mode 100644
index 0000000..77cfa35
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.cfg
new file mode 100644
index 0000000..ce65bb4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C-
+-$D-
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L-
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q+
+-$R+
+-$S-
+-$T-
+-$U+
+-$V+
+-$W-
+-$X+
+-$Y-
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6"
+-O"..\..\Dcu\D6"
+-I"..\..\Dcu\D6"
+-R"..\..\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dof
new file mode 100644
index 0000000..3c9cab7
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=0
+D=0
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=0
+M=0
+N=1
+O=1
+P=1
+Q=1
+R=1
+S=0
+T=0
+U=1
+V=1
+W=0
+X=1
+Y=0
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Direct Oracle Access Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dpk
new file mode 100644
index 0000000..4eff87c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D6;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ doa41d6;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.res
new file mode 100644
index 0000000..c467631
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.cfg
new file mode 100644
index 0000000..e5c2492
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C-
+-$D-
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L-
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q+
+-$R+
+-$S-
+-$T-
+-$U+
+-$V+
+-$W-
+-$X+
+-$Y-
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7"
+-O"..\..\Dcu\D7"
+-I"..\..\Dcu\D7"
+-R"..\..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dof
new file mode 100644
index 0000000..b369898
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=0
+D=0
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=0
+M=0
+N=1
+O=1
+P=1
+Q=1
+R=1
+S=0
+T=0
+U=1
+V=1
+W=0
+X=1
+Y=0
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Direct Oracle Access Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dpk
new file mode 100644
index 0000000..fc81f64
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D7;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ doa41d7;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.res
new file mode 100644
index 0000000..c467631
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.bdsproj
new file mode 100644
index 0000000..213d43f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.bdsproj
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_DOADriver_D9.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Direct Oracle Access Driver
+
+
+
+ ..\..\Dcu\D9
+ ..\..\Dcu\D9
+ ..\..\Dcu\D9
+ ..\..\Dcu\D9
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1031
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.cfg
new file mode 100644
index 0000000..1ff2976
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C-
+-$D-
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L-
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q+
+-$R+
+-$S-
+-$T-
+-$U+
+-$V+
+-$W-
+-$X+
+-$Y-
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D9"
+-LE"..\..\Dcu\D9"
+-LN"..\..\Dcu\D9"
+-U"..\..\Dcu\D9"
+-O"..\..\Dcu\D9"
+-I"..\..\Dcu\D9"
+-R"..\..\Dcu\D9"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.dpk
new file mode 100644
index 0000000..5b58a97
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_DOADriver_D9;
+
+{$R *.res}
+{$R 'uDADOADriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS OFF}
+{$BOOLEVAL OFF}
+{$DEBUGINFO OFF}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS OFF}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS ON}
+{$RANGECHECKS ON}
+{$REFERENCEINFO OFF}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Direct Oracle Access Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D9,
+ doa41d9;
+
+contains
+ uDADOADriver in 'uDADOADriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.res
new file mode 100644
index 0000000..7d5072d
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_DOADriver_D9.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_Drivers_D6.bpg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_Drivers_D6.bpg
new file mode 100644
index 0000000..4e931fa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_Drivers_D6.bpg
@@ -0,0 +1,61 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = DataAbstract_ADODriver_D7.bpl DataAbstract_DBXDriver_D7.bpl \
+ DataAbstract_IBXDriver_D7.bpl DataAbstract_DiskDriver_D7.bpl DAADODrv.dad \
+ DADBXDrv.dad DADiskDrv.dad DAIBXDrv.dad DataAbstract_IBODriver_D7.bpl \
+ DataAbstract_SDACDriver_D7.bpl DataAbstract_ODACDriver_D7.bpl DAIBODrv.dad \
+ DASDACDrv.dad
+DataAbstract_SDACDriver_D6.bpl DataAbstract_ODACDriver_D6.bpl
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+DataAbstract_DiskDriver_D7.bpl: DataAbstract_DiskDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_DBXDriver_D7.bpl: DataAbstract_DBXDriver_D7.dpk
+ $(DCC)
+
+DAADODrv.dad: DAADODrv.dpr
+ $(DCC)
+
+DADBXDrv.dad: DADBXDrv.dpr
+ $(DCC)
+
+DADiskDrv.dad: DADiskDrv.dpr
+ $(DCC)
+
+DAIBXDrv.dad: DAIBXDrv.dpr
+ $(DCC)
+
+DAIBODrv.dad: DAIBODrv.dpr
+ $(DCC)
+
+DASDACDrv.dad: DASDACDrv.dpr
+ $(DCC)
+
+DataAbstract_SDACDriver_D7.bpl: DataAbstract_SDACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_ODACDriver_D7.bpl: DataAbstract_ODACDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_ADODriver_D7.bpl: DataAbstract_ADODriver_D7.dpk
+ $(DCC)
+
+DataAbstract_IBXDriver_D7.bpl: DataAbstract_IBXDriver_D7.dpk
+ $(DCC)
+
+DataAbstract_IBODriver_D7.bpl: DataAbstract_IBODriver_D7.dpk
+ $(DCC)
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.bdsproj
new file mode 100644
index 0000000..47a24e4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_ElevateDBDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Elevate DB DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.dpk
new file mode 100644
index 0000000..b6773b6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ElevateDBDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ElevateDB Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ edb105d10run;
+
+contains
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dpk
new file mode 100644
index 0000000..bd44fbd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ElevateDBDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ElevateDB Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ edb105D2007run;
+
+contains
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dproj
new file mode 100644
index 0000000..d04db30
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.dproj
@@ -0,0 +1,73 @@
+
+
+ {c31471d9-f8e2-4e45-94a7-1264d8011587}
+ DataAbstract_ElevateDBDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ElevateDBDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - ElevateDB DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_ElevateDBDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dpk
new file mode 100644
index 0000000..0eb30af
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ElevateDBDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ElevateDB Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ edb105D2009run;
+
+contains
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dproj
new file mode 100644
index 0000000..dfe92dd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {c31471d9-f8e2-4e45-94a7-1264d8011587}
+ DataAbstract_ElevateDBDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ElevateDBDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_ElevateDBDriver_D12.bpl
+ RemObjects Data Abstract - ElevateDB Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_ElevateDBDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.cfg
new file mode 100644
index 0000000..c2c069b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dof
new file mode 100644
index 0000000..0c3ea83
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - ElevateDB Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dpk
new file mode 100644
index 0000000..5e5f141
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ElevateDBDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ElevateDB Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ edb105d6run;
+
+contains
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.res
new file mode 100644
index 0000000..f5602d3
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dof
new file mode 100644
index 0000000..9e696f5
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - ElevateDB Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;EDBpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dpk
new file mode 100644
index 0000000..c2f5f25
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ElevateDBDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - ElevateDB Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ edb105d7run;
+
+contains
+ uDAElevateDBDriver in 'uDAElevateDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.res
new file mode 100644
index 0000000..77a3fad
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_Glyphs.res
new file mode 100644
index 0000000..9e2c761
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ElevateDBDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.bdsproj
new file mode 100644
index 0000000..239dc3d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_FIBDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - FIBPlus DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.dpk
new file mode 100644
index 0000000..6b4fd10
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_FIBDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - FIBPlus Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ FIBPlus2006;
+
+contains
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dpk
new file mode 100644
index 0000000..d35cd4a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_FIBDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - FIBPlus Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ FIBPlus2007;
+
+contains
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dproj
new file mode 100644
index 0000000..f73572b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.dproj
@@ -0,0 +1,68 @@
+
+
+ {4aa60252-6f77-44b7-a171-e158f29374ca}
+ DataAbstract_FIBDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_FIBDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - FIBPlus DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_FIBDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dpk
new file mode 100644
index 0000000..07031d1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_FIBDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - FIBPlus Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ FIBPlus2009;
+
+contains
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dproj
new file mode 100644
index 0000000..67a3d3b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {4aa60252-6f77-44b7-a171-e158f29374ca}
+ DataAbstract_FIBDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_FIBDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ error
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_FIBDriver_D12.bpl
+ RemObjects Data Abstract - FIBPlus Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_FIBDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dof
new file mode 100644
index 0000000..c96c6c8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - FIBPlus Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=3.0.0.289
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dpk
new file mode 100644
index 0000000..0447c56
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_FIBDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - FIBPlus Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ FIBPlus6;
+
+contains
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.res
new file mode 100644
index 0000000..f5602d3
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dof
new file mode 100644
index 0000000..ccdfd7b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - FIBPlus Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dpk
new file mode 100644
index 0000000..8ecc150
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_FIBDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - FIBPlus Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ FIBPlus7;
+
+contains
+ uDAFIBDriver in 'uDAFIBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_Glyphs.res
new file mode 100644
index 0000000..d0e3d08
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_FIBDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.bdsproj
new file mode 100644
index 0000000..8d350cb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.bdsproj
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_IBDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - CoreLabs IBDAC Driver
+ False
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.dpk
new file mode 100644
index 0000000..032d677
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_MyDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs IBDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ IBdac100,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10;
+
+contains
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dpk
new file mode 100644
index 0000000..6cd7bb8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_IBDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs IBDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ IBdac105,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11;
+
+contains
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dproj
new file mode 100644
index 0000000..bfcbf1a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.dproj
@@ -0,0 +1,73 @@
+
+
+ {0d0e2131-7a05-4241-9ca1-f98aea2eb9d9}
+ DataAbstract_IBDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - CoreLabs IBDAC DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_IBDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dpk
new file mode 100644
index 0000000..980ce55
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_IBDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs IBDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ IBdac12,
+ RemObjects_Core_D12,
+ DataAbstract_Core_D12;
+
+contains
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dproj
new file mode 100644
index 0000000..014d532
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.dproj
@@ -0,0 +1,97 @@
+
+
+ {0d0e2131-7a05-4241-9ca1-f98aea2eb9d9}
+ DataAbstract_IBDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBDACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_IBDACDriver_D12.bpl
+ true
+ RemObjects Data Abstract - CoreLabs IBDAC Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_IBDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.cfg
new file mode 100644
index 0000000..51b688e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6"
+-O"..\..\Dcu\D6"
+-I"..\..\Dcu\D6"
+-R"..\..\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dof
new file mode 100644
index 0000000..0cbf2a3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - CoreLabs IBDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dpk
new file mode 100644
index 0000000..6975ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_IBDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs IBDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ ibdac60,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6;
+
+contains
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.res
new file mode 100644
index 0000000..371f8db
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.cfg
new file mode 100644
index 0000000..4c8862b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7"
+-O"..\..\Dcu\D7"
+-I"..\..\Dcu\D7"
+-R"..\..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dof
new file mode 100644
index 0000000..f69663d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - CoreLabs IBDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dpk
new file mode 100644
index 0000000..3fd2f36
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_MyDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs IBDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ ibdac70,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7;
+
+contains
+ uDAIBDACDriver in 'uDAIBDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.res
new file mode 100644
index 0000000..371f8db
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_Glyphs.res
new file mode 100644
index 0000000..3497984
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.bdsproj
new file mode 100644
index 0000000..00d9b79
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_IBODriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - InterBase Objects DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.dpk
new file mode 100644
index 0000000..ef0bb3f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_IBODriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Objects Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ IBO40TRT_D10,
+ IBO40XRT_D10;
+
+contains
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dpk
new file mode 100644
index 0000000..d20f478
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_IBODriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Objects Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ IBO40TRT_D2007,
+ IBO40XRT_D2007;
+
+contains
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dproj
new file mode 100644
index 0000000..15f3a0b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.dproj
@@ -0,0 +1,70 @@
+
+
+
+ {8dcafd0d-ab98-4b7e-8b86-36dbc593e504}
+ DataAbstract_IBODriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBODriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - InterBase Objects DriverFalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_IBODriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dpk
new file mode 100644
index 0000000..2056b9a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_IBODriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Objects Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ IBO40TRT_D2009,
+ IBO40XRT_D2009;
+
+contains
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dproj
new file mode 100644
index 0000000..f65fa8f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.dproj
@@ -0,0 +1,96 @@
+
+
+ {8dcafd0d-ab98-4b7e-8b86-36dbc593e504}
+ DataAbstract_IBODriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBODriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_IBODriver_D12.bpl
+ RemObjects Data Abstract - InterBase Objects Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_IBODriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dof
new file mode 100644
index 0000000..533614b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - InterBase Objects Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dpk
new file mode 100644
index 0000000..1238d53
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_IBODriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Objects Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ IBO40TRT_D6,
+ IBO40XRT_D6;
+
+contains
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dof
new file mode 100644
index 0000000..b8f8fb1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - InterBase Objects Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dpk
new file mode 100644
index 0000000..d4562dc
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_IBODriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Objects Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ IBO40TRT_D7,
+ IBO40XRT_D7;
+
+contains
+ uDAIBODriver in 'uDAIBODriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_Glyphs.res
new file mode 100644
index 0000000..e4c8f7b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBODriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.bdsproj
new file mode 100644
index 0000000..ba3a5e6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_IBXDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - InterBase Express DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.dpk
new file mode 100644
index 0000000..33c10ef
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_IBXDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Express Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ ibxpress;
+
+contains
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dpk
new file mode 100644
index 0000000..f4f4afd
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_IBXDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Express Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ ibxpress;
+
+contains
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dproj
new file mode 100644
index 0000000..812d141
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.dproj
@@ -0,0 +1,68 @@
+
+
+ {c31471d9-f8e2-4e45-94a7-1264d8011587}
+ DataAbstract_IBXDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBXDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - InterBase Express DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_IBXDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dpk
new file mode 100644
index 0000000..5f919cf
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_IBXDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Express Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ ibxpress;
+
+contains
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dproj
new file mode 100644
index 0000000..fdd0d82
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.dproj
@@ -0,0 +1,102 @@
+
+
+ {c31471d9-f8e2-4e45-94a7-1264d8011587}
+ DataAbstract_IBXDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_IBXDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_IBXDriver_D12.bpl
+ RemObjects Data Abstract - InterBase Express Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_IBXDriver_D12.dpk
+
+
+ CodeGear Delphi image support library
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dof
new file mode 100644
index 0000000..220d444
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - InterBase Express Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dpk
new file mode 100644
index 0000000..98c5ffa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_IBXDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Express Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ ibxpress;
+
+contains
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dof
new file mode 100644
index 0000000..933b8c1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - InterBase Express Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dpk
new file mode 100644
index 0000000..7c15b6b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_IBXDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - InterBase Express Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ ibxpress;
+
+contains
+ uDAIBXDriver in 'uDAIBXDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_Glyphs.res
new file mode 100644
index 0000000..5d3bf7b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_IBXDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.bdsproj
new file mode 100644
index 0000000..f023fd3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_MyDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - CoreLabs MyDAC DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.dpk
new file mode 100644
index 0000000..7d302e2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_MyDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs MyDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac100,
+ mydac100,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10;
+
+contains
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dpk
new file mode 100644
index 0000000..9a0e35d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_MyDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs MyDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac105,
+ mydac105,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11;
+
+contains
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dproj
new file mode 100644
index 0000000..dec5987
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.dproj
@@ -0,0 +1,77 @@
+
+
+ {c13e3848-8048-4b6e-a5c5-b14de1a683a5}
+ DataAbstract_MyDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_MyDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - CoreLabs MyDAC DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_MyDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dpk
new file mode 100644
index 0000000..7e659ce
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_MyDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs MyDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac12,
+ mydac12,
+ DataAbstract_Core_D12;
+
+contains
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dproj
new file mode 100644
index 0000000..addf263
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.dproj
@@ -0,0 +1,99 @@
+
+
+ {c13e3848-8048-4b6e-a5c5-b14de1a683a5}
+ DataAbstract_MyDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_MyDACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_MyDACDriver_D12.bpl
+ true
+ RemObjects Data Abstract - CoreLabs MyDAC Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_MyDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.cfg
new file mode 100644
index 0000000..481e4c1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.cfg
@@ -0,0 +1,42 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\dcu\d6"
+-LE"..\..\dcu\d6"
+-LN"..\..\dcu\d6"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_PLATFORM
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dof
new file mode 100644
index 0000000..468bfc4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - CoreLabs MyDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dpk
new file mode 100644
index 0000000..3886fc7
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_MYDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs MyDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac60,
+ mydac60,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6;
+
+contains
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.res
new file mode 100644
index 0000000..371f8db
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dof
new file mode 100644
index 0000000..d99f972
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - CoreLabs MyDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dpk
new file mode 100644
index 0000000..a90f1f3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_MyDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs MyDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac70,
+ mydac70,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7;
+
+contains
+ uDAMyDACDriver in 'uDAMyDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.res
new file mode 100644
index 0000000..371f8db
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_Glyphs.res
new file mode 100644
index 0000000..7e28db9
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MyDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.bdsproj
new file mode 100644
index 0000000..98d0a00
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_MySQLDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - MicroOlap mySQL DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.dpk
new file mode 100644
index 0000000..835b724
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_MySQLDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap mySQLDac Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ mySQLDAC10;
+
+contains
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dpk
new file mode 100644
index 0000000..55e6cc5
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_MySQLDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap mySQLDac Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ mySQLDAC11;
+
+contains
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dproj
new file mode 100644
index 0000000..ebd8da3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.dproj
@@ -0,0 +1,69 @@
+
+
+ {8ba781c7-bf1c-49bf-a87d-d21f3a68fd91}
+ DataAbstract_MySQLDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_MySQLDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - MicroOlap mySQLDac DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_MySQLDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dpk
new file mode 100644
index 0000000..9a3dd0e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_MySQLDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap mySQLDac Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ mySQLDAC12;
+
+contains
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dproj
new file mode 100644
index 0000000..8eec613
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {8ba781c7-bf1c-49bf-a87d-d21f3a68fd91}
+ DataAbstract_MySQLDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_MySQLDACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_MySQLDACDriver_D12.bpl
+ RemObjects Data Abstract - MicroOlap mySQLDac Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_MySQLDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dof
new file mode 100644
index 0000000..e0035fa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dpk
new file mode 100644
index 0000000..66a1e6c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_MySQLDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap mySQLDac Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ mySQLDAC6;
+
+contains
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dof
new file mode 100644
index 0000000..f2d0c96
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dpk
new file mode 100644
index 0000000..994ed6b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_MySQLDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap mySQLDac Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ mySQLDAC7;
+
+contains
+ uDAMySQLDACDriver in 'uDAMySQLDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_Glyphs.res
new file mode 100644
index 0000000..cd846aa
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_MySQLDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.bdsproj
new file mode 100644
index 0000000..05fd89b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.bdsproj
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_NexusDBDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ Data Abstract - NexusDB DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+ RemObjects Data Abstract - Core Library
+ RemObjects Data Abstract - IDE Package
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.cfg
new file mode 100644
index 0000000..ab68ed8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\"
+-O"..\"
+-I"..\"
+-R"..\"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.dpk
new file mode 100644
index 0000000..5ab0396
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.dpk
@@ -0,0 +1,47 @@
+package DataAbstract_NexusDBDriver_D10;
+
+{$R *.res}
+{$R 'uDANexusDBDriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Data Abstract - NexusDB Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10,
+ NexusDB107ll100,
+ NexusDB107sr100,
+ NexusDB107sd100,
+ NexusDB107sq100,
+ NexusDB107re100,
+ NexusDB107st100,
+ NexusDB107tn100,
+ NexusDB107pt100,
+ NexusDB107tw100,
+ NexusDB107db100,
+ NexusDB1071x100;
+
+contains
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.res
new file mode 100644
index 0000000..941b7a7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dpk
new file mode 100644
index 0000000..4ffe8e1
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dpk
@@ -0,0 +1,46 @@
+package DataAbstract_NexusDBDriver_D11;
+
+{$R *.res}
+{$R 'uDANexusDBDriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Data Abstract - NexusDB Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ NexusDB207ll110,
+ NexusDB207se110,
+ NexusDB207sr110,
+ NexusDB207sd110,
+ NexusDB207sq110,
+ NexusDB207re110,
+ NexusDB207pt110,
+ NexusDB207tn110,
+ NexusDB207tw110,
+ NexusDB207db110;
+
+contains
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dproj
new file mode 100644
index 0000000..52343f9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.dproj
@@ -0,0 +1,102 @@
+
+
+
+ {f5368522-8742-4b69-a8b3-668ec242cc52}
+ DataAbstract_NexusDBDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_NexusDBDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\
+ ..\
+ ..\
+ ..\
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\
+ ..\
+ ..\
+ ..\
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseData Abstract - NexusDB DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse103312521.0.0.01.0.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RemObjects Data Abstract - MicroOlap mySQLDac Driver
+ CodeGear BDE DB Components
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+ DataAbstract_NexusDBDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.res
new file mode 100644
index 0000000..941b7a7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dpk
new file mode 100644
index 0000000..7711aae
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dpk
@@ -0,0 +1,45 @@
+package DataAbstract_NexusDBDriver_D12;
+
+{$R *.res}
+{$R 'uDANexusDBDriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Data Abstract - NexusDB Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ DataAbstract_Core_D12,
+ NexusDB207ll120,
+ NexusDB207se120,
+ NexusDB207sr120,
+ NexusDB207sd120,
+ NexusDB207sq120,
+ NexusDB207re120,
+ NexusDB207pt120,
+ NexusDB207tn120,
+ NexusDB207tw120,
+ NexusDB207db120;
+
+contains
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dproj
new file mode 100644
index 0000000..e683a67
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.dproj
@@ -0,0 +1,111 @@
+
+
+ {f5368522-8742-4b69-a8b3-668ec242cc52}
+ DataAbstract_NexusDBDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_NexusDBDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ error
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_NexusDBDriver_D12.bpl
+ Data Abstract - NexusDB Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+ RemObjects Data Abstract - MicroOlap mySQLDac Driver
+ CodeGear BDE DB Components
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+ DataAbstract_NexusDBDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.res
new file mode 100644
index 0000000..941b7a7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.cfg
new file mode 100644
index 0000000..c7cbecf
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.cfg
@@ -0,0 +1,42 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D6"
+-LE"..\Dcu\D6"
+-LN"..\Dcu\D6"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_PLATFORM
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dof
new file mode 100644
index 0000000..dcd6c63
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - NexusDB Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D6
+PackageDLLOutputDir=..\Dcu\D6
+PackageDCPOutputDir=..\Dcu\D6
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dpk
new file mode 100644
index 0000000..f2b9bec
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.dpk
@@ -0,0 +1,44 @@
+package DataAbstract_NexusDBDriver_D6;
+
+{$R *.res}
+{$R 'uDANexusDBDriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Data Abstract - NexusDB Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6,
+ NexusDB107st60,
+ NexusDB107pt60,
+ NexusDB107tw60,
+ NexusDB107tn60,
+ NexusDB107re60,
+ NexusDB1071x60,
+ NexusDB107sq60,
+ NexusDB107db60;
+
+contains
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.res
new file mode 100644
index 0000000..22eb4e7
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.cfg
new file mode 100644
index 0000000..d772b58
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.cfg
@@ -0,0 +1,46 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\Dcu\D7"
+-LE"..\Dcu\D7"
+-LN"..\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dof
new file mode 100644
index 0000000..3a86bcb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - NexusDB Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\Dcu\D7
+PackageDLLOutputDir=..\Dcu\D7
+PackageDCPOutputDir=..\Dcu\D7
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dpk
new file mode 100644
index 0000000..66eb10a
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.dpk
@@ -0,0 +1,47 @@
+package DataAbstract_NexusDBDriver_D7;
+
+{$R *.res}
+{$R 'uDANexusDBDriver.dcr'}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Data Abstract - NexusDB Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7,
+ NexusDB107ll70,
+ NexusDB107sr70,
+ NexusDB107sd70,
+ NexusDB107sq70,
+ NexusDB107re70,
+ NexusDB107st70,
+ NexusDB107tn70,
+ NexusDB107pt70,
+ NexusDB107tw70,
+ NexusDB107db70,
+ NexusDB1071x70;
+
+contains
+ uDANexusDBDriver in 'uDANexusDBDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.res
new file mode 100644
index 0000000..20e9bca
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_NexusDBDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.bdsproj
new file mode 100644
index 0000000..01bb3ad
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_ODACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - CoreLabs ODAC DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.dpk
new file mode 100644
index 0000000..78921ea
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_ODACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs ODAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac100,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10,
+ odac100;
+
+contains
+ uDAODACDriver in 'uDAODACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dpk
new file mode 100644
index 0000000..92f4d48
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_ODACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs ODAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac105,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ odac105;
+
+contains
+ uDAODACDriver in 'uDAODACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dproj
new file mode 100644
index 0000000..7d8ed75
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.dproj
@@ -0,0 +1,87 @@
+
+
+ {4ed86b4c-3296-4ab5-b711-e264774d76b0}
+ DataAbstract_ODACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ODACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - CoreLabs ODAC DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_ODACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dpk
new file mode 100644
index 0000000..49a0044
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_ODACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs ODAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac12,
+ DataAbstract_Core_D12,
+ odac12;
+
+contains
+ uDAODACDriver in 'uDAODACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dproj
new file mode 100644
index 0000000..16668d0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.dproj
@@ -0,0 +1,99 @@
+
+
+ {4ed86b4c-3296-4ab5-b711-e264774d76b0}
+ DataAbstract_ODACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ODACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_ODACDriver_D12.bpl
+ true
+ RemObjects Data Abstract - CoreLabs ODAC Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_ODACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.cfg
new file mode 100644
index 0000000..0aa2cb6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dof
new file mode 100644
index 0000000..e6a8cb6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - CoreLabs ODAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dpk
new file mode 100644
index 0000000..debd426
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_ODACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs ODAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac60,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6,
+ odac60;
+
+contains
+ uDAODACDriver in 'uDAODACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.cfg
new file mode 100644
index 0000000..a290ad9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dof
new file mode 100644
index 0000000..b6566eb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - CoreLabs ODAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dpk
new file mode 100644
index 0000000..06e9940
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_ODACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs ODAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac70,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7,
+ odac70;
+
+contains
+ uDAODACDriver in 'uDAODACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_Glyphs.res
new file mode 100644
index 0000000..5948a0e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ODACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.bdsproj
new file mode 100644
index 0000000..d3a6db6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_PostgresDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - MicroOlap PostgresDAC DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.cfg
new file mode 100644
index 0000000..9037d9d
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.dpk
new file mode 100644
index 0000000..424def4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_PostgresDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap PostgresDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10,
+ PostgresDAC10;
+
+contains
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dpk
new file mode 100644
index 0000000..14e92ab
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_PostgresDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap PostgresDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11,
+ PostgresDAC11;
+
+contains
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dproj
new file mode 100644
index 0000000..1233566
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.dproj
@@ -0,0 +1,69 @@
+
+
+
+ {777e54de-8166-497d-912a-60af105eb626}
+ DataAbstract_PostgresDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_PostgresDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - MicroOlap PostgresDAC DriverFalseTrueFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_PostgresDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dpk
new file mode 100644
index 0000000..162af52
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_PostgresDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap PostgresDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12,
+ PostgresDAC12;
+
+contains
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dproj
new file mode 100644
index 0000000..cc12094
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.dproj
@@ -0,0 +1,95 @@
+
+
+ {777e54de-8166-497d-912a-60af105eb626}
+ DataAbstract_PostgresDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_PostgresDACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ error
+ ..\..\Dcu\D12
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_PostgresDACDriver_D12.bpl
+ RemObjects Data Abstract - MicroOlap PostgresDAC Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_PostgresDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.cfg
new file mode 100644
index 0000000..05f9ec3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dof
new file mode 100644
index 0000000..e0035fa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dpk
new file mode 100644
index 0000000..b7803fe
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_PostgresDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap PostgresDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6,
+ PostgresDAC6;
+
+contains
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.cfg
new file mode 100644
index 0000000..6784156
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dof
new file mode 100644
index 0000000..f2d0c96
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - ADOExpress/dbGo Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dpk
new file mode 100644
index 0000000..37c6d74
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_PostgresDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - MicroOlap PostgresDAC Driver'}
+{$DESIGNONLY}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7,
+ PostgresDAC7;
+
+contains
+ uDAPostgresDACDriver in 'uDAPostgresDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.res
new file mode 100644
index 0000000..892aed8
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_Glyphs.res
new file mode 100644
index 0000000..fb43550
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_PostgresDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.bdsproj
new file mode 100644
index 0000000..d05f343
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_SDACDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - CoreLabs SDAC DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.dpk
new file mode 100644
index 0000000..a7067e9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_SDACDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs SDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac100,
+ RemObjects_Core_D10,
+ sdac100,
+ DataAbstract_Core_D10;
+
+contains
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dpk
new file mode 100644
index 0000000..40d1424
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_SDACDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs SDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac105,
+ RemObjects_Core_D11,
+ sdac105,
+ DataAbstract_Core_D11;
+
+contains
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dproj
new file mode 100644
index 0000000..4c5409b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.dproj
@@ -0,0 +1,79 @@
+
+
+ {bcb5ceeb-712c-4f85-83e3-6f57bb934c9f}
+ DataAbstract_SDACDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_SDACDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - CoreLabs SDAC DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_SDACDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dpk
new file mode 100644
index 0000000..2a066c3
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dpk
@@ -0,0 +1,40 @@
+package DataAbstract_SDACDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs SDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac12,
+ sdac12,
+ DataAbstract_Core_D12;
+
+contains
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dproj
new file mode 100644
index 0000000..6641211
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.dproj
@@ -0,0 +1,99 @@
+
+
+ {bcb5ceeb-712c-4f85-83e3-6f57bb934c9f}
+ DataAbstract_SDACDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_SDACDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_SDACDriver_D12.bpl
+ true
+ RemObjects Data Abstract - CoreLabs SDAC Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_SDACDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.cfg
new file mode 100644
index 0000000..0aa2cb6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dof
new file mode 100644
index 0000000..a6cb4e4
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - CoreLabs SDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dpk
new file mode 100644
index 0000000..6f3c3e6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_SDACDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs SDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6,
+ dac60,
+ sdac60;
+
+contains
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.cfg
new file mode 100644
index 0000000..a290ad9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dof
new file mode 100644
index 0000000..42ca991
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - CoreLabs SDAC Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dpk
new file mode 100644
index 0000000..ca1d337
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.dpk
@@ -0,0 +1,41 @@
+package DataAbstract_SDACDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - CoreLabs SDAC Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ bdertl,
+ dac70,
+ RemObjects_Core_D7,
+ sdac70,
+ DataAbstract_Core_D7;
+
+contains
+ uDASDACDriver in 'uDASDACDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.res
new file mode 100644
index 0000000..ac3b612
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_Glyphs.res
new file mode 100644
index 0000000..d14c81c
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SDACDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.bdsproj
new file mode 100644
index 0000000..4acf23e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_SQLiteDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - SQLite DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.dpk
new file mode 100644
index 0000000..e678ec2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.dpk
@@ -0,0 +1,37 @@
+package DataAbstract_SQLiteDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - SQLite Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D10;
+
+contains
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dpk
new file mode 100644
index 0000000..ba6edaa
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dpk
@@ -0,0 +1,37 @@
+package DataAbstract_SQLiteDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - SQLite Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D11;
+
+contains
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dproj
new file mode 100644
index 0000000..ed142b2
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.dproj
@@ -0,0 +1,71 @@
+
+
+ {17f81962-5ed1-4c36-bee9-ce79aab46e95}
+ DataAbstract_SQLiteDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_SQLiteDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - SQLite DriverFalseFalseFalseTrueFalse301361FalseFalseFalseFalseFalse10331252RemObjects Software3.0.1.361RemObjects SDK1.0.0.0DataAbstract_SQLiteDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dpk
new file mode 100644
index 0000000..201d328
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dpk
@@ -0,0 +1,37 @@
+package DataAbstract_SQLiteDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - SQLite Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D12;
+
+contains
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dproj
new file mode 100644
index 0000000..e23601c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.dproj
@@ -0,0 +1,96 @@
+
+
+ {17f81962-5ed1-4c36-bee9-ce79aab46e95}
+ DataAbstract_SQLiteDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_SQLiteDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_SQLiteDriver_D12.bpl
+ true
+ RemObjects Data Abstract - SQLite Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 3
+ 0
+ 1
+ 361
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 3.0.1.361
+
+
+
+
+ RemObjects SDK
+ 1.0.0.0
+
+
+ DataAbstract_SQLiteDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.res
new file mode 100644
index 0000000..7b3c163
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.cfg
new file mode 100644
index 0000000..4730510
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dof
new file mode 100644
index 0000000..1fb3129
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dof
@@ -0,0 +1,76 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - SQLite Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.138
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dpk
new file mode 100644
index 0000000..81be681
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.dpk
@@ -0,0 +1,37 @@
+package DataAbstract_SQLiteDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - SQLite Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D6;
+
+contains
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.cfg
new file mode 100644
index 0000000..5cf57a8
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dof
new file mode 100644
index 0000000..94c4d85
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dof
@@ -0,0 +1,116 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - SQLite Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;RemObjects_DataSnap_D7;PurposesoftD7;addict3_d6;tb2kComplete_70;CDKDesignTimeSupport;CDKSmp;CDK;ES_CodeSite20;ESDelphiCommandCompiler;ESFileSearch;ESVisualCompositeExpert;EaglWk;ESGraphUtils;ESBase;ESVsCp;ESSampleComposites70;ESSampleCompositeEditors7;Rz252N70;SynEdit_D7;dxsbD7;dxComnD7;dxDockingD7;dxEdtrD7;dxELibD7;dxExELD7;EQGridD7;dxExRwD7;dxDBEdD7;dxInsD7;dxGrEdD7;ECQDBCD7;EQTLD7;EQDBTLD7;dxLayoutControlD7;dxMasterViewD7;dxmdsd7;dxNavBarD7;dxObjInsD7;dxPageControlD7;dxPSCoreD7;Rz252D70;cxPageControlVCLD7;cxEditorsVCLD7;dxThemeD7;cxLibraryVCLD7;cxDataD7;cxGridUtilsVCLD7;cxGridVCLD7;RemObjects_BPDX_D7
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software
+FileDescription=
+FileVersion=2.0.0.142
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=RemObjects SDK
+ProductVersion=1.0.0.0
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dpk
new file mode 100644
index 0000000..0265195
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.dpk
@@ -0,0 +1,37 @@
+package DataAbstract_SQLiteDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - SQLite Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ DataAbstract_Core_D7;
+
+contains
+ uDASQLiteDriver in 'uDASQLiteDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.res
new file mode 100644
index 0000000..3fd3b9b
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_Glyphs.res
new file mode 100644
index 0000000..9f2e224
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLiteDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Unix.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Unix.lpk
new file mode 100644
index 0000000..5c89f27
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Unix.lpk
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Windows.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Windows.lpk
new file mode 100644
index 0000000..a8fa43b
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_SQLitePassDriver_Lazarus_Windows.lpk
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.bdsproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.bdsproj
new file mode 100644
index 0000000..267567e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.bdsproj
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ DataAbstract_ZeosDriver_D10.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+
+
+ False
+
+ False
+ False
+ False
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ TrueTrue
+ True
+
+
+
+ 0
+ 0
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ RemObjects Data Abstract - Zeos DriverFalse
+
+
+
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10
+ ..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.cfg
new file mode 100644
index 0000000..207b254
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.cfg
@@ -0,0 +1,49 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0"..\..\Dcu\D10"
+-LE"..\..\Dcu\D10"
+-LN"..\..\Dcu\D10"
+-U"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-O"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-I"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-R"..\..\Dcu\D10;..\..\..\RemObjects SDK for Delphi\Dcu\D10"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.dpk
new file mode 100644
index 0000000..fa6c962
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ZeosDriver_D10;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Zeos Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ ZComponentDesign,
+ RemObjects_Core_D10,
+ DataAbstract_Core_D10;
+
+contains
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D10.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dpk
new file mode 100644
index 0000000..8483957
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ZeosDriver_D11;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Zeos Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ ZComponentDesign,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11;
+
+contains
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dproj
new file mode 100644
index 0000000..5711217
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.dproj
@@ -0,0 +1,73 @@
+
+
+ {a14f79c2-acbc-46d8-a339-5d13e7ddad81}
+ DataAbstract_ZeosDriver_D11.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ZeosDriver_D11.bpl
+
+
+ 7.0
+ False
+ False
+ True
+ True
+ 0
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ RELEASE
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 7.0
+ True
+ True
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ ..\..\Dcu\D11;..\..\..\RemObjects SDK for Delphi\Dcu\D11
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseRemObjects Data Abstract - Zeos DriverFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse10331252RemObjects Software1.0.0.0RemObjects SoftwareRemObjects SoftwareRemObjects Data Abstract1.0.0.0DataAbstract_ZeosDriver_D11.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D11.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dpk
new file mode 100644
index 0000000..7a4343f
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dpk
@@ -0,0 +1,38 @@
+package DataAbstract_ZeosDriver_D12;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Zeos Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ ZComponentDesign,
+ DataAbstract_Core_D12;
+
+contains
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dproj b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dproj
new file mode 100644
index 0000000..22b6b80
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.dproj
@@ -0,0 +1,97 @@
+
+
+ {a14f79c2-acbc-46d8-a339-5d13e7ddad81}
+ DataAbstract_ZeosDriver_D12.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Dcu\D11\DataAbstract_ZeosDriver_D11.bpl
+ 11.1
+ Base
+
+
+ true
+
+
+ 1
+ error
+ ..;..\..\Dcu\D12;..\..\..\RemObjects SDK for Delphi\Dcu\D12;$(DCC_UnitSearchPath)
+ error
+ ..\..\Dcu\D12
+ error
+ error
+ error
+ error
+ error
+ ..\..\Dcu\D12
+ error
+ ..\..\Dcu\D12
+ true
+ true
+ true
+ true
+ false
+ 00400000
+ ..\..\Dcu\D12\DataAbstract_ZeosDriver_D12.bpl
+ true
+ RemObjects Data Abstract - Zeos Driver
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+ Delphi.Personality.12
+ Package
+
+
+
+ False
+ True
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+ RemObjects Software
+
+ 1.0.0.0
+
+ RemObjects Software
+ RemObjects Software
+
+ RemObjects Data Abstract
+ 1.0.0.0
+
+
+ DataAbstract_ZeosDriver_D12.dpk
+
+
+
+ 12
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.res
new file mode 100644
index 0000000..6ef0ba1
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D12.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.cfg
new file mode 100644
index 0000000..0aa2cb6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.cfg
@@ -0,0 +1,41 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D6"
+-LE"..\..\Dcu\D6"
+-LN"..\..\Dcu\D6"
+-U"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-O"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-I"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-R"..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6"
+-Z
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dof
new file mode 100644
index 0000000..1972ae0
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dof
@@ -0,0 +1,77 @@
+[FileVersion]
+Version=6.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitDeprecated=0
+UnitLibrary=0
+UnitPlatform=0
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=Data Abstract - Zeos Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D6
+PackageDLLOutputDir=..\..\Dcu\D6
+PackageDCPOutputDir=..\..\Dcu\D6
+SearchPath=..\..\Dcu\D6;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D6
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dpk
new file mode 100644
index 0000000..95dba7c
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ZeosDriver_D6;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Zeos Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ ZComponentDesign,
+ RemObjects_Core_D6,
+ DataAbstract_Core_D6;
+
+contains
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D6.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.cfg b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.cfg
new file mode 100644
index 0000000..a290ad9
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.cfg
@@ -0,0 +1,50 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U+
+-$V+
+-$W+
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"..\..\Dcu\D7"
+-LE"..\..\Dcu\D7"
+-LN"..\..\Dcu\D7"
+-U"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-O"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-I"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-R"..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7"
+-Z
+-w-SYMBOL_DEPRECATED
+-w-SYMBOL_LIBRARY
+-w-SYMBOL_PLATFORM
+-w-UNIT_LIBRARY
+-w-UNIT_PLATFORM
+-w-UNIT_DEPRECATED
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dof b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dof
new file mode 100644
index 0000000..cb208b6
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dof
@@ -0,0 +1,117 @@
+[FileVersion]
+Version=7.0
+
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=1
+V=1
+W=1
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=0
+SymbolLibrary=0
+SymbolPlatform=0
+UnitLibrary=0
+UnitPlatform=0
+UnitDeprecated=0
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=RemObjects Data Abstract - Zeos Driver
+
+[Directories]
+OutputDir=
+UnitOutputDir=..\..\Dcu\D7
+PackageDLLOutputDir=..\..\Dcu\D7
+PackageDCPOutputDir=..\..\Dcu\D7
+SearchPath=..\..\Dcu\D7;..\..\Dcu\DevEx;..\..\..\RemObjects SDK\Dcu\D7
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+
+[Version Info Keys]
+CompanyName=RemObjects Software, Inc.
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=RemObjects Software, Inc.
+LegalTrademarks=RemObjects Software, Inc.
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=http://www.remobjects.com
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dpk
new file mode 100644
index 0000000..9cac616
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.dpk
@@ -0,0 +1,39 @@
+package DataAbstract_ZeosDriver_D7;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE ON}
+{$STACKFRAMES ON}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'RemObjects Data Abstract - Zeos Driver'}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ RemObjects_Core_D7,
+ DataAbstract_Core_D7,
+ ZComponentDesign;
+
+contains
+ uDAZeosDriver in 'uDAZeosDriver.pas';
+
+end.
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.res
new file mode 100644
index 0000000..b26b84e
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_D7.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.lrs b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.lrs
new file mode 100644
index 0000000..5e84941
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.lrs
@@ -0,0 +1,165 @@
+LazarusResources.Add('TDAZEOSDriver','BMP',[
+ 'BM'#246#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#24#0#0#0#0#0
+ +#192#6#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#255'@'#0#0'@'#0#0'@'#0#0'@'
+ +#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0'@'#0#0#255#0#255
+ +#255#0#255#255#0#255#255#0#255#129#30#0'w'#23#0'w'#23#0#255#0#255#255#0#255
+ +#255#0#255#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0'@'#0#0#255#0#255#255#0#255#129#30#0
+ +#129#30#0#129#30#0#252#154'*'#184':'#0#184':'#0#128'*'#3#255#0#255#128#0#0
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0'@'#0#0#255#0
+ +#255#130#24#0#129#30#0#248'w'#0#255#129#0#255#149#19#255#170'4'#255#189'Z'
+ +#138#31#0#255#0#255#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255#255
+ +#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#255#255#255#128#0#0'@'#0
+ +#0#5'f'#149#130#24#0'y'#16#0#255#158' '#252'w'#0#143#30#0#213'g'#10#255#171
+ +'8'#138#31#0#255#0#255#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#128#0#0'@'#0
+ +#0#130#24#0#130#24#0#221#152'Z'#255#191']'#186'M'#5#255#0#255'v'#12#0#242#134
+ +#20#252#160'4'#138#31#0#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255
+ +#128#0#0#255#255#255#128#0#0#255#255#255#255#255#255#128#0#0#0'R'#143#0'6o'#9
+ +'o'#164'W9'#23#171'3'#0#233#171'n'#255#215#146#193'e%'#255#0#255'v'#12#0#242
+ +'w'#1#255#150#25#138#31#0#128#0#0#255#255#255#128#0#0#128#0#0#128#0#0#255#255
+ +#255#255#255#255#255#255#255#128#0#0#0'R'#143#0'R'#143#0'R'#143#6#140#194'I'
+ +#221#255#0'v'#186#0'v'#186'YVE'#255#218#154#233#170'j'#145'%'#0#193'M'#0#255
+ +'~'#0#138#31#0#255#0#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#0'6p'#0'j'#161#2#199#255
+ +#9#202#255''''#212#255'N'#222#255'y'#233#255#0'v'#186#255#218#154#255#218#154
+ +#255#211#137#255#177'C'#255#138#7#138#31#0#255#0#255#128#0#0#128#0#0#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#128#0#0#0'9u'#4'v'#170'('#212#255#0
+ +#158#218#0'N'#138#22#163#212'R'#224#255#0'v'#186#196'f#'#203'g'#25#255#218
+ +#154#184':'#0#184':'#0#184':'#0#255#0#255#255#0#255#2't'#169'['#213#226'i'
+ +#246#254'E'#230#254'%'#215#254#13#199#254#26#204#254#0';v'#11#128#176#156#233
+ +#254'h'#230#255'#'#165#212#0'A~'#0'F'#129'0'#215#255'M'#215#254'%_p'#184':'#0
+ +#184':'#0#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#2't'#169'['#213
+ +#226''#247#254'z'#238#254'}'#233#254#135#231#255#163#237#255#0';v'#3'{'#176
+ +#165#235#254#167#243#255'^'#193#226#0'L'#138#0'N'#138#19#204#255'-'#206#252
+ +#13'b'#145#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#2't'#169#160#233#239#170#238#246'p'#207#229'?'#177#211#29#149#192#17#131
+ +#177#15'{'#170#0'@z'#24#150#196#182#246#255'~'#212#238#3'g'#157#13#182#235#1
+ +#198#255#13'b'#145#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#3'p'#164'T'#177#202'('#156#188'&'#171#207#27#182#224
+ +#12#183#237#24#198#247':'#213#254#0'A~'#27#153#196#181#244#255#182#246#255
+ +#154#240#255'N'#222#255#13#202#255#13'b'#145#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#4'l'#158'?'#180#203'f'#242
+ +#251'E'#230#254'%'#215#254#13#199#254#26#204#254';'#215#255'`'#225#255#0'Ay'
+ +#0'E~;'#175#213#182#246#255#13'b'#145#13'b'#145#255#0#255#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#2's'#167'['#213
+ +#226'i'#246#254'E'#230#254'%'#215#254#13#199#254#26#204#254';'#215#255'`'#225
+ +#255'}'#229#252'Q'#199#233#0'A{'#0'E{'#1'z'#180#5'f'#149#255#0#255#255#0#255
+ +#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#255#0#255#2't'
+ +#169'['#213#226'i'#246#254'E'#230#254'%'#215#254#13#199#254#26#204#254#128
+ +#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#255#0#255#255#0#255#2't'#169'['#213#226'i'#246#254'E'#230
+ +#254'%'#215#254#13#199#254#26#204#254#128#128#128#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#255#255#0
+ +#255#2't'#169'['#213#226'i'#246#254'E'#230#254'%'#215#254#13#199#254#26#204
+ +#254#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0#128
+ +#0#0#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255
+ +#0#0#0#255#0#255#255#0#255#2't'#169'['#213#226'i'#246#254'E'#230#254'%'#215
+ +#254#13#199#254#26#204#254#128#128#128#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#255#255#0#255#2't'#169
+ +'c'#213#226#152#250#254#159#247#255#146#247#254#149#255#254#130#255#254#128
+ +#128#128#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#128#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ ,#255#255#0#0#0#255#0#255#255#0#255#2't'#169#178#213#227#248#255#255#221#255
+ +#255#193#255#255#166#255#254#142#255#254#128#128#128#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#255#255#0
+ +#255#2't'#169'M'#156#187#235#244#248#242#255#255#213#255#255#186#255#254#159
+ +#255#254#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0
+ +#128#0#0#128#0#0#128#0#0#128#0#0#255#255#255#255#255#255#255#255#255#255#255
+ +#255#0#0#0#255#0#255#255#0#255#255#0#255#2't'#169#5'x'#172'b'#175#201'b'#175
+ +#201#142#213#227'{'#213#226#128#128#128#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#255#255#0#255#255#0
+ +#255#255#0#255#255#0#255#2't'#169#2't'#169#2't'#169#2't'#169#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#255#0#255
+]);
+LazarusResources.Add('TDAZEOSDriver32','BMP',[
+ 'BM6'#8#0#0#0#0#0#0'6'#4#0#0'('#0#0#0' '#0#0#0' '#0#0#0#1#0#8#0#0#0#0#0#0#4#0
+ +#0#0#0#0#0#0#0#0#0#0#1#0#0#0#1#0#0#255#0#255#0''#28#0#0'2Yb'#0#30'i|'#0'1v'
+ +#0'__C'#0'Yue'#0'`wa'#0#129#29#0#0#133'"'#1#0#139'%'#0#0#142'-'#9#0#148'-'#0
+ +#0#149'2'#6#0#156'3'#0#0#149'7'#15#0#145'4'#19#0#150'8'#17#0#148':'#27#0#160
+ +'5'#0#0#164'8'#1#0#151'K'#15#0#158'R'#14#0#155'P'#30#0#172'@'#0#0#175'L'#13#0
+ +#177'D'#1#0#177'I'#0#0#186'L'#0#0#176'O'#12#0#166'H'#18#0#160'G'#30#0#175'U'
+ +#27#0#175'g'#18#0#150'C)'#0#128'[/'#0#155'M8'#0#158'P8'#0#173'V"'#0#175']-'#0
+ +#161'P0'#0#189'c"'#0#179'd7'#0#176'c9'#0#196'U'#1#0#192'W'#11#0#193'\'#9#0
+ +#209'Z'#0#0#199'\'#16#0#199'd'#3#0#204'b'#3#0#199'l'#4#0#202'm'#7#0#197'n'#8
+ +#0#211'c'#0#0#221'e'#0#0#214'i'#0#0#219'k'#0#0#216'k'#8#0#218'q'#15#0#221'x'
+ +#14#0#199'c'#19#0#208'm'#21#0#220'm'#16#0#204'r'#17#0#213'v'#23#0#229'k'#0#0
+ +#233'o'#1#0#224'm'#10#0#233'v'#2#0#247'z'#0#0#165'^H'#0#166'bN'#0#179'vd'#0
+ +#181'|l'#0#193'{M'#0'g'#137'l'#0's'#141'b'#0'd'#156'y'#0's'#144'u'#0'|'#157
+ +'v'#0'o'#163'}'#0#254#129#0#0#245#131#8#0#247#137#12#0#252#137#9#0#248#137#18
+ +#0#255#147#16#0#250#149#28#0#255#153#27#0#222#130')'#0#225#135''''#0#255#155
+ +'"'#0#249#148'*'#0#247#157'.'#0#251#154'+'#0#255#160'&'#0#255#161','#0#247
+ +#161'6'#0#254#165'4'#0#245#163'>'#0#255#169'<'#0#154#134'@'#0#149#142'O'#0
+ +#164#140'M'#0#162#150'\'#0#135#144'v'#0#188#135'l'#0#163#151'`'#0#164#169'x'
+ +#0#205#132'H'#0#209#137'F'#0#219#143'H'#0#198#132'W'#0#213#147'V'#0#216#149
+ +'S'#0#226#148'B'#0#248#162'E'#0#255#172'B'#0#255#177'L'#0#243#170'P'#0#255
+ +#180'S'#0#255#185'\'#0#238#182'j'#0#241#178'a'#0#254#187'b'#0#249#189'l'#0
+ +#242#187'q'#0#255#193'l'#0#255#196'r'#0#255#201'~'#0#4'e'#148#0#10'f'#149#0#7
+ +'i'#150#0#10'h'#150#0#7'o'#158#0#11'l'#153#0#19'l'#153#0#10'p'#157#0#23'r'
+ +#158#0#11'u'#165#0#9''#175#0#20'y'#162#0#0'~'#186#0'&z'#162#0#29#132#170#0#0
+ +#129#189#0#22#138#177#0#24#147#188#0'*'#134#171#0'3'#143#165#0'7'#132#169#0
+ +';'#134#171#0'>'#136#172#0' '#141#178#0'<'#141#176#0'5'#173#171#0'/'#170#181
+ +#0'?'#172#180#0'3'#160#190#0'+'#176#184#0'R'#152#134#0'y'#153#131#0'K'#161
+ +#146#0'l'#166#130#0'C'#140#175#0'Y'#152#184#0'c'#159#188#0'K'#175#169#0'e'
+ +#160#189#0#6#138#195#0#9#147#201#0'#'#159#200#0#29#161#210#0#25#175#217#0'%'
+ +#177#211#0'?'#183#219#0#15#187#235#0':'#185#224#0'Z'#171#197#0'D'#183#204#0
+ +'f'#163#192#0'z'#174#198#0'l'#188#209#0#30#194#234#0#10#197#253#0#15#204#254
+ +#0#16#197#246#0#16#203#254#0#30#205#254#0'('#201#238#0')'#213#246#0'#'#213
+ +#253#0'6'#213#254#0'7'#228#254#0':'#224#254#0'F'#195#215#0'W'#199#216#0'\'
+ +#209#223#0'j'#202#218#0'q'#198#216#0'_'#209#238#0'O'#221#255#0'R'#218#253#0
+ +'`'#210#239#0'I'#232#253#0'R'#236#253#0'['#242#254#0'o'#231#238#0'i'#230#252
+ +#0's'#237#254#0'b'#242#254#0'm'#247#254#0'n'#248#254#0'z'#242#252#0'v'#251
+ +#254#0'|'#250#253#0#132#167#132#0#242#194#133#0#248#198#133#0#254#203#131#0
+ +#243#198#139#0#246#203#141#0#255#209#144#0#253#213#154#0#254#218#163#0#255
+ +#220#169#0#255#225#181#0#255#228#187#0#129#178#201#0#154#224#234#0#129#230
+ +#251#0#143#247#254#0#130#254#254#0#139#255#254#0#150#255#254#0#167#236#243#0
+ +#164#255#254#0#169#252#254#0#180#254#253#0#187#255#254#0#255#230#195#0#255
+ +#232#197#0#255#235#205#0#255#237#211#0#255#239#216#0#255#240#218#0#194#221
+ +#232#0#201#225#234#0#200#255#254#0#211#255#255#0#255#243#226#0#255#245#233#0
+ +#255#248#239#0#229#254#255#0#251#253#253#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#180
+ +#0#0#0'j'#13#11#16#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#135#131#131#131#131
+ +#135#135#135#3#1#1#9'|{'#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#146#131#131#170#174
+ +#177#177#159'O'#162'j'#18#1#1')zl'#5#0#0#0#0#0#0#0#0#0#0#0#0#135#135#176#206
+ +#195#189#188#159#26#12#12'/,'#14#25'bwz'#128'K#'#5#5#5#0#0#0#0#0#0#0#0#131
+ +#208#213#206#195#192#188'L'#19#9#19'W\\`cewz~'#222#224#226#11#0#0#0#0#0#0#0#0
+ +#135#216#213#206#195#192#188#161#24#12#19'acaaacew}'#129#220#222'"'#0#0#0#0#0
+ +#0#0#0#135#216#213#206#195#192#188#160#28#19#12'awcaaacey}'#129'rj'#0#0#0#0#0
+ +#0#0#0#135#216#213#206#195#192#188#156','#19#19'd~w`S.=^ey}nH'#0#0#0#0#0#0#0
+ +#0#135#234#213#206#195#192'N1'#28#26'p'#220#223#128'S'#27#12#1#13'cvy}('#5#0
+ +#0#0#0#0#0#0#135#216#213#206#195'Q6,0'#218#228#241#226#128';'#6#21#9#1'>cvy~'
+ +'K#'#0#0#0#0#0#0#135#216#213#206#195'f6/t'#241#251#246#241#130'>'#150'#'#12#9
+ +'.cevz'#128#16#0#0#0#0#0#0#135#216#213#206#195#164'77?'#224#244#251#246#225
+ +'['#6#22#19#12'Daeewt('#0#0#0#0#0#0#135#234#213#206#195#191'g67?'#219#242#251
+ +#244#128'.'#26#20#26'Uccc['#31#0#0#0#0#0#0#0#135#216#216#232#238#239#236'l8B'
+ +'D'#226#252#251#241'~ZAYcccY'#30#0#0#0#0#0#0#0#0#135#240#230#179#149#134#131
+ +#3'9EC'#224#252#252#251#242#225#220#220'}vcV('#0#0#0#0#0#0#0#0#135#149#131
+ +#147#175#184#187#163'EFV'#227#253#253#252#251#244#228#224#220'}vU'#23#0#0#0#0
+ +#0#0#0#0#131#159#209#207#195#192#186'MFFa'#241#246#241#242#251#251#244#226
+ +#128'wvU'#21#0#0#0#0#0#0#0#0#135#216#213#206#195#192#188#163'9F;~x]u'#227#252
+ +#246#220'A><1h'#0#0#0#0#0#0#0#0#135#216#213#206#195#192#188#186#168'P'#217'i'
+ ,'4FF'#128#246#241't'#5#0#0#0#0#0#0#0#0#0#0#0#0#135#216#213#206#195#192#188
+ +#187#189#193#202#209'mBRV'#226#222'!'#131#0#0#0#0#0#0#0#0#0#0#0#0#135#216#213
+ +#206#195#192#188#187#189#193#202#209#231'h54>@'#4#131#0#0#0#0#0#0#0#0#0#0#0#0
+ +#135#234#213#206#195#192#188#187#189#193#202#209#231#204#176#172#147#141#143
+ +#131#0#0#0#0#0#0#0#0#0#0#0#0#135#216#213#206#195#192#188#187#189#193#202#209
+ +#231#204#178#173#170#143#143#131#0#0#0#0#0#0#0#0#0#0#0#0#135#216#213#206#195
+ +#192#188#187#189#193#202#209#231#204#178#173#170#143#143#131#0#0#0#0#0#0#0#0
+ +#0#0#0#0#135#216#213#206#195#192#188#185#189#193#202#209#231#204#178#173#170
+ +#146#143#131#0#0#0#0#0#0#0#0#0#0#0#0#135#216#213#210#210#216#214#213#216#216
+ +#216#216#216#216#201#178#171#143#143#131#0#0#0#0#0#0#0#0#0#0#0#0#135#240#254
+ +#254#249#240#237#232#216#216#234#216#234#216#216#213#206#190#171#131#0#0#0#0
+ +#0#0#0#0#0#0#0#0#135#255#255#254#254#240#239#237#234#216#234#216#216#234#216
+ +#216#211#205#192#131#0#0#0#0#0#0#0#0#0#0#0#0#131#248#255#255#254#250#240#238
+ +#235#216#234#216#234#216#234#216#213#211#175#131#0#0#0#0#0#0#0#0#0#0#0#0#143
+ +#132#169#247#255#254#249#240#238#232#216#234#216#234#216#234#198#154#131#179
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#135#131#139#155#179#183#200#199#198#197#180#159
+ +#145#134#131#152#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#154#152#139#139#132
+ +#132#139#144#155#169#0#0#0#0#0#0#0#0#0#0#0
+]);
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.res b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.res
new file mode 100644
index 0000000..92bfe89
Binary files /dev/null and b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Glyphs.res differ
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Mac.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Mac.lpk
new file mode 100644
index 0000000..091b32e
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Mac.lpk
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Unix.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Unix.lpk
new file mode 100644
index 0000000..ca75cdb
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Unix.lpk
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Windows.lpk b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Windows.lpk
new file mode 100644
index 0000000..4a5c1ef
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/DataAbstract_ZeosDriver_Lazarus_Windows.lpk
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/asgsqlite3.pas b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/asgsqlite3.pas
new file mode 100644
index 0000000..6220b65
--- /dev/null
+++ b/official/5.0.35.741/Data Abstract for Delphi/Source/Drivers/asgsqlite3.pas
@@ -0,0 +1,5560 @@
+// To enable debugging remove the dot. Do NOT forget to re-insert before
+// deploying to production since this feature will slow down this component
+// significantly
+{.$DEFINE DEBUG_ENABLED } // Enables Debug information
+ {.$DEFINE DEBUG_VERY_LOUD}
+ {.$DEFINE DEBUG_LOUD}
+
+// Disable this for ignoring IProvider interface (for D4)
+{$DEFINE IPROVIDER}
+
+// enable this if you want to link the SQLite library statically. (No need for dll)
+{.$DEFINE SQLite_Static}
+
+{$I asqlite_def.inc}
+
+unit ASGSQLite3;
+{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+Author: Albert Drent
+Description: SQLite 3 DataSet class (encapsulates the Delphi DataSet Class)
+ based upon the asqlite version for sqlite 2
+Target: Delphi 4, 5, 6 and 7; Delphi 2005; Borland C++ 5 and 6
+Creation: November 2003
+Version: 2006.03.D Stable
+EMail: a.drent@aducom.com (www.aducom.com/sqlite, sqlite.aducom.com)
+Support: support@aducom.com (supportforum on www.aducom.com)
+ Please post any questions, remarks etc. to the support forum. We
+ useually answer questions within days.
+ Unsollicited mail to support will be intercepted by our spamfilters
+ and probabely never be heard of.
+Legal issues: Copyright (C) 2003..2006 by Aducom Software
+
+ Aducom Software
+ Eckhartstr 61
+ 9746 BN Groningen
+ Netherlands
+
+ Open Source licence (BSD: http://www.opensource.org/licenses/bsd-license.php)
+
+ Copyright (c) 2006, Aducom Software
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ Neither the name of Aducom Software nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+
+Acknowledgement
+ These components were written for our own needs. Since SQLite is
+ a freeware component we like to donate this one to the community
+ too. Parts of the code is adapted from several sources, but mainly
+ from a sample and the vcl sources of Borland itself. And, of
+ course, we did a lot and still are...
+To Do
+ A lot...
+ We are very busy, but will develop on our needs. If anyone can
+ contribute, please feel welcome. Alter the source with lots of comment
+ and mail it to me. If it works right I will add it to the official
+ source and add your credit here below. Before you start, please
+ put a request on the forum. It would be a shame and a waste of your
+ time if you develop something which already is... and I need to set
+ the spamfilter right to let you pass through.
+History:
+ Nov 8, 2003 First alpha release 1.0.A Albert Drent (c) 2003 Aducom Software
+ Nov 11, Release alpha 1.0.B Albert Drent (c) 2003 Aducom Software
+ - added 'param' support
+ - fixed null pointer assignment
+ - added support for partial select (limit / offset)
+ Nov 12, Release alpha 1.0.C Albert Drent (c) 2003 Aducom Software
+ - fixed bug in update
+ - support for events
+ - added 'RowsAffected'
+ Nov 16, Release beta 1.0.D Albert Drent (c) 2003 Aducom Software
+ - fixed 0 resultlist after any ExecSQL usage
+ - added Transaction support
+ Nov 24, Release beta 1.0.E Albert Drent (c) 2003 Aducom Software
+ - StartTransaction will open database if it is'nt already open
+ - Changed resultset method
+ - Added property editor for table names
+ - Added GetTableNames function to TASQLite3Database
+ - Added GetIndexNames function to TASQLite3Database
+ - Added Open and Close function to TASQLite3Database
+ - Added AutoCommit property to TDataSet descendants
+ - Split of source in designtime and runtime package
+ Dec 15, Release beta 1.0.F Albert Drent (c) 2003 Aducom Software
+ - Optimized code for speed
+ - Added support for quering databases
+ - Added property for base directory (default dir) TDatabase
+ - Preparations for mastersets and TUpdateSQL (not functional yet)
+ - Solved GPF on stringfields
+ - Solved hangup of Delphi when developing
+ - Solved invalid pointer operation bug while developing
+ Jan 11 2004, Release beta 1.0.G Albert Drent (c) 2003, 2004 Aducom Software
+ - Fixed GetTableNames Bug as reported on forum
+ - Solved some minor bugs, several code optimizations
+ - Added 'getfieldnames' procedure to asqlitedb
+ - Added component asqlitepragma for adjustments to sqlite behaviour
+ - Added several property editors to smooth things up
+ - Added component asqliteupdatesql
+ - Added master-detail support for TASQLite3table (not fully tested yet)
+ - Added master-detail support for TASQLite3query (not fully tested yet)
+ - Added filter property to TASQLite3Query
+ Jan 18, 2004, Release beta 1.0.H Albert Drent (c) 2003, 2004 Aducom Software
+ - Added TASQLite3Log component
+ - Support for autoincrement (index primary key)
+ Jan 22, 2004, Release beta 1.0.I Albert Drent (c) 2003, 2004 Aducom Software
+ - Solved bug, causing the user to open database first (where
+ it should be opened automatically after open query or table.
+ - datatype text is now treated as a string of max 255 chars.
+ - added samples
+ - added preparations for import and export component
+ Jan 26, 2004, Release beta 1.1.A Albert Drent (c) 2003, 2004 Aducom Software
+ - Support for master-detail
+ - Support for TUpdateSQL
+ Feb 05, 2004, Release beta 1.1.B Albert Drent (c) 2003, 2004 Aducom Software
+ - Solved small bug: basequery is closed on querychanged event
+ - Solved small bug: basequery is closed on filter change event
+ - Solved bug in design package, by Marc Wetzel(forum)
+ - Notification of BaseQuery removed and added to SQLiteTable
+ Feb 24, 2004 Release alpha 1.2.A Albert Drent (c) 2003, 2004 Aducom Software
+ - Locate implemented, working on resultset!
+ - Some small bugfixes
+ Feb 25, 2004 Release alpha 1.2.B Albert Drent (c) 2003, 2004 Aducom Software
+ - Reformat of source (Marc Wetzel)
+ - All the debug directives (Marc Wetzel)
+ The debug stuff is added to be able to do more debugging on the
+ components. At this stage there are still some isues which are
+ hard to be find.
+ - Some small bugfixes (Marc Wetzel)
+ - Solved bug with dblookupcombobox, lookup is now shown (variant error)
+ - Derived more classes from TDataset to solve compatibility isues with
+ 3rd party software (DevExpress)
+ - Start of port to lower Delphi versions (designintf vs dsgnintf)
+ March 25, 2004 Release alpha 1.2.C Albert Drent (c) 2003, 2004 Aducom Software
+ - Added property editor for database directory
+ - Added property editor for sqlitedll directory
+ - Bugix needed for release 13 of SQLite.dll (is compatible to lower
+ dll versions)
+ - More changes to solve compatibility problem with DevExpress (Plato of DevExpress)
+ - Solved some compatibility isues with TDataSet
+ - Solved some compatibility isues with the newest SQLite version (2.8.12)
+ - Added/modified, GetFieldNames, GetPrimaryKeys
+ - Added GetTableInfo
+ - Added StartTransaction and Commit and RollBack to TTable and TQuery
+ This will create a more readable source:
+ db.starttranaction;
+ q.somesql
+ db.commit
+ becomes now
+ with q do begin
+ starttransaction;
+ somesql;
+ try
+ commit;
+ except
+ rollback;
+ end;
+ end;
+ - Changed cleanup of components in notification (TheSneak)
+ - Fixed potential AV (so far not reported)
+ - Changed escape of string characters (TheSneak)
+ (might cause incompatibility of older components if you use single
+ quote in data)
+ - Fixed question mark problem in data (TheSneak)
+ April 7, 2004
+ - Fixed bug GetxxxxNames, moved pragma (reported by Martini)
+ - Improved some performance isues (TheSneak)
+ - Added GetTableIndexNames(by Martini)
+ - Added support for 'small text blobs', it isn't the real stuff but
+ limited to 20000 characters.
+ - Fixed another compatibility isue with DevExpress
+ April 8, 2004
+ - Fixed EnableControls (TheSneak)
+ - Fixed memoryleak ASQLiteQuery.InternalPost (TheSneak)
+ - Downgraded some stuff for support Delphi 4/5
+ - Updated Locate function (by Joel hottcha@juno.com)
+ April 14, 2004 Release beta 1.2.C Albert Drent (c) 2003, 2004 Aducom Software
+ - RawSQL property implemented (supresses parsing of sql data)
+ - published csv release as 1.2.C beta
+ April 15, 2004 Release alpha 2.0.A Albert Drent (c) 2003, 2004 Aducom Software
+ - support for real clobs
+ - added fieldtype numeric(x.y)
+ - Implement RawSQL property in TASQLite3Query
+ May 26, 2004 Release beta 2.0.B Albert Drent (c) 2003, 2004 Aducom Software
+ - new procedure: GetGetLastInsertRow
+ - new component: TASQLite3InlineSQL, to be used to contain all
+ kinds of pre-stored sql statements. I.e. for creation of tables in case
+ of an in-memory database, or a local storage for sql statements to
+ simplify sourcecode. In this release it is bound to the ASQLiteDB component.
+ - new component TASQLite3Output, to be used to generate csv files,
+ xml and html documents. It is NOT bound to ASQLite components but
+ to a datasource (containing any database connection)
+ - implemented bound as described by minhl on the forum
+ - implemented IsNull as described by Kazooie64 on the forum
+ - implemented a uniform datetime implementation by jpierce
+ May, 26, 2004 Release beta 2.0.B Albert Drent (c) 2003, 2004 Aducom Software
+ - A few bugfixes
+ June, 15, 2004 Release beta 2.0.C Albert Drent (c) 2003, 2004 Aducom Software
+ - A few bugfixes, thanks to Tzvetan
+ July 2004, Release 1.0 based upon source sqlite version 2 components
+ Okt 11, 2004 Release beta 1.0.B Albert Drent (c) 2003, 2004 Aducom Software
+ - Callback routine for retieving data replaced by new
+ by sqlite prefered way.
+ - Some bugfixes
+ - Support for calculated fields
+ - Support for real blobs
+ okt 14, 2004 Release beta 1.0.C Albert Drent (c) 2003, 2004 Aducom Software
+ - support for locate lo-partial key (thanks to Bob Mitchel)
+ - some bugfixes (thanks to Oleg Lembievskiy marked by OL)
+ - some other bugfixes and code cleanup
+ okt 18, 2004
+ - re-introduced sqlite_version
+ - added transactiontype property(SQLite3 feature)
+ - added transaction procedures to db and basequery
+ StartDeferredTransaction;
+ StartImmediateTransaction;
+ StartExclusiveTransaction;
+ nov 1, 2004
+ - bugfix (thanx to James) for null pointer assignment on null values
+ nov 8, 2004
+ - fixed introduced bug in result preventing new records to appear
+ right in dbgrids.
+ nov 17, 2004
+ - fixed small bug showing rubish on empty tables
+ Nov 17, 2004 by Mike Dijkema
+ - filter bug FPrepared := FPrepared + ' and ' + Filter adds ' and filterexpr' to the end of the sql statement
+ this created errors with 'order by' 'limit' 'union' 'having' etc..
+ filtering changed to that it works like the ADO components and union and other statements
+ now 'select a from b union select c from d' and 'select a from b order by c' works with a filter
+ - filter bug 'select a_where from b' removed
+ jan 11, 2005 Release 2005.01.A Albert Drent (c) 2003 .. 2005 Aducom Software
+ - fixed bug causing fielddescription to be deleted incorrectly
+ - fixed bug causing errormessage on null values in integer fields
+ - added sqlcursor property
+ - modifications to support Delphi 2005
+ - implemented all transactiontypes
+ - changed all showmessages to raise event types
+ - added readonly property
+ feb 21, 2005 Release 2005.02.A Albert Drent (c) 2003 .. 2005 Aducom Software
+ - some bugfixes, code optimization
+ - first implementation of IProvider support (thanks to
+ Rocco Barbaresco)
+ - changed default SDB extension to SQB
+ - support for multi sql statements in one string
+ - added master-detail functionality on insert of
+ new child record (key-data is copied)
+ - added compatibility with SQLite3.dll version 3.1.2
+ feb 28, 2005 Release 2005.02.B Albert Drent (c) 2003 .. 2005 Aducom Software
+ - bugfix for filter on master-detail. Setting filtered will
+ not automatical open table any more. Causes error on closed
+ tables in master-detail otherwise.
+ mar 7, 2005 Release 2005.03.A Albert Drent (c) 2003 .. 2005 Aducom Software
+ - bugfix for memofields causing crlf to be handled wrongly
+ - added TableExists function ('// DI Ralf http://www.yunqa.de/delphi/)
+ - some code optimizations ('// DI Ralf http://www.yunqa.de/delphi/)
+ - solved decimalpoint bug ('// DI Ralf http://www.yunqa.de/delphi/)
+ mar 10, 2005 Release 2005.03.B Albert Drent (c) 2003 .. 2005 Aducom Software
+ - more code optimizations
+ - removed Forms from uses list to decrease codesize of console app's
+ - changed cursorstyle handling
+ - changed exception handling
+ mar 29, 2005 Release 2005.03.C Albert Drent (c) 2003 .. 2005 Aducom Software
+ - removed default pragma's for tables
+ - implemented another solution for tableheader duplicates (mirko)
+ - implemented user version
+ - solved minor bug in GetTableInfo
+ april 5, 2005 Release 2005.04.A Albert Drent (c) 2003 .. 2005 Aducom Software
+ - fixed bug conceirning in-memory database (Bert Verhees)
+ - fixed precompiler settings for Delhpi 7 (Dak)
+ mai 31, 2005 Release 2005.05.A Albert Drent (c) 2003 .. 2005 Aducom Software
+ - UTF8 support (thanks to Bilgehan KUYUCU)
+ - Statical linking (thanks to Gianpaolo Avallone (GPA)
+ - Some bugfixes and enhancements by Albert, Gianpaolo and others.
+ august 1, 2005 Release 2005.08.A
+ - UTF8 support to be set by property, solving a 'locale' problem.
+ - Bugfix for null strings
+ - Fix for static linking
+ - Solved bug in updatesql, fieldlist is now setup correctly
+ - solved bug in updatesql, inserting null values and constants.
+ august 2, 2005 Release 2005.08.B
+ - first steps towards support utf16 (by Kevin Zhang)
+ - implemented another locate routine (by jbannon)
+ - changed treatment of datatype text. It is considered 'longtext' now.
+ added 'shorttext' datatype which replaces the original 'text' datatype.
+ The datatype text is now compatible with sqlite3, mysql and perhaps
+ others.
+ sept 1, 2005 Release 2005.09.A
+ - code optimizations by Kevin Lu, Aducom
+ sept 1, 2005 Release 2005.09.B
+ - candidate fix for decimal point problem by Jordi March
+ sept 20, 2005 Release 2005.09.C
+ - implementation of unidirectional dataset. This improves
+ performance on large resultsets to the optimum. However
+ the dataset is readonly by default, using inserts/deletes and
+ updates will result in a 'database table is locked' error.
+ sept 21, 2005 Release 2005.09.D
+ - bugfix for decimal point routine by Kevin Lu
+ sept 29, 2005 Release 2005.09.E
+ - bugfix for unidirectional dataset.
+ - bugfix for split of prepare and execute. Data was not updated
+ correctly
+ nov 1, 2005 Release 2005.11.A
+ - Code improvements
+ - First (alpha) implementation of Lookup field (By John Lito)
+ dec 14, 2005 Release 2005.12.A
+ - Check for null values
+ jan 5, 2006 Release 2006.01.A
+ - fixed unidirectional bug (I)
+ jan 9, 2006 Release 2006.01.B
+ - fixed unidirectional bug (II)
+ - automatically will close table if tablename property is changed
+ while a table is still open.
+ - automatically close query if sql property is changed while a table
+ is still open.
+ - fixes for compilation under D4
+ - changes for installation under Delphi 2005 and 2006
+ - changes of copyright notice, the components are now under
+ open-source bsd licence.
+ feb 22, 2006 Release 2006.02.A
+ - Changed status to stable
+ mar 2, 2006 Release 2006.03.A
+ - Modifications for D4/D5
+ - Added order by property. Enter fieldnames separated by ','
+ - Added GetIndexFieldNames (thanks to zavu10n)
+ - Database will be reopened if necessary on filter change
+ - Fixes by Donnie
+ - New routine for dates and floates by Donnie
+ mar 8, 2006 Release 2006.03.B
+ - Fixed small bug causing text treated as char 255, is now memo.
+ mar 15, 2006 Release 2006.03.C
+ - Added switch for compilation under D4/D5 (Art Register)
+ - DBOpen change for utf8 by John Lito
+ - SQLCursor fix
+ - GetFieldValue fix by Velis
+ mar 23, 2006 Release 2006.03.D
+ - Compatibility fixes for D45 (Art Register)
+ - changed D45 directive to $IFDEF ASQLITE_D6PLUS so
+ compilation should work automatically now
+ - changed cr cr/lf pairs for compatibilty with D4/D5
+ - added CompareBookmarks to support multiple selection
+ in DBGrid (Michael S)
+ - added support for char *nothing* datatype (was char(1) now char is allowed)
+
+
+
+*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
+
+
+interface
+
+uses
+ DB,
+ DBCommon,
+ Dialogs,
+ Classes,
+ Windows,
+ SysUtils,
+{$IFDEF ASQLITE_D6PLUS}
+ Variants,
+{$ENDIF}
+ ASGRout3;
+const
+ SQLiteVersion = 'ASGSQLite V2006.03.D stable';
+
+ MaxBuf = 30000; // max stringbuffer for record (length) (excluding blob's)
+ SQLITE_OK = 0; // Successful result */
+ SQLITE_ERROR = 1; // SQL error or missing database */
+ SQLITE_INTERNAL = 2; // An internal logic error in SQLite */
+ SQLITE_PERM = 3; // Access permission denied */
+ SQLITE_ABORT = 4; // Callback routine requested an abort */
+ SQLITE_BUSY = 5; // The database file is locked */
+ SQLITE_LOCKED = 6; // A table in the database is locked */
+ SQLITE_NOMEM = 7; // A malloc() failed */
+ SQLITE_READONLY = 8; // Attempt to write a readonly database */
+ SQLITE_INTERRUPT = 9; // Operation terminated by sqlite_interrupt() */
+ SQLITE_IOERR = 10; // Some kind of disk I/O error occurred */
+ SQLITE_CORRUPT = 11; // The database disk image is malformed */
+ SQLITE_NOTFOUND = 12; // (Internal Only) Table or record not found */
+ SQLITE_FULL = 13; // Insertion failed because database is full */
+ SQLITE_CANTOPEN = 14; // Unable to open the database file */
+ SQLITE_PROTOCOL = 15; // Database lock protocol error */
+ SQLITE_EMPTY = 16; // (Internal Only) Database table is empty */
+ SQLITE_SCHEMA = 17; // The database schema changed */
+ SQLITE_TOOBIG = 18; // Too much data for one row of a table */
+ SQLITE_CONSTRAINT = 19; // Abort due to contraint violation */
+ SQLITE_MISMATCH = 20; // Data type mismatch */
+ SQLITE_MISUSE = 21; // Library used incorrectly */
+ SQLITE_NOLFS = 22; // Uses OS features not supported on host */
+ SQLITE_AUTH = 23; // Authorization denied */
+ SQLITE_ROW = 100; // sqlite_step() has another row ready */
+ SQLITE_DONE = 101; // sqlite_step() has finished executing */
+
+ SQLITE_CREATE_INDEX = 1; // Index Name Table Name */
+ SQLITE_CREATE_TABLE = 2; // Table Name NULL */
+ SQLITE_CREATE_TEMP_INDEX = 3; // Index Name Table Name */
+ SQLITE_CREATE_TEMP_TABLE = 4; // Table Name NULL */
+ SQLITE_CREATE_TEMP_TRIGGER = 5; // Trigger Name Table Name */
+ SQLITE_CREATE_TEMP_VIEW = 6; // View Name NULL */
+ SQLITE_CREATE_TRIGGER = 7; // Trigger Name Table Name */
+ SQLITE_CREATE_VIEW = 8; // View Name NULL */
+ SQLITE_DELETE = 9; // Table Name NULL */
+ SQLITE_DROP_INDEX = 10; // Index Name Table Name */
+ SQLITE_DROP_TABLE = 11; // Table Name NULL */
+ SQLITE_DROP_TEMP_INDEX = 12; // Index Name Table Name */
+ SQLITE_DROP_TEMP_TABLE = 13; // Table Name NULL */
+ SQLITE_DROP_TEMP_TRIGGER = 14; // Trigger Name Table Name */
+ SQLITE_DROP_TEMP_VIEW = 15; // View Name NULL */
+ SQLITE_DROP_TRIGGER = 16; // Trigger Name Table Name */
+ SQLITE_DROP_VIEW = 17; // View Name NULL */
+ SQLITE_INSERT = 18; // Table Name NULL */
+ SQLITE_PRAGMA = 19; // Pragma Name 1st arg or NULL */
+ SQLITE_READ = 20; // Table Name Column Name */
+ SQLITE_SELECT = 21; // NULL NULL */
+ SQLITE_TRANSACTION = 22; // NULL NULL */
+ SQLITE_UPDATE = 23; // Table Name Column Name */
+ SQLITE_ATTACH = 24; // Filename NULL */
+ SQLITE_DETACH = 25; // Database Name NULL */
+
+ SQLITE_DENY = 1; // Abort the SQL statement with an error */
+ SQLITE_IGNORE = 2; // Don't allow access, but don't generate an error */
+
+ Crlf : string = #13#10;
+ Q = '''';
+
+type
+ pInteger = ^integer;
+ pPointer = ^Pointer;
+ pSmallInt = ^smallint;
+ pFloat = ^extended;
+ pBoolean = ^boolean;
+
+
+ TConvertBuffer = array[1..255] of char;
+
+ TSQLite3_Callback = function(UserData: Pointer; ColumnCount: Integer; ColumnValues, ColumnNames: PPointer): Integer; cdecl;
+// TSQLiteExecCallback = function(Sender: TObject; Columns: integer; ColumnValues: Pointer; ColumnNames: Pointer): integer of object; cdecl;
+ TSQLiteBusyCallback = function(Sender: TObject; ObjectName: PAnsiChar; BusyCount: integer): integer of object; cdecl;
+ TOnData = procedure(Sender: TObject; Columns: integer; ColumnNames, ColumnValues: string) of object;
+ TOnBusy = procedure(Sender: TObject; ObjectName: string; BusyCount: integer; var Cancel: boolean) of object;
+ TOnQueryComplete = procedure(Sender: TObject) of object;
+ TASQLite3NotifyEvent = procedure(Sender: TObject) of object;
+
+ // structure for holding field information. It is used by GetTableInfo
+
+ TASQLite3Field = class
+ public
+ FieldNumber: integer;
+ FieldName: string;
+ FieldType: string;
+ FieldNN: integer; // 1 if notnull
+ FieldDefault: string;
+ FieldPK: integer; // 1 if primary key
+ end;
+
+ // object to 'play' with SQLite's default settings
+
+ TASQLite3Pragma = class(TComponent)
+ private
+ FTempCacheSize: integer;
+ FDefaultCacheSize: integer;
+ FDefaultSynchronous: string;
+ FDefaultTempStore: string;
+ FTempStore: string;
+ FSynchronous: string;
+ protected
+ function GetTempCacheSize: string;
+ function GetDefaultCacheSize: string;
+ function GetDefaultSynchronous: string;
+ function GetDefaultTempStore: string;
+ function GetTempStore: string;
+ function GetSynchronous: string;
+ published
+ { Published declarations }
+ property TempCacheSize: integer read FTempCacheSize write FTempCacheSize;
+ property DefaultCacheSize: integer read FDefaultCacheSize write FDefaultCacheSize;
+ property DefaultSynchronous: string read FDefaultSynchronous
+ write FDefaultSynchronous;
+ property DefaultTempStore: string read FDefaultTempStore write FDefaultTempStore;
+ property TempStore: string read FTempStore write FTempStore;
+ property Synchronous: string read FSynchronous write FSynchronous;
+ end;
+
+ // component to log messages
+ // it's for debugging purpose and may be obsolete due
+ // to the event implementation. not sure yet...
+
+ TASQLite3Log = class(TComponent)
+ private
+ FLogFile: string;
+ FLogDebugOut: boolean;
+ FAppend: boolean;
+ FLogSQL: boolean;
+ FLogInt: boolean;
+ protected
+ public
+ procedure Display(Msg: string);
+ published
+ { Published declarations }
+ property LogFile: string read FLogFile write FLogFile;
+ property LogDebugOut: boolean read FLogDebugOut write FLogDebugOut; // 20040225
+ property Append: boolean read FAppend write FAppend;
+ property LogSQL: boolean read FLogSQL write FLogSQL;
+ property LogInternals: boolean read FLogInt write FLogInt;
+ end;
+
+// This component can be used to store sql outside the pascal source.
+// It is useful for automatically creating tables on open of a temporary database
+// (i.e. in-memory database)
+
+ TASQLite3InlineSQL = class(TComponent)
+ private
+ FSQL: TStrings;
+ procedure SetSQL(const Value: TStrings);
+ function GetSQL: TStrings;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ published
+ property SQL: TStrings read GetSQL write SetSQL;
+ end;
+
+ { Basic Database component }
+
+ TASQLite3DB = class(TComponent)
+ private
+ { Private declarations }
+ FAfterConnect: TASQLite3NotifyEvent;
+ FBeforeConnect: TASQLite3NotifyEvent;
+ FAfterDisconnect: TASQLite3NotifyEvent;
+ FBeforeDisconnect: TASQLite3NotifyEvent;
+ function FGetDefaultExt: string;
+ function FGetDriverDLL: string;
+ protected
+ { Protected declarations }
+ FInlineSQL: TASQLite3InlineSQL;
+ FExecuteInlineSQL: boolean;
+ FDatabase: string;
+ FTransactionType: string;
+ FSQLiteVersion: string;
+ FDefaultExt: string;
+ FDefaultDir: string;
+ FDriverDll: string;
+ FConnected: boolean;
+ FMustExist: boolean;
+ FVersion: string;
+ FCharEnc: string;
+ FUtf8: boolean;
+ DBHandle: Pointer;
+ FASQLitePragma: TASQLite3Pragma;
+ FASQLiteLog: TASQLite3Log;
+ FLastError: string;
+ SQLite3_Open: function(dbname: PAnsiChar; var db: pointer): integer; cdecl;
+ SQLite3_Close: function(db: pointer): integer; cdecl;
+ SQLite3_Exec: function(DB: Pointer; SQLStatement: PAnsiChar; Callback: TSQLite3_Callback;
+ UserDate: Pointer; var ErrMsg: PAnsiChar): Integer; cdecl;
+ SQLite3_LibVersion: function(): PAnsiChar; cdecl;
+ SQLite3_ErrorString: function(db: pointer): PAnsiChar; cdecl;
+ SQLite3_GetTable: function(db: Pointer; SQLStatement: PAnsiChar; var ResultPtr: Pointer;
+ var RowCount: cardinal; var ColCount: cardinal; var ErrMsg: PAnsiChar): integer; cdecl;
+ SQLite3_FreeTable: procedure(Table: PAnsiChar); cdecl;
+ SQLite3_FreeMem: procedure(P: PAnsiChar); cdecl;
+ SQLite3_Complete: function(P: PAnsiChar): boolean; cdecl;
+ SQLite3_LastInsertRow: function(db: Pointer): integer; cdecl;
+ SQLite3_Cancel: procedure(db: Pointer); cdecl;
+ SQLite3_BusyHandler: procedure(db: Pointer; CallbackPtr: Pointer; Sender: TObject); cdecl;
+ SQLite3_BusyTimeout: procedure(db: Pointer; TimeOut: integer); cdecl;
+ SQLite3_Changes: function(db: Pointer): integer; cdecl;
+ SQLite3_Prepare: function(db: Pointer; SQLStatement: PAnsiChar; nBytes: integer;
+ var hstatement: pointer; var Tail: PAnsiChar): integer; cdecl;
+ SQLite3_Finalize: function(hstatement: pointer): integer; cdecl;
+ SQLite3_Reset: function(hstatement: pointer): integer; cdecl;
+ SQLite3_Step: function(hstatement: pointer): integer; cdecl;
+ SQLite3_Column_blob: function(hstatement: pointer; iCol: integer): pointer; cdecl;
+ SQLite3_Column_bytes: function(hstatement: pointer; iCol: integer): integer; cdecl;
+ SQLite3_Column_count: function(hstatement: pointer): integer; cdecl;
+ SQLite3_Column_decltype: function(hstatement: pointer; iCol: integer): PAnsiChar; cdecl;
+ SQLite3_Column_double: function(hstatement: pointer; iCol: integer): double; cdecl;
+ SQLite3_Column_int: function(hstatement: pointer; iCol: integer): integer; cdecl;
+ SQLite3_Column_int64: function(hstatement: pointer; iCol: integer): int64; cdecl;
+ SQLite3_Column_name: function(hstatement: pointer; iCol: integer): PAnsiChar; cdecl;
+ SQLite3_Column_text: function(hstatement: pointer; iCol: integer): PAnsiChar; cdecl;
+ SQLite3_Column_text16: function(hstatement: pointer; iCol: integer): PWideChar; cdecl;
+ SQLite3_Column_type: function(hstatement: pointer; iCol: integer): integer; cdecl;
+ SQLite3_Bind_Blob: function(hstatement: pointer; iCol: integer; buf: PAnsiChar; n: integer; DestroyPtr: Pointer): integer; cdecl;
+ SQLite3_Bind_Text16: function(hstatement: pointer; iCol: integer; buf: pointer; n: integer; DestroyPtr: Pointer): integer; cdecl;//\\\
+ SQLite3_Bind_Parameter_Count: function(hstatement: pointer): integer; cdecl;//\\\
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ procedure DBConnect(Connected: boolean);
+ function SQLite3_PrepareResult(DB: Pointer; TheStatement: string; FParams: TParams; Sender: TObject) : pointer;
+ function SQLite3_GetNextResult(DB: Pointer; TheStatement: pointer; FParams: TParams; Sender: TObject) : pointer;
+ procedure SQLite3_CloseResult(TheStatement : pointer);
+ public
+ DLLHandle: THandle;
+ { Public declarations }
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ function LoadLibs: boolean;
+ procedure FSetDatabase(Database: string);
+ function RowsAffected: integer;
+ function TableExists(const ATableName: AnsiString): Boolean;
+ procedure ExecStartTransaction(TransType: string);
+ procedure StartTransaction;
+ procedure StartDeferredTransaction;
+ procedure StartImmediateTransaction;
+ procedure StartExclusiveTransaction;
+ procedure Open;
+ procedure Close;
+ procedure Commit;
+ procedure RollBack;
+ procedure ShowDatabases(List: TStrings);
+ procedure GetTableNames(List: TStrings; SystemTables: boolean = false);
+ procedure GetTableInfo(TableName: string; List: TList);
+ procedure GetIndexNames(List: TStrings; SystemTables: boolean = false);
+ procedure GetIndexFieldNames(IndexName: string; List: TStrings);
+ procedure GetFieldNames(TableName: string; List: TStrings);
+ procedure GetPrimaryKeys(TableName: string; List: TStrings);
+ procedure GetTableIndexNames(TableName: string; List: TStrings);
+ procedure ExecPragma;
+// function SQLite_XExec(db: Pointer; SQLStatement: PAnsiChar;
+// CallbackPtr: Pointer; Sender: TObject; var ErrMsg: PAnsiChar): integer; cdecl;
+ function SQLite3_Execute(db: Pointer; TheStatement: string; FParams: TParams; Sender: TObject): integer;
+ function SQLite3_ExecSQL(TheStatement: string; Blobs: TList=nil): integer;
+ procedure ShowError;
+ function GetUserVersion(database : string=''): integer;
+ procedure SetUserVersion(Version : integer; Database : string='');
+ published
+ { Published declarations }
+ property CharacterEncoding: string read FCharEnc write FCharEnc;
+ property TransactionType: string read FTransactionType write FTransactionType;
+ property Database: string read FDatabase write FSetDatabase;
+ property ASQLitePragma: TASQLite3Pragma read FASQLitePragma write FASQLitePragma;
+ property ASQLiteLog: TASQLite3Log read FASQLiteLog write FASQLiteLog;
+ property DefaultExt: string read FGetDefaultExt write FDefaultExt;
+ property DefaultDir: string read FDefaultDir write FDefaultDir;
+ property Version: string read FVersion write FVersion;
+// property CharacterEncoding: string Read FCharEncoding Write FCharEncoding;
+ property DriverDLL: string read FGetDriverDLL write FDriverDLL;
+ property Connected: boolean read FConnected write DBConnect;
+ property MustExist: boolean read FMustExist write FMustExist;
+ property ASQLiteInlineSQL: TASQLite3InlineSQL read FInlineSQL write FInlineSQL;
+ property ExecuteInlineSQL: boolean read FExecuteInlineSQL write FExecuteInlineSQL;
+ property AfterConnect: TASQLite3NotifyEvent read FAfterConnect write FAfterConnect;
+ property BeforeConnect: TASQLite3NotifyEvent read FBeforeConnect write FBeforeConnect;
+ property AfterDisconnect: TASQLite3NotifyEvent
+ read FAfterDisconnect write FAfterDisconnect;
+ property BeforeDisconnect: TASQLite3NotifyEvent
+ read FBeforeDisconnect write FBeforeDisconnect;
+ end;
+
+ AsgError = class(Exception);
+
+{ TRecInfo }
+
+{ This structure is used to access additional information stored in
+ each record buffer which follows the actual record data.
+
+ Buffer: PAnsiChar;
+ ||
+ \/
+ --------------------------------------------
+ | Record Data | Bookmark | Bookmark Flag |
+ --------------------------------------------
+ ^-- PRecInfo = Buffer + FRecInfoOfs
+
+ Keep in mind that this is just an example of how the record buffer
+ can be used to store additional information besides the actual record
+ data. There is no requirement that TDataSet implementations do it this
+ way.
+
+ For the purposes of this demo, the bookmark format used is just an integer
+ value. For an actual implementation the bookmark would most likely be
+ a native bookmark type (as with BDE), or a fabricated bookmark for
+ data providers which do not natively support bookmarks (this might be
+ a variant array of key values for instance).
+
+ The BookmarkFlag is used to determine if the record buffer contains a
+ valid bookmark and has special values for when the dataset is positioned
+ on the "cracks" at BOF and EOF. }
+
+ PRecInfo = ^TRecInfo;
+
+ TRecInfo = packed record
+ Bookmark : integer;
+ BookmarkFlag : TBookmarkFlag;
+// Nulls :
+ end;
+
+ //============================================================================== TFResult
+ // The TFResult class is used to maintain the resultlist in memory. This
+ // will only be the case for 'normal' data. Blobs and Clobs will be treated
+ // differently, but they are not supported yet.
+ //==============================================================================
+ TASQLite3BaseQuery = class;
+
+ TFResult = class
+ protected
+ Data: TList;
+ BookMark: TList;
+ RowId: TList;
+ FLastBookmark: integer;
+ FBufSize: integer;
+ FDataSet: TASQLite3BaseQuery;
+ public
+ constructor Create(TheDataSet: TASQLite3BaseQuery);
+ destructor Destroy; override;
+ procedure FreeBlobs;
+ procedure SetBufSize(TheSize: integer);
+ procedure Add(TheBuffer: PAnsiChar; TheRowId: integer);
+ procedure Insert(Index: integer; TheBuffer: Pointer; TheRowId: integer);
+ procedure Delete(Index: integer);
+ function GetData(Index: integer): Pointer;
+ function Count: integer;
+ function IndexOf(TheBookMark: pointer): integer;
+ function GetBookmark(Index: integer): integer;
+ function GetRowId(Index: integer): integer;
+ end;
+
+//============================================================================== TASQLite3UpdateSQL
+ TASQLite3UpdateSQL = class(TComponent)
+ private
+ FInsertSQL: TStrings;
+ FUpdateSQL: TStrings;
+ FDeleteSQL: TStrings;
+ procedure SetInsertSQL(const Value: TStrings);
+ procedure SetUpdateSQL(const Value: TStrings);
+ procedure SetDeleteSQL(const Value: TStrings);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ published
+ property InsertSQL: TStrings read FInsertSQL write SetInsertSQL;
+ property UpdateSQL: TStrings read FUpdateSQL write SetUpdateSQL;
+ property DeleteSQL: TStrings read FDeleteSQL write SetDeleteSQL;
+ end;
+
+//============================================================================== TASQLite3Output
+
+ TASQLite3Output = class(TComponent)
+ private
+ FActive: boolean;
+ FOutputType: string;
+ FTableClass: string;
+ FHeaderClass: string;
+ FCellClass: string;
+ FOutput: TStrings;
+ FSeparator: string;
+ FDataSource: TDataSource;
+ procedure SetOutput(const Value: TStrings);
+ procedure SetFActive(Active: boolean);
+ function GetOutput: TStrings;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure Execute(MyDataSet: TDataSet);
+ protected
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ published
+ property Active: boolean read FActive write SetFActive;
+ property DataSource: TDataSource read FDataSource write FDataSource;
+ property OutputType: string read FOutputType write FOutputType;
+ property TableClass: string read FTableClass write FTableClass;
+ property HeaderClass: string read FHeaderClass write FHeaderClass;
+ property CellClass: string read FCellClass write FCellClass;
+ property Output: TStrings read GetOutput write SetOutput;
+ property FieldSeparator: string read FSeparator write FSeparator;
+ end;
+
+//============================================================================== TASQLite3BaseQuery
+ TASQLite3BaseQuery = class(TDataSet)
+ private
+ FParams: TParams;
+ FTypeLess: boolean;
+ FNoResults: boolean; // suppresses the creation of a result list
+ FAutoCommit: boolean;
+ FTransactionType: string;
+ FTableDateFormat: string;
+ FSQLiteDateFormat: boolean;
+ FResult: TFResult;
+ FSQL: TStrings;
+ FSQLCursor: boolean;
+ FPrepared: string;
+ FRecBufSize: integer;
+ FRecInfoOfs: integer;
+ FCurRec: integer;
+ FMasterFields: string;
+ FMasterSource: TDataSource;
+ FSaveChanges: boolean;
+ MaxStrLen: integer;
+ FConnection: TASQLite3DB;
+ FReadOnly: boolean;
+ FMaxResults: integer;
+ FStartResult: integer;
+ FUniDir : boolean;
+ FStatement : pointer;
+ CurrentRowId: integer;
+ SQLStr: string;
+ ResultStr: PAnsiChar;
+ RowId : integer;
+ RowIdCol : integer;
+ DetailList: TList;
+ procedure SetSQL(const Value: TStrings);
+ function UnpackBuffer(Buffer: PAnsiChar; FieldType: TFieldType): TConvertBuffer;
+ procedure SetDataSource(Value: TDataSource);
+ protected
+ function SetQueryParams(InStr: string): string; //***
+ procedure SetParamsList(Value: TParams);
+ function GetParamsCount: word;
+ procedure RegisterDetailDataset(DetailDataSet: TASQLite3BaseQuery);
+ procedure LoadQueryData;
+ function GetActiveBuffer(var Buffer: PAnsiChar): boolean;
+ function GetDataSource: TDataSource; override;
+ procedure NotifySQLiteMasterChanged;
+ function GetFieldValue(const AField: TField; const Blobs: TList = nil): string; // added by Donnie
+
+ { Overriden abstract methods (required) }
+ function AllocRecordBuffer: PAnsiChar; override;
+ procedure FreeRecordBuffer(var Buffer: PAnsiChar); override;
+ procedure GetBookmarkData(Buffer: PAnsiChar; Data: Pointer); override;
+ function GetBookmarkFlag(Buffer: PAnsiChar): TBookmarkFlag; override;
+ function GetRecord(Buffer: PAnsiChar; GetMode: TGetMode;
+ DoCheck: boolean): TGetResult; override;
+ function GetRecordSize: word; override;
+ procedure InternalAddRecord(Buffer: Pointer; Append: boolean); override;
+ procedure InternalClose; override;
+ procedure InternalDelete; override;
+ procedure InternalFirst; override;
+ procedure InternalGotoBookmark(Bookmark: Pointer); override;
+ procedure InternalHandleException; override;
+ procedure InternalInitFieldDefs; override;
+ procedure InternalInitRecord(Buffer: PAnsiChar); override;
+ procedure InternalLast; override;
+ procedure InternalOpen; override;
+ procedure InternalPost; override;
+ procedure InternalSetToRecord(Buffer: PAnsiChar); override;
+ procedure OpenCursor(InfoQuery: Boolean); override; // GPA
+ function IsCursorOpen: boolean; override;
+ procedure SetBookmarkFlag(Buffer: PAnsiChar; Value: TBookmarkFlag); override;
+ procedure SetBookmarkData(Buffer: PAnsiChar; Data: Pointer); override;
+ procedure SetFieldData(Field: TField; Buffer: Pointer); override;
+ function GetFieldSize(FieldNo: integer): integer; overload;
+ function GetFieldSize(Field: TField): integer; overload;
+ function GetNativeFieldSize(FieldNo: integer): integer;
+ function GetFieldOffset(FieldNo: integer): integer;
+ function GetCalcFieldOffset(Field: TField): integer;
+ function GetMasterFields: string;
+ procedure SetMasterFields(const Value: string);
+ { Additional overrides (optional) }
+ function GetRecordCount: integer; override;
+ function GetRecNo: integer; override;
+ procedure SetRecNo(Value: integer); override;
+ property BaseSQL: TStrings read FSQL write SetSQL;
+ procedure SetSQLiteDateFormat(const Value: boolean);
+ procedure SetFilterText(const Value: string); override;
+ procedure DataConvert(Field: TField; Source, Dest: Pointer; ToNative: Boolean); override;//\\\
+ function CalcFieldInList(const List: string): Boolean; // John Lito
+
+ {$IFDEF IPROVIDER}
+ {***** IProviderSupport - Begin *****}
+ //-----| These are not necessary until the moment!
+ // procedure PSGetAttributes(List: TList); virtual;
+ // function PSGetDefaultOrder: TIndexDef; virtual;
+ // function PSGetIndexDefs(IndexTypes: TIndexOptions): TIndexDefs; virtual;
+ //-----| These are necessary to support IProvider
+ procedure PSEndTransaction(Commit: Boolean); override;
+ procedure PSExecute; override;
+ function PSExecuteStatement(const ASQL: string; AParams: TParams; ResultSet: Pointer = nil): Integer; override;
+ function PSGetParams: TParams; override;
+ function PSGetTableName: string; override;
+ function PSGetUpdateException(E: Exception; Prev: EUpdateError): EUpdateError; override;
+ function PSInTransaction: Boolean; override;
+ function PSIsSQLBased: Boolean; override;
+ function PSIsSQLSupported: Boolean; override;
+ procedure PSReset; override;
+ procedure PSSetCommandText(const CommandText: string); override;
+ procedure PSSetParams(AParams: TParams); override;
+ procedure PSStartTransaction; override;
+ function PSUpdateRecord(UpdateKind: TUpdateKind; Delta: TDataSet): Boolean; override;
+ function PSGetQuoteChar: string; override;
+ function PSGetKeyFields: string; override;
+ {***** IProviderSupport - End *****}
+ {$ENDIF}
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure ExecSQL;
+ procedure StartTransaction;
+ procedure StartDeferredTransaction;
+ procedure StartImmediateTransaction;
+ procedure StartExclusiveTransaction;
+ procedure Commit;
+ procedure RollBack;
+ procedure SetFiltered(Value: Boolean); override;
+ procedure SQLiteMasterChanged; virtual;
+ function GetFieldData(Field: TField; Buffer: Pointer): boolean; override;
+ function GetFieldData(FieldNo: integer; Buffer: Pointer): boolean; override; // 20040225
+ function GetLastInsertRow: integer;
+{$IFDEF ASQLITE_D6PLUS}
+// function GetFieldData(Field: TField; Buffer: Pointer; NativeFormat: boolean): boolean; override;
+{$ENDIF}
+
+ function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer; override; //MS
+ function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
+ function Locate(const KeyFields: string; const KeyValues: variant; Options: TLocateOptions): boolean; override;
+ function BookmarkValid(Bookmark: Pointer): boolean; override;
+// function LocateNearest(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean;
+ property Params: TParams read FParams write SetParamsList stored false;
+ function Lookup(const KeyFields: string; const KeyValues: Variant; // John Lito
+ const ResultFields: string): Variant; override; // John Lito
+ published
+ property AutoCommit: boolean read FAutoCommit write FAutoCommit default true;
+ property TransactionType: string read FTransactionType write FTransactionType;
+ property SQLiteDateFormat: boolean read FSQLiteDateFormat write SetSQLiteDateFormat;
+ property TableDateFormat: string read FTableDateFormat write FTableDateFormat;
+ property Connection: TASQLite3DB read FConnection write FConnection;
+ property MaxResults: integer read FMaxResults write FMaxResults;
+ property StartResult: integer read FStartResult write FStartResult;
+ property TypeLess: boolean read FTypeLess write FTypeLess;
+ property MasterFields: string read GetMasterFields write SetMasterFields;
+ property MasterSource: TDataSource read GetDataSource write SetDataSource;
+ property SQLCursor: boolean read FSQLCursor write FSQLCursor;
+ property ReadOnly: boolean read FreadOnly write FReadOnly;
+ property UniDirectional : boolean read FUniDir write FUniDir;
+ property AutoCalcFields;
+ property Filter;
+ property Filtered;
+ property Active;
+ property BeforeOpen;
+ property AfterOpen;
+ property BeforeClose;
+ property AfterClose;
+ property BeforeInsert;
+ property AfterInsert;
+ property BeforeEdit;
+ property AfterEdit;
+ property BeforePost;
+ property AfterPost;
+ property BeforeCancel;
+ property AfterCancel;
+ property BeforeDelete;
+ property AfterDelete;
+ property BeforeScroll;
+ property AfterScroll;
+{$IFDEF ASQLITE_D6PLUS}
+ property BeforeRefresh;
+ property AfterRefresh;
+{$ENDIF}
+ property OnCalcFields;
+ property OnDeleteError;
+ property OnEditError;
+ property OnNewRecord;
+ property OnPostError;
+ end;
+//============================================================================== TASQLite3Query
+
+ TASQLite3Query = class(TASQLite3BaseQuery)
+ private
+ FUpdateSQL: TASQLite3UpdateSQL;
+ FRawSQL: boolean;
+ procedure SetSQL(const Value: TStrings);
+ function GetSQL: TStrings;
+ procedure QueryChanged(Sender: TObject);
+ protected
+ procedure InternalOpen; override;
+ procedure InternalPost; override;
+ procedure InternalDelete; override;
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ procedure InternalClose; override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+// property Params: TParams Read FParams Write SetParamsList Stored false;
+ procedure SQLiteMasterChanged; override;
+ published
+ property RawSQL: boolean read FRawSQL write FRawSQL;
+ property SQL: TStrings read GetSQL write SetSQL;
+ property UpdateSQL: TASQLite3UpdateSQL read FUpdateSQL write FUpdateSQL;
+ end;
+
+//============================================================================== TASQLite3Table
+
+ TASQLite3Table = class(TASQLite3BaseQuery)
+ private
+ FTableName: string;
+ FOrderBy : string;
+ FPrimaryAutoInc: boolean;
+ protected
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ procedure InternalOpen; override;
+ procedure InternalPost; override;
+ procedure InternalDelete; override;
+ procedure SetFTableName(TableName : string);
+ procedure SetFOrderBy(OrderBy : string);
+ public
+ procedure SQLiteMasterChanged; override;
+ published
+ property TableName: string read FTableName write SetFTableName;
+ property PrimaryAutoInc: boolean read FPrimaryAutoInc write FPrimaryAutoInc;
+ property OrderBy : string read FOrderBy write SetFOrderBy;
+ end;
+
+ //============================================================================== TASQLite3BlobStream
+
+ TASQLite3BlobStream = class(TMemoryStream)
+ private
+ FField: TBlobField;
+ FDataSet: TASQLite3BaseQuery;
+ FMode: TBlobStreamMode;
+ FModified: Boolean;
+ FOpened: Boolean;
+ procedure LoadBlobData;
+ procedure SaveBlobData;
+ public
+ constructor Create(Field: TBlobField; Mode: TBlobStreamMode);
+ destructor Destroy; override;
+ function Read(var Buffer; Count: Longint): Longint; override;
+ function Write(const Buffer; Count: Longint): Longint; override;
+ end;
+
+
+implementation
+
+uses
+ Math
+{$IFDEF ASQLITE_D6PLUS}
+ , StrUtils
+{$endif}
+ ;
+
+// GPA - Static Link Start
+{$IFDEF SQLite_Static}
+Var
+ __HandlerPtr:Pointer;
+
+ {$L 'OBJ\sqlite3.obj'}
+ {$L 'OBJ\files.obj'}
+ {$L 'OBJ\strlen.obj'}
+ {$L 'OBJ\assert.obj'}
+ {$L 'OBJ\memcmp.obj'}
+ {$L 'OBJ\memcpy.obj'}
+ {$L 'OBJ\memset.obj'}
+ {$L 'OBJ\strcmp.obj'}
+ {$L 'OBJ\strcpy.obj'}
+ {$L 'OBJ\strcat.obj'}
+ {$L 'OBJ\strncmp.obj'}
+ {$L 'OBJ\strncpy.obj'}
+ {$L 'OBJ\strncat.obj'}
+ {$L 'OBJ\sprintf.obj'}
+ {$L 'OBJ\fprintf.obj'}
+ {$L 'OBJ\_ll.obj'}
+ {$L 'OBJ\ltoupper.obj'}
+ {$L 'OBJ\ltolower.obj'}
+ {$L 'OBJ\atol.obj'}
+ {$L 'OBJ\ftol.obj'}
+ {$L 'OBJ\longtoa.obj'}
+ {$L 'OBJ\hrdir_r.obj'}
+ {$L 'OBJ\gmtime.obj'}
+ {$L 'OBJ\tzdata.obj'}
+ {$L 'OBJ\initcvt.obj'}
+ {$L 'OBJ\streams.obj'}
+ {$L 'OBJ\scantod.obj'}
+ {$L 'OBJ\scanwtod.obj'}
+ {$L 'OBJ\allocbuf.obj'}
+ {$L 'OBJ\bigctype.obj'}
+ {$L 'OBJ\clocale.obj'}
+ {$L 'OBJ\clower.obj'}
+ {$L 'OBJ\cupper.obj'}
+ {$L 'OBJ\fflush.obj'}
+ {$L 'OBJ\fputn.obj'}
+ {$L 'OBJ\hrdir_s.obj'}
+ {$L 'OBJ\mbisspc.obj'}
+ {$L 'OBJ\mbsrchr.obj'}
+ {$L 'OBJ\realcvt.obj'}
+ {$L 'OBJ\realcvtw.obj'}
+ {$L 'OBJ\timefunc.obj'}
+ {$L 'OBJ\vprinter.obj'}
+ {$L 'OBJ\hugeval.obj'}
+ {$L 'OBJ\cvtfak.obj'}
+ {$L 'OBJ\getinfo.obj'}
+ {$L 'OBJ\qmul10.obj'}
+ {$L 'OBJ\fuildq.obj'}
+ {$L 'OBJ\_pow10.obj'}
+ {$L 'OBJ\ldtrunc.obj'}
+ {$L 'OBJ\cvtfakw.obj'}
+ {$L 'OBJ\wis.obj'}
+ {$L 'OBJ\xfflush.obj'}
+ {$L 'OBJ\flushout.obj'}
+ {$L 'OBJ\lputc.obj'}
+ {$L 'OBJ\hrdir_b.obj'}
+ {$L 'OBJ\realloc.obj'}
+ {$L 'OBJ\mbctype.obj'}
+ {$L 'OBJ\xcvt.obj'}
+ {$L 'OBJ\xcvtw.obj'}
+ {$L 'OBJ\wcscpy.obj'}
+ {$L 'OBJ\errno.obj'}
+ {$L 'OBJ\ctrl87.obj'}
+ {$L 'OBJ\timedata.obj'}
+ {$L 'OBJ\int64toa.obj'}
+ {$L 'OBJ\cvtentry.obj'}
+ {$L 'OBJ\mbyte1.obj'}
+ {$L 'OBJ\errormsg.obj'}
+ {$L 'OBJ\exit.obj'}
+ {$L 'OBJ\iswctype.obj'}
+ {$L 'OBJ\heap.obj'}
+ {$L 'OBJ\memmove.obj'}
+ {$L 'OBJ\fxam.obj'}
+ {$L 'OBJ\fuistq.obj'}
+ {$L 'OBJ\qdiv10.obj'}
+ {$L 'OBJ\wmemset.obj'}
+ {$L 'OBJ\wcslen.obj'}
+ {$L 'OBJ\_tzset.obj'}
+ {$L 'OBJ\deflt87.obj'}
+ {$L 'OBJ\mbschr.obj'}
+ {$L 'OBJ\mbsrchr.obj'}
+ {$L 'OBJ\ermsghlp.obj'}
+ {$L 'OBJ\patexit.obj'}
+ {$L 'OBJ\initexit.obj'}
+ {$L 'OBJ\virtmem.obj'}
+ {$L 'OBJ\tzset.obj'}
+ {$L 'OBJ\mbisdgt.obj'}
+ {$L 'OBJ\mbsnbcpy.obj'}
+ {$L 'OBJ\platform.obj'}
+ {$L 'OBJ\getenv.obj'}
+ {$L 'OBJ\mbisalp.obj'}
+ {$L 'OBJ\abort.obj'}
+ {$L 'OBJ\signal.obj'}
+ {$L 'OBJ\clear87.obj'}
+ {$L 'OBJ\abort.obj'}
+ {$L 'OBJ\handles.obj'}
+ {$L 'OBJ\_cfinfo.obj'}
+ {$L 'OBJ\__isatty.obj'}
+ {$L 'OBJ\perror.obj'}
+ {$L 'OBJ\fputs.obj'}
+ {$L 'OBJ\files2.obj'}
+ {$L 'OBJ\ioerror.obj'}
+ {$L 'OBJ\__write.obj'}
+ {$L 'OBJ\_write.obj'}
+ {$L 'OBJ\__lseek.obj'}
+ {$L 'OBJ\ioerror.obj'}
+ {$L 'OBJ\setenvp.obj'}
+ {$L 'OBJ\calloc.obj'}
+ {$L 'OBJ\mbsnbcmp.obj'}
+ {$L 'OBJ\mbsnbicm.obj'}
+ {$L 'OBJ\is.obj'}
+ {$L 'OBJ\isctype.obj'}
+ {$L 'OBJ\bigctype.obj'}
+ {$L 'OBJ\globals.obj'}
+ {$L 'OBJ\hrdir_mf.obj'}
+ {$L 'OBJ\fpreset.obj'}
+ {$L 'OBJ\ta.obj'}
+ {$L 'OBJ\setexc.obj'}
+ {$L 'OBJ\defhandl.obj'}
+
+ function _wsprintfA:integer; external 'user32.dll' name 'wsprintfA';
+ procedure RtlUnwind; external 'NtDll.dll' name 'RtlUnwind';
+
+ function _sqlite3_open(dbname: PAnsiChar; var db: pointer): integer; cdecl; external;
+ function _sqlite3_close(db: pointer): integer; cdecl; external;
+ function _sqlite3_exec(DB: Pointer; SQLStatement: PAnsiChar; Callback: TSQLite3_Callback;
+ UserDate: Pointer; var ErrMsg: PAnsiChar): Integer; cdecl; external;
+ function _sqlite3_libversion: PAnsiChar; cdecl; external;
+ function _sqlite3_errmsg(db: pointer): PAnsiChar; cdecl; external;
+ function _sqlite3_get_table(db: Pointer; SQLStatement: PAnsiChar; var ResultPtr: Pointer;
+ var RowCount: cardinal; var ColCount: cardinal; var ErrMsg: PAnsiChar): integer; cdecl; external;
+ procedure _sqlite3_free_table(Table: PAnsiChar); cdecl; external;
+ procedure _sqlite3_free(P: PAnsiChar); cdecl; external;
+ function _sqlite3_complete(P: PAnsiChar): boolean; cdecl; external;
+ function _sqlite3_last_insert_rowid(db: Pointer): integer; cdecl; external;
+ procedure _sqlite3_interrupt(db: Pointer); cdecl; external;
+ procedure _sqlite3_busy_handler(db: Pointer; CallbackPtr: Pointer; Sender: TObject); cdecl; external;
+ procedure _sqlite3_busy_timeout(db: Pointer; TimeOut: integer); cdecl; external;
+ function _sqlite3_changes(db: Pointer): integer; cdecl; external;
+ function _sqlite3_prepare(db: Pointer; SQLStatement: PAnsiChar; nBytes: integer;
+ var hstatement: pointer; var Tail: PAnsiChar): integer; cdecl; external;
+ function _sqlite3_finalize(hstatement: pointer): integer; cdecl; external;
+ function _sqlite3_reset(hstatement: pointer): integer; cdecl; external;
+ function _sqlite3_step(hstatement: pointer): integer; cdecl; external;
+ function _sqlite3_column_blob(hstatement: pointer; iCol: integer): pointer; cdecl; external;
+ function _sqlite3_column_bytes(hstatement: pointer; iCol: integer): integer; cdecl; external;
+ function _sqlite3_column_count(hstatement: pointer): integer; cdecl; external;
+ function _sqlite3_column_decltype(hstatement: pointer; iCol: integer): PAnsiChar; cdecl; external;
+ function _sqlite3_column_double(hstatement: pointer; iCol: integer): double; cdecl; external;
+ function _sqlite3_column_int(hstatement: pointer; iCol: integer): integer; cdecl; external;
+ function _sqlite3_column_int64(hstatement: pointer; iCol: integer): int64; cdecl; external;
+ function _sqlite3_column_name(hstatement: pointer; iCol: integer): PAnsiChar; cdecl; external;
+ function _sqlite3_column_text(hstatement: pointer; iCol: integer): PAnsiChar; cdecl; external;
+ function _sqlite3_column_type(hstatement: pointer; iCol: integer): integer; cdecl; external;
+ function _sqlite3_bind_blob(hstatement: pointer; iCol: integer; buf: PAnsiChar; n: integer; DestroyPtr: Pointer): integer; cdecl; external;
+
+{$ENDIF}
+// GPA - Static Link End
+
+
+{$IFDEF DEBUG_ENABLED}
+var
+ DebugSpaces : Integer = 0;
+{$ENDIF}
+
+{$IFNDEF ASQLITE_D6PLUS} //Art Register - Function sign not provided in Delphi 5
+function Sign(I: Integer) : Integer ;
+begin
+ if (I > 0) then
+ Result := 1
+ else
+ begin
+ if (I < 0) then
+ Result := -1
+ else
+ Result := 0;
+ end;
+end;
+{$ENDIF}
+
+procedure Debug(const S: string);
+begin
+{$IFDEF DEBUG_ENABLED}
+ OutputDebugString(PAnsiChar(StringOfChar(' ', DebugSpaces) + S));
+{$ENDIF}
+end;
+
+procedure DebugEnter(const S: string);
+begin
+{$IFDEF DEBUG_ENABLED}
+ OutputDebugString(PAnsiChar(StringOfChar(' ', DebugSpaces) + 'Enter ' + S));
+ inc(DebugSpaces);
+{$ENDIF}
+end;
+
+procedure DebugLeave(const S: string);
+begin
+{$IFDEF DEBUG_ENABLED}
+ dec(DebugSpaces);
+ OutputDebugString(PAnsiChar(StringOfChar(' ', DebugSpaces) + 'Leave ' + S));
+{$ENDIF}
+end;
+
+//==============================================================================
+// SyntaxCheck. This routine is used to check if words match the sql syntax
+// It is called where sql statements are parsed and generated
+//==============================================================================
+
+function SyntaxCheck(LWord, RWord: string): boolean;
+begin
+ DebugEnter('SyntaxCheck');
+ try
+ if CompareText(LWord, RWord) <> 0 then begin
+ SyntaxCheck := false;
+ raise AsgError.Create('SQL macro syntax error on sql, expected ' + RWord)
+ end else
+ SyntaxCheck := true;
+ finally
+ DebugLeave('SyntaxCheck');
+ end;
+end;
+
+//==============================================================================
+// Parse the SQL fielddescription and return the Delphi Field types, length etc.
+//==============================================================================
+
+procedure GetFieldInfo(FieldInfo: string; var FieldType: TFieldType;
+ var FieldLen, FieldDec: integer);
+var
+ p1, p2, pn : integer;
+ vt : string;
+begin
+ DebugEnter('GetFieldInfo');
+ FieldType := ftString; // just a default;
+ FieldLen := 255;
+ FieldDec := 0;
+
+ p1 := pos('(', FieldInfo);
+ if p1 <> 0 then
+ begin
+ p2 := pos(')', FieldInfo);
+ if p2 <> 0 then
+ begin
+ vt := LowerCase(Copy(FieldInfo, 1, p1 - 1));
+ if (vt = 'varchar') or (vt = 'char') or (vt = 'varchar2') then begin
+ FieldType := ftString;
+ FieldLen := StrToInt(Copy(FieldInfo, p1 + 1, p2 - p1 - 1));
+ end else if (vt = 'nvarchar') or (vt = 'nchar') or (vt = 'nvarchar2') then begin
+ FieldType := ftWideString;
+ FieldLen := StrToInt(Copy(FieldInfo, p1 + 1, p2 - p1 - 1)) * 2;
+ end else if (vt = 'numeric') then begin
+ vt := Copy(FieldInfo, p1 + 1, p2 - p1 - 1);
+ pn := pos('.', vt); if pn = 0 then pn := pos(',', vt);
+ FieldType := ftFloat;
+ if pn = 0 then begin
+ FieldLen := StrToInt(vt);
+ FieldDec := 0;
+ end else begin
+ FieldLen := StrToInt(Copy(vt, 1, pn - 1));
+ FieldDec := StrToInt(Copy(vt, pn + 1, 2));
+ end;
+ end;
+ end
+ else
+ FieldLen := 256;
+ end
+ else
+ begin
+ vt := LowerCase(FieldInfo);
+ if vt = 'date' then
+ begin
+ FieldType := ftDate;
+ FieldLen := 10;
+ end
+ else if vt = 'datetime' then
+ begin
+ FieldType := ftDateTime; // fpierce original ftDate
+ FieldLen := 24; // aducom
+ end
+ else if vt = 'time' then
+ begin
+ FieldType := ftTime;
+ FieldLen := 12;
+ end
+{$IFDEF ASQLITE_D6PLUS}
+ else if vt = 'timestamp' then
+ begin
+ FieldType := ftTimeStamp;
+ FieldLen := 12;
+ end
+{$ENDIF}
+ else if (vt = 'integer') or (vt = 'int') then
+ begin
+ FieldType := ftInteger;
+ FieldLen := 12;
+ end
+ else if (vt = 'float') or (vt = 'real') then
+ begin
+ FieldType := ftFloat;
+ FieldLen := 12;
+ end
+ else if (vt = 'boolean') or (vt = 'logical') then
+ begin
+ FieldType := ftBoolean;
+ FieldLen := 2;
+ end
+ else if (vt = 'char') or (vt = 'byte') then
+ begin
+ FieldType := ftString;
+ FieldLen := 1;
+ end
+ else if (vt = 'shorttext') or (vt = 'string') then
+ begin
+ FieldType := ftString;
+ FieldLen := 255;
+ end
+ else if (vt = 'widetext') or (vt = 'widestring') then
+ begin
+ FieldType := ftWideString;
+ FieldLen := 512;
+ end
+ else if (vt = 'currency') or (vt = 'financial') or (vt = 'money') then
+ begin
+ FieldType := ftCurrency;
+ FieldLen := 10;
+ end
+ else if (vt = 'blob') then
+ begin
+ FieldType := ftBlob;
+ FieldLen := SizeOf(Pointer);
+ end
+ else if (vt = 'graphic') then
+ begin
+ FieldType := ftGraphic;
+ FieldLen := SizeOf(Pointer);
+ end
+ else if (vt = 'clob') or (vt = 'memo') or (vt = 'text') or (vt = 'longtext') then
+ begin
+ FieldType := ftMemo;
+ FieldLen := SizeOf(Pointer);
+ end;
+ end;
+ DebugLeave('GetFieldInfo: ' + vt);
+end;
+
+ //==============================================================================
+ // Convert TDateTime to TDateTimeRec
+ //==============================================================================
+
+function DateTimeToNative(DataType: TFieldType; Data: TDateTime): TDateTimeRec;
+var
+ TimeStamp : TTimeStamp;
+begin
+ DebugEnter('DateTimeToNative');
+ TimeStamp := DateTimeToTimeStamp(Data);
+ case DataType of
+ ftDate: Result.Date := TimeStamp.Date;
+ ftTime: Result.Time := TimeStamp.Time;
+ else
+ Result.DateTime := TimeStampToMSecs(TimeStamp);
+ end;
+ DebugLeave('DateTimeToNative');
+end;
+
+procedure ApplicationHandleException(Sender: TObject);
+begin
+{$IFDEF ASQLITE_D6PLUS}
+ if Assigned(Classes.ApplicationHandleException) then
+ Classes.ApplicationHandleException(Sender);
+{$ENDIF}
+end;
+
+//============================================================================== TASQLite3LOG
+
+procedure TASQLite3Log.Display(Msg: string);
+var
+ fn : Textfile;
+begin
+ DebugEnter('TASQLite3Log.Display');
+ if FileExists(FLogFile) then
+ begin
+ if FAppend then
+ begin
+ AssignFile(fn, FLogFile);
+ System.Append(fn);
+ end
+ else
+ begin
+ SysUtils.DeleteFile(FLogFile);
+ AssignFile(fn, FLogFile);
+ Rewrite(fn);
+ end;
+ end
+ else
+ begin
+ AssignFile(fn, FLogFile);
+ Rewrite(fn);
+ end;
+ Writeln(fn, FormatDateTime('yyyy mmm dd (hh:nn:ss) ', now) + Msg);
+ CloseFile(fn);
+ DebugLeave('TASQLite3Log.Display');
+end;
+
+//============================================================================== TASQLite3PRAGMA
+
+function TASQLite3Pragma.GetTempCacheSize: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetTempCacheSize');
+ GetTempCacheSize := 'pragma cache_size=' + IntToStr(FTempCacheSize);
+ DebugLeave('TASQLite3Pragma.GetTempCacheSize');
+end;
+
+function TASQLite3Pragma.GetDefaultCacheSize: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetDefaultCacheSize');
+ GetDefaultCacheSize := 'pragma default_cache_size=' + IntToStr(FDefaultCacheSize);
+ DebugLeave('TASQLite3Pragma.GetDefaultCacheSize');
+end;
+
+function TASQLite3Pragma.GetDefaultSynchronous: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetDefaultSynchronous');
+ GetDefaultSynchronous := 'pragma default_synchronous=' + FDefaultSynchronous;
+ DebugLeave('TASQLite3Pragma.GetDefaultSynchronous');
+end;
+
+function TASQLite3Pragma.GetDefaultTempStore: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetDefaultTempStore');
+ GetDefaultTempStore := 'pragma default_temp_store=' + FDefaultTempStore;
+ DebugLeave('TASQLite3Pragma.GetDefaultTempStore');
+end;
+
+function TASQLite3Pragma.GetTempStore: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetTempStore');
+ GetTempStore := 'pragma temp_store=' + FTempStore;
+ DebugLeave('TASQLite3Pragma.GetTempStore');
+end;
+
+function TASQLite3Pragma.GetSynchronous: string;
+begin
+ DebugEnter('TASQLite3Pragma.GetSynchronous');
+ GetSynchronous := 'pragma synchronous=' + FSynchronous;
+ DebugLeave('TASQLite3Pragma.GetSynchronous');
+end;
+
+ //============================================================================== TFRESULT
+ // TResult is a representation of an internal pointerlist of results.
+ // Only 'normal' results will be stored internally within a fixed memory block
+ // depending on calculated length internally. This is not the case
+ // for blobs and clobs. In this case only the handle is stored in the fixed
+ // structure and a separate memory handle is retrieved to store the blob and
+ // clob data. This is because the blobs are stored as null terminated 'strings'
+ // and thus have different lengths. No more memory is allocated this way than
+ // strictly necessary.
+ // KEEP IN MIND: ...
+ // This resultset is NOT used for unidirectional search results. You can
+ // however, open a dbgrid containing griddata. You cannot update your data
+ // if you use the unidirectional the result is read-only by default and cannot
+ // be changed.
+ // The unidirectional dataset improves performance on large resultsets and
+ // is to be considered for query-only components...
+ //==============================================================================
+
+constructor TFResult.Create(TheDataSet: TASQLite3BaseQuery);
+begin
+ DebugEnter('TFResult.Create');
+ Data := TList.Create;
+ Bookmark := TList.Create;
+ RowId := TList.Create;
+ FDataSet := TheDataset;
+ FLastBookmark := -1; // 2004-14-09 (rps) 0 -> -1 (otherwise insert in an empty table gives index out of range)
+ DebugLeave('TFResult.Create');
+end;
+
+destructor TFResult.Destroy;
+var
+ ptr : Pointer;
+ i : integer;
+begin
+ DebugEnter('TFResult.Destroy');
+ FreeBlobs;
+ if Assigned(Data) then begin
+ for i := 0 to Data.Count - 1 do begin
+ ptr := Data.Items[i];
+ if Assigned(ptr) then FreeMem(ptr, FBufSize);
+ end;
+ Data.Free; // D4 compatibility, otherwise FreeAndNil could be used
+ Data := nil;
+ end;
+
+ if Assigned(Bookmark) then begin
+ Bookmark.Free;
+ Bookmark := nil;
+ end;
+
+ if Assigned(RowId) then begin
+ RowId.Free;
+ RowId := nil;
+ end;
+
+ DebugLeave('TFResult.Destroy');
+end;
+
+procedure TFResult.FreeBlobs;
+var i, j : integer;
+ offset : integer;
+ ptr : PAnsiChar;
+ stream : TMemoryStream;
+begin
+ if not Assigned(FDataSet) then exit;
+ if not Assigned(FDataSet.FieldList) then exit;
+ for j := 0 to Data.Count - 1 do begin
+ ptr := GetData(j);
+ for i := 0 to FDataSet.FieldList.Count - 1 do begin
+ if FDataSet.FieldList[i].DataType in [ftMemo, ftFmtMemo, ftGraphic, ftBlob] then begin
+ Offset := FDataset.GetFieldOffset(FDataSet.FieldList[i].FieldNo);
+ Move((ptr + Offset)^, Pointer(Stream), sizeof(Pointer));
+ Stream.Free;
+ end;
+ end;
+ end;
+end;
+
+procedure TFResult.SetBufSize(TheSize: integer);
+begin
+ DebugEnter('TFResult.SetBufSize');
+ FBufSize := TheSize;
+ DebugLeave('TFResult.SetBufSize');
+end;
+
+//==============================================================================
+// Adds a row of data to the resultset.
+//==============================================================================
+
+procedure TFResult.Add(TheBuffer: PAnsiChar; TheRowId: integer);
+var
+ ptr : PAnsiChar;
+// i: integer;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TFResult.Add');
+{$ENDIF}
+ Inc(FLastBookmark);
+ GetMem(Ptr, FBufSize);
+ move(TheBuffer^, ptr^, FBufSize);
+ Data.Add(Ptr);
+ Bookmark.Add(Pointer(FLastBookMark));
+ if TheRowId >= 0 then
+ RowId.Add(Pointer(TheRowId))
+ else
+ RowId.Add(Pointer(RowId.Count));
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TFResult.Add');
+{$ENDIF}
+end;
+
+//==============================================================================
+// Inserts a row of date into the resultset
+//==============================================================================
+
+procedure TFResult.Insert(Index: integer; TheBuffer: pointer; TheRowId: integer);
+var
+ ptr : Pointer;
+begin
+ DebugEnter('TFResult.Insert');
+ Inc(FLastBookmark);
+ GetMem(Ptr, FBufSize);
+ move(TheBuffer^, ptr^, FBufSize);
+ if Data.Count < Index then begin
+ Data.Add(Ptr);
+ Bookmark.Add(Pointer(FLastBookMark));
+ RowId.Add(Pointer(TheRowId));
+ end else begin
+ Data.Insert(Index, Ptr);
+ Bookmark.Insert(Index, Pointer(FLastBookMark));
+ RowId.Insert(Index, Pointer(TheRowId));
+ end;
+ DebugLeave('TFResult.Insert');
+end;
+
+//==============================================================================
+// Deletes a row of data from the resultset
+//==============================================================================
+
+procedure TFResult.Delete(Index: integer);
+var
+ ptr : pointer;
+begin
+ DebugEnter('TFResult.Delete');
+ if not ((Index < 0) or (Index >= Data.Count)) then
+ begin
+ ptr := Data.Items[Index];
+ if ptr <> nil then
+ FreeMem(ptr, FBufSize);
+ Data.Delete(Index);
+ Bookmark.Delete(Index);
+ Rowid.Delete(Index);
+ end;
+ DebugLeave('TFResult.Delete');
+end;
+
+//==============================================================================
+// Returns a row from the resultset
+//==============================================================================
+
+function TFResult.GetData(Index: integer): Pointer;
+begin
+ DebugEnter('TFResult.GetData');
+ if (Index < 0) or (Index >= Data.Count) then
+ GetData := nil
+ else
+ GetData := Data.Items[Index];
+ DebugLeave('TFResult.GetData');
+end;
+
+function TFResult.GetBookmark(Index: integer): integer;
+begin
+ DebugEnter('TFResult.GetBookmark');
+ if (Index < 0) or (Index >= Data.Count) then
+ GetBookmark := -1
+ else
+ GetBookmark := integer(Bookmark.Items[Index]);
+ DebugLeave('TFResult.GetBookmark');
+end;
+
+function TFResult.GetRowId(Index: integer): integer;
+begin
+ DebugEnter('TFResult.GetRowId');
+ if (Index < 0) or (Index >= RowId.Count) then
+ GetRowId := -1
+ else
+ GetRowId := integer(RowId.Items[Index]);
+ DebugLeave('TFResult.GetRowId');
+end;
+
+function TFResult.Count: integer;
+begin
+ Count := Data.Count;
+end;
+
+function TFResult.IndexOf(TheBookMark: pointer): integer;
+begin
+ Result := BookMark.IndexOf(TheBookmark);
+end;
+
+//============================================================================== ASQLITEDB
+
+procedure TASQLite3DB.Notification(AComponent: TComponent; Operation: TOperation);
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3DB.Notification');
+{$ENDIF}
+// Application.ProcessMessages;
+ if Assigned(AComponent) then
+ begin
+ if (Operation = opRemove) then
+ begin
+ if (AComponent is TASQLite3Pragma) then begin
+ if Assigned(FASQLitePragma) then begin
+ if TASQLite3Pragma(AComponent) = FASQLitePragma then
+ FASQLitePragma := nil;
+ end;
+ end
+ else if (AComponent is TASQLite3Log) then
+ begin
+ if Assigned(FASQLiteLog) then begin
+ if TASQLite3Log(AComponent) = FASQLiteLog then
+ FASQLiteLog := nil;
+ end;
+ end
+ else if (AComponent is TASQLite3InlineSQL) then
+ begin
+ if Assigned(FInlineSQL) then begin
+ if TASQLite3InlineSQL(AComponent) = FInlineSQL then
+ FInlineSQL := nil;
+ end;
+ end;
+ end;
+ end;
+ inherited;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3DB.Notification');
+{$ENDIF}
+end;
+
+function TASQLite3DB.LoadLibs: boolean;
+begin
+ try
+ DebugEnter('TASQLite3DB.LoadLibs');
+ if not(DecimalSeparator in ['.',',']) then
+ DecimalSeparator := '.';
+
+ Debug('loading sqlite lib');
+{$IFNDEF SQLite_Static}
+ Debug(PAnsiChar(DriverDLL));
+ Result := false;
+ DLLHandle := LoadLibrary(PAnsiChar(DriverDLL)); //JohnLito
+ if DLLHandle <> 0 then
+ begin
+ @SQLite3_Open := GetProcAddress(DLLHandle, 'sqlite3_open');
+ if not Assigned(@SQLite3_Open) then exit;
+ @SQLite3_Close := GetProcAddress(DLLHandle, 'sqlite3_close');
+ if not Assigned(@SQLite3_Close) then exit;
+ @SQLite3_Exec := GetProcAddress(DLLHandle, 'sqlite3_exec');
+ if not Assigned(@SQLite3_Exec) then exit;
+ @SQLite3_LibVersion := GetProcAddress(DLLHandle, 'sqlite3_libversion');
+ if not Assigned(@SQLite3_LibVersion) then exit;
+ @SQLite3_ErrorString := GetProcAddress(DLLHandle, 'sqlite3_errmsg');
+ if not Assigned(@SQLite3_ErrorString) then exit;
+ @SQLite3_GetTable := GetProcAddress(DLLHandle, 'sqlite3_get_table');
+ if not Assigned(@SQLite3_GetTable) then exit;
+ @SQLite3_FreeTable := GetProcAddress(DLLHandle, 'sqlite3_free_table');
+ if not Assigned(@SQLite3_FreeTable) then exit;
+ @SQLite3_FreeMem := GetProcAddress(DLLHandle, 'sqlite3_free');
+ if not Assigned(@SQLite3_FreeMem) then exit;
+ @SQLite3_Complete := GetProcAddress(DLLHandle, 'sqlite3_complete');
+ if not Assigned(@SQLite3_Complete) then exit;
+ @SQLite3_LastInsertRow := GetProcAddress(DLLHandle, 'sqlite3_last_insert_rowid');
+ if not Assigned(@SQLite3_LastInsertRow) then exit;
+ @SQLite3_Cancel := GetProcAddress(DLLHandle, 'sqlite3_interrupt');
+ if not Assigned(@SQLite3_Cancel) then exit;
+ @SQLite3_BusyTimeout := GetProcAddress(DLLHandle, 'sqlite3_busy_timeout');
+ if not Assigned(@SQLite3_BusyTimeout) then exit;
+ @SQLite3_BusyHandler := GetProcAddress(DLLHandle, 'sqlite3_busy_handler');
+ if not Assigned(@SQLite3_BusyHandler) then exit;
+ @SQLite3_Changes := GetProcAddress(DLLHandle, 'sqlite3_changes');
+ if not Assigned(@SQLite3_Changes) then exit;
+ @SQLite3_Prepare := GetProcAddress(DLLHandle, 'sqlite3_prepare');
+ if not Assigned(@SQLite3_Prepare) then exit;
+ @SQLite3_Finalize := GetProcAddress(DLLHandle, 'sqlite3_finalize');
+ if not Assigned(@SQLite3_Finalize) then exit;
+ @SQLite3_Reset := GetProcAddress(DLLHandle, 'sqlite3_reset');
+ if not Assigned(@SQLite3_Reset) then exit;
+ @SQLite3_Step := GetProcAddress(DLLHandle, 'sqlite3_step');
+ if not Assigned(@SQLite3_Step) then exit;
+ @SQLite3_Column_blob := GetProcAddress(DLLHandle, 'sqlite3_column_blob');
+ if not Assigned(@SQLite3_Column_blob) then exit;
+ @SQLite3_Column_bytes := GetProcAddress(DLLHandle, 'sqlite3_column_bytes');
+ if not Assigned(@SQLite3_Column_bytes) then exit;
+ @SQLite3_Column_count := GetProcAddress(DLLHandle, 'sqlite3_column_count');
+ if not Assigned(@SQLite3_Column_Count) then exit;
+ @SQLite3_Column_decltype := GetProcAddress(DLLHandle, 'sqlite3_column_decltype');
+ if not Assigned(@SQLite3_Column_decltype) then exit;
+ @SQLite3_Column_double := GetProcAddress(DLLHandle, 'sqlite3_column_double');
+ if not Assigned(@SQLite3_Column_double) then exit;
+ @SQLite3_Column_int := GetProcAddress(DLLHandle, 'sqlite3_column_int');
+ if not Assigned(@SQLite3_Column_int) then exit;
+ @SQLite3_Column_int64 := GetProcAddress(DLLHandle, 'sqlite3_column_int64');
+ if not Assigned(@SQLite3_Column_int64) then exit;
+ @SQLite3_Column_name := GetProcAddress(DLLHandle, 'sqlite3_column_name');
+ if not Assigned(@SQLite3_Column_name) then exit;
+ @SQLite3_Column_text := GetProcAddress(DLLHandle, 'sqlite3_column_text');
+ if not Assigned(@SQLite3_Column_text) then exit;
+ @SQLite3_Column_text16 := GetProcAddress(DLLHandle, 'sqlite3_column_text16');
+ if not Assigned(@SQLite3_Column_text16) then exit;
+ @SQLite3_Column_type := GetProcAddress(DLLHandle, 'sqlite3_column_type');
+ if not Assigned(@SQLite3_Column_type) then exit;
+ @SQLite3_Bind_Blob := GetProcAddress(DLLHandle, 'sqlite3_bind_blob');
+ if not Assigned(@SQLite3_Bind_blob) then exit;
+ @SQLite3_Bind_Text16 := GetProcAddress(DLLHandle, 'sqlite3_bind_text16');
+ if not Assigned(@SQLite3_Bind_Text16) then exit;
+ @SQLite3_Bind_Parameter_Count := GetProcAddress(DLLHandle, 'sqlite3_bind_parameter_count');
+ if not Assigned(@SQLite3_Bind_Parameter_Count) then exit;
+
+ Result := true;
+ end;
+ {$ELSE}
+ DllHandle := 1;
+ @SQLite3_Open := @_sqlite3_open;
+ @SQLite3_Close := @_sqlite3_close;
+ @SQLite3_Exec := @_sqlite3_exec;
+ @SQLite3_LibVersion := @_sqlite3_libversion;
+ @SQLite3_ErrorString := @_sqlite3_errmsg;
+ @SQLite3_GetTable := @_sqlite3_get_table;
+ @SQLite3_FreeTable := @_sqlite3_free_table;
+ @SQLite3_FreeMem := @_sqlite3_free;
+ @SQLite3_Complete := @_sqlite3_complete;
+ @SQLite3_LastInsertRow := @_sqlite3_last_insert_rowid;
+ @SQLite3_Cancel := @_sqlite3_interrupt;
+ @SQLite3_BusyTimeout := @_sqlite3_busy_timeout;
+ @SQLite3_BusyHandler := @_sqlite3_busy_handler;
+ @SQLite3_Changes := @_sqlite3_changes;
+ @SQLite3_Prepare := @_sqlite3_prepare;
+ @SQLite3_Finalize := @_sqlite3_finalize;
+ @SQLite3_Reset := @_sqlite3_reset;
+ @SQLite3_Step := @_sqlite3_step;
+ @SQLite3_Column_blob := @_sqlite3_column_blob;
+ @SQLite3_Column_bytes := @_sqlite3_column_bytes;
+ @SQLite3_Column_count := @_sqlite3_column_count;
+ @SQLite3_Column_decltype := @_sqlite3_column_decltype;
+ @SQLite3_Column_double := @_sqlite3_column_double;
+ @SQLite3_Column_int := @_sqlite3_column_int;
+ @SQLite3_Column_int64 := @_sqlite3_column_int64;
+ @SQLite3_Column_name := @_sqlite3_column_name;
+ @SQLite3_Column_text := @_sqlite3_column_text;
+ @SQLite3_Column_type := @_sqlite3_column_type;
+ @SQLite3_Bind_Blob := @_sqlite3_bind_blob;
+ Result := true;
+ {$ENDIF}
+ finally
+ DebugLeave('TASQLite3DB.LoadLibs');
+ end;
+end;
+
+procedure TASQLite3DB.ShowError;
+var msg : PAnsiChar;
+begin
+ msg := SQLite3_ErrorString(DBHandle);
+ raise EDatabaseError.Create(msg);
+end;
+
+function TASQLite3DB.SQLite3_ExecSQL(TheStatement: string; Blobs: TList=nil): integer;
+var
+ PF: PAnsiChar;
+ p: Pointer;
+ i: Integer;
+ b: Integer;
+ m: TMemoryStream;
+begin
+ TheStatement := StringReplace(TheStatement, #2, '?', [rfReplaceAll, rfIgnoreCase]);
+ PF := PAnsiChar(TheStatement);
+ repeat
+ Result := SQLite3_Prepare(DBHandle, PF, -1, p, PF);
+ if Result = SQLITE_OK then
+ begin
+ if Assigned(Blobs) then begin
+ for i := 0 to Blobs.Count - 1 do Begin
+ b := i+1;
+ m := TMemoryStream(Blobs.Items[i]);
+ SQLite3_Bind_Blob(p, b, PChar(m.Memory), m.Size, nil);
+ End;
+ end;
+ repeat
+ until SQLite3_Step(p) in [SQLITE_DONE, SQLITE_ERROR, SQLITE_MISUSE];
+ Result := SQLite3_Finalize(p);
+ if Result <> SQLITE_OK then ShowError;
+ end
+ else
+ ShowError;
+ until PF^ = #0;
+end;
+
+function TASQLite3DB.SQLite3_PrepareResult(DB: Pointer; TheStatement: string; FParams: TParams; Sender: TObject): Pointer;
+var
+ i,tmpi: Integer;
+ t: PAnsiChar;
+ RV: Integer;
+// RowIdCol: Integer; // column containing rowid
+// RowId: Integer; // current record row id (to be stored in resultset)
+ colname, coltype: PChar;
+ tmpcolname:string;
+ FieldType: TFieldType;
+ FieldLen: Integer;
+ FieldDec: Integer;
+ bFirst: Boolean;
+ wildcard: Integer;
+begin
+ if not (Sender is TASQLite3BaseQuery) then Exit;
+
+ with (Sender as TASQLite3BaseQuery) do begin
+ // if there are blob fields then we need to bind the blob variable
+ RowId := -1;
+ RowIdCol := -1;
+ TheStatement := StringReplace(TheStatement, #2, '?', [rfReplaceAll, rfIgnoreCase]);
+
+ bFirst := True;
+{$IFDEF ASQLITE_D6PLUS}
+ if FUtf8 then
+ RV := SQLite3_Prepare(DBHandle, PAnsiChar(AnsiToUtf8(TheStatement)), -1, result, t)
+ else
+{$endif}
+ RV := SQLite3_Prepare(DBHandle, PAnsiChar(TheStatement), -1, result, t);
+
+ wildcard := 1;
+ if Assigned(FParams) then begin
+ for i := 0 to FParams.Count - 1 do begin
+ if FParams[i].DataType in [ftBlob, ftGraphic] then begin
+ SQLite3_Bind_Blob(result, wildcard, PChar(FParams[i].AsBlob), FParams[i].GetDataSize, nil);
+ Inc(wildcard);
+ end;
+ end;
+ end;
+
+ if RV <> 0 then ShowError else begin
+ if bFirst then begin // retrieve metadata on first row
+ bFirst := False;
+ if SQLite3_Column_count(result) > 0 then FieldDefs.Clear;
+ for i := 0 to SQLite3_Column_count(result) - 1 do begin
+ colname := SQLite3_Column_name(result, i);
+
+ // the second field named "ID", change in "ID_1" (like InterBase)
+ if (FieldDefs.IndexOf(colname) >= 0) then begin // Mirko
+ tmpColName := colname; // Mirko
+ tmpI := 0; // Mirko
+ while (FieldDefs.IndexOf(tmpcolname) >= 0) do begin // Mirko
+ inc(tmpI); // Mirko
+ tmpColName := colname + '_' + inttostr(tmpI); // Mirko
+ end; // Mirko
+ colName := PChar(tmpColName); // Mirko
+ end; // Mirko
+
+ if CompareText(colname, 'rowid') = 0 then begin
+ RowIdCol := i;
+ end else begin
+ coltype := SQLite3_Column_decltype(result, i);
+ //SQl: select max(CurID) from Items, sqlite3_column_decltype returns null.. it's probably SQLite bug
+ // better is to use max(CurID) as something from .... Aducom
+ if coltype = nil then
+ GetFieldInfo('string', FieldType, FieldLen, FieldDec) //OL
+ else
+ GetFieldInfo(coltype, FieldType, FieldLen, FieldDec);
+ if TypeLess then begin
+ FieldType := ftString;
+ with FieldDefs.AddFieldDef do begin
+ Name := colname;
+ DataType := FieldType;
+ Size := FieldLen;
+ end;
+ end else begin
+ with FieldDefs.AddFieldDef do begin
+ if FieldType <> ftString then begin
+ Name := colname;
+ DataType := FieldType;
+ if FieldType = ftFloat then
+ Precision := FieldDec;
+ end else begin
+ Name := colname;
+ DataType := FieldType;
+ Size := FieldLen;
+ end;
+ end;
+ end;
+ MaxStrLen := MaxStrLen + GetNativeFieldSize(i + 1); // compensate for terminating zero
+ FResult.SetBufSize(MaxStrLen + 1 + SizeOf(TBookMark));
+ end;
+ end;
+ end;
+ end;
+ end;
+end;
+
+function TASQLite3DB.SQLite3_GetNextResult(DB: Pointer; TheStatement: pointer; FParams: TParams; Sender: TObject) : pointer;
+var
+ i : integer;
+ minmin : integer;
+ RV: Integer;
+ mv: Integer;
+// RowIdCol: Integer; // column containing rowid
+ convertbuf: TConvertBuffer;
+ pData: PAnsiChar;
+ BlobStream: TMemoryStream;
+begin
+ result := nil;
+ with (Sender as TASQLite3BaseQuery) do begin
+
+ FillChar(ResultStr^, MaxBuf, 0);
+ RV := SQLite3_Step(theStatement);
+ if RV = SQLITE_ROW then begin
+
+ // retrieve data
+ if (Sender is TASQLite3Query) then
+ MinMin := 1
+ else
+ MinMin := 1; // compensate for 'rowid'
+ for i := 0 to SQLite3_Column_count(theStatement) - MinMin do begin
+ if i = RowIdCol then begin // just save rowid
+ RowId := SQLite3_Column_int(theStatement, i);
+ end else begin
+
+// ok, i can find-out that the fiels is null but.... eh....
+// if SQLite3_column_type(theStatement, i) = 5 then begin
+// end;
+
+ pData := SQLite3_Column_text(theStatement, i);
+ if pData = nil then pData := ''; // james
+ if FTypeLess then begin
+ mv := GetNativeFieldSize(i + 1);
+ if StrLen(pData) < Cardinal(mv) then
+ mv := StrLen(pData);
+ Move(pData^, (ResultStr + GetFieldOffset(i + 1))^, mv);
+ end else begin
+ case FieldDefs[i].DataType of // DI
+ ftString: // DI
+ begin // DI
+ mv := GetNativeFieldSize(i + 1);
+ if pData <> nil then //OL
+ begin
+ if StrLen(pData) < Cardinal(mv) then
+ mv := StrLen(pData)+1; // plus onennnnnnnnnnnnnnnn
+ Move(pData^, (ResultStr + GetFieldOffset(i + 1))^, mv);
+ end;
+ end; // DI
+ ftMemo, ftGraphic, ftFmtMemo, ftBlob: // DI
+ begin // DI
+ // create memory stream to save blob;
+ pData := SQLite3_Column_blob(theStatement, i);
+ BlobStream := TMemoryStream.Create;
+ if pData <> nil then
+ BlobStream.Write(pData^, SQLite3_Column_bytes(theStatement, i))
+ else begin
+ pData := '';
+ BlobStream.Write(pData^, 0);
+ end;
+ Move(BlobStream, (ResultStr + GetFieldOffset(i + 1))^, SizeOf(BlobStream));
+ end; // DI
+ else // DI
+ begin // DI
+ convertbuf := UnpackBuffer(pData, FieldDefs[i].DataType);
+ Move(convertbuf, (ResultStr + GetFieldOffset(i + 1))^, GetFieldSize(i + 1));
+ end;
+ end;
+ end;
+ end
+ end;
+ Result := ResultStr;
+ end;
+ if RV in [SQLITE_DONE] then result := nil;
+ if RV in [SQLITE_ERROR, SQLITE_MISUSE] then //f.e. inserting NULL in field declared as NOT NULL
+ ShowError;
+ end;
+end;
+
+procedure TASQLite3DB.SQLite3_CloseResult(TheStatement : pointer);
+var RV : integer;
+begin
+ if TheStatement <> nil then begin
+ SQLite3_Reset(TheStatement);
+ RV := SQLite3_Finalize(TheStatement);
+ if RV <> 0 then raise AsgError.Create('SQLiteExecute error: ' + IntToStr(RV));
+ end;
+end;
+
+function TASQLite3DB.SQLite3_Execute(DB: Pointer; TheStatement: string; FParams: TParams; Sender: TObject): Integer;
+var
+ p: Pointer;
+ RowIdCol: Integer; // column containing rowid
+{$IFDEF ASQLITE_D6PLUS}
+ Cursor: TDBScreenCursor;
+{$endif}
+begin
+ SQLite3_Execute := 0;
+ RowIdCol := -1;
+ if not (Sender is TASQLite3BaseQuery) then Exit;
+ try
+ with (Sender as TASQLite3BaseQuery) do begin
+{$IFDEF ASQLITE_D6PLUS}
+ if Assigned(DBScreen) and (FSQLCursor) then begin
+ Cursor := DBScreen.Cursor;
+ DBScreen.Cursor := dcrSQLWait;
+ end;
+{$endif}
+ RowId := -1;
+
+ FStatement := Connection.SQLite3_PrepareResult(Connection.DBHandle, PAnsiChar(TheStatement),FParams, Sender);
+
+ repeat
+ p := Connection.SQLite3_GetNextResult(Connection.DBHandle, FStatement, FParams, Sender);
+ if p <> nil then
+ FResult.Add(ResultStr, RowId);
+ until p = nil;
+
+ Connection.SQLite3_CloseResult(FStatement);
+ FStatement := nil;
+ end;
+ finally
+{$IFDEF ASQLITE_D6PLUS}
+ if Assigned(DBScreen) and ((Sender as TASQLite3BaseQuery).FSQLCursor) then begin
+ DBScreen.Cursor := Cursor;
+ if DBScreen.Cursor = dcrSQLWait then
+ DBScreen.Cursor := dcrDefault;
+ end;
+{$endif}
+
+ end;
+end;
+
+function TASQLite3DB.FGetDriverDLL: string;
+begin
+ DebugEnter('TASQLite3DB.FGetDriverDLL');
+ if FDriverDLL = '' then
+ FDriverDLL := 'SQLite3.dll';
+ FGetDriverDLL := FDriverDLL;
+ DebugLeave('TASQLite3DB.FGetDriverDLL');
+end;
+
+function TASQLite3DB.FGetDefaultExt: string;
+begin
+ DebugEnter('TASQLite3DB.FGetDefaultExt');
+ if FDefaultExt = '' then
+ FDefaultExt := '.sqb';
+ FGetDefaultExt := FDefaultExt;
+ DebugLeave('TASQLite3DB.FGetDefaultExt');
+end;
+
+procedure TASQLite3DB.FSetDatabase(Database: string);
+begin
+ DebugEnter('TASQLite3DB.FSetDatabase ' + Database);
+ FDatabase := Trim(Database);
+ if ExtractFileExt(FDataBase)='' Then // GPA
+ FDatabase:=FDataBase+FDefaultExt; // GPA
+ DebugLeave('TASQLite3DB.FSetDatabase');
+end;
+
+procedure TASQLite3DB.ShowDatabases(List: TStrings);
+var
+ sr : TSearchRec;
+begin
+ DebugEnter('TASQLite3DB.ShowDatabases');
+ if DefaultExt = '' then
+ DefaultExt := '.sqb';
+ if DefaultExt[1] <> '.' then
+ DefaultExt := '.' + DefaultExt;
+ if DefaultDir <> '' then
+ if DefaultDir[Length(DefaultDir)] <> '\' then
+ DefaultDir := DefaultDir + '\';
+ if FindFirst(FDefaultDir + '*' + DefaultExt, faAnyFile, sr) = 0 then
+ begin
+ repeat
+ List.Add(sr.Name);
+ until FindNext(sr) <> 0;
+ SysUtils.FindClose(sr);
+ end;
+ DebugLeave('TASQLite3DB.ShowDatabases');
+end;
+
+procedure TASQLite3DB.GetTableNames(List: TStrings; SystemTables: boolean = false);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetTableNames');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar(
+ 'SELECT name FROM sqlite_master WHERE type="table" ORDER BY name'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr); // ignore header
+ for i := 1 to RowCount do
+ begin
+ if (CompareText('name', PAnsiChar(ResultStr^)) <> 0) then
+ List.Add(PAnsiChar(ResultStr^));
+ Inc(ResultStr);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetTableNames');
+end;
+
+procedure TASQLite3DB.GetIndexFieldNames(IndexName: string; List: TStrings);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetIndexFieldNames');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar(
+ 'PRAGMA index_info("' + IndexName + '");'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr, 5);
+ for i := 1 to RowCount do
+ begin
+ List.Insert(0, PAnsiChar(ResultStr^));
+ Inc(ResultStr, 3);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetIndexFieldNames');
+end;
+
+procedure TASQLite3DB.GetIndexNames(List: TStrings; SystemTables: boolean = false);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetIndexNames');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar(
+ 'SELECT name FROM sqlite_master WHERE type="index" ORDER BY name'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr); // ignore header
+ for i := 1 to RowCount do
+ begin
+ List.Add(PAnsiChar(ResultStr^));
+ Inc(ResultStr);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetIndexNames');
+end;
+
+procedure TASQLite3DB.GetFieldNames(TableName: string; List: TStrings);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetFieldNames ' + Tablename);
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar('PRAGMA table_info("' + TableName + '");'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr, 6); // headers can be ignored
+ for i := 1 to RowCount do
+ begin
+ Inc(ResultStr);
+ List.Add(PAnsiChar(ResultStr^)); // the second field contains the fieldname
+ Inc(ResultStr, 5);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetFieldNames');
+end;
+
+procedure TASQLite3DB.GetPrimaryKeys(TableName: string; List: TStrings);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+// PK: ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ Temp : string;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetPrimaryKeys ' + Tablename);
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar('PRAGMA table_info("' + TableName + '");'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr, 6); // headers can be ignored
+ for i := 1 to RowCount do
+ begin
+ Inc(ResultStr);
+ Temp := PAnsiChar(ResultStr^); // the second field contains the fieldname
+ Inc(ResultStr, 4);
+ // the last field reveils a indicator for primary key
+ if PAnsiChar(ResultStr^) = '1' then
+ List.Add(Temp);
+ Inc(ResultStr);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetPrimaryKeys');
+end;
+
+procedure TASQLite3DB.GetTableInfo(TableName: string; List: TList);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ Field : TASQLite3Field;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetTableInfo ' + Tablename);
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar('PRAGMA table_info("' + TableName + '");'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+ ResultStr := ResultPtr;
+ while List.Count > 0 do
+ begin
+ TASQLite3Field(List[0]).Free;
+ List.Delete(0);
+ end;
+ List.Clear;
+
+ Inc(ResultStr,6);
+ for i := 1 to RowCount do
+ begin
+ Field := TASQLite3Field.Create;
+ with Field do
+ begin
+ FieldNumber := StrToIntX(PAnsiChar(ResultStr^));
+ Inc(ResultStr);
+ FieldName := PAnsiChar(ResultStr^);
+ Inc(ResultStr);
+ FieldType := PAnsiChar(ResultStr^);
+ Inc(ResultStr);
+ FieldNN := StrToIntX(PAnsiChar(ResultStr^));
+ Inc(ResultStr);
+ FieldDefault := PAnsiChar(ResultStr^);
+ Inc(ResultStr);
+ FieldPK := StrToIntX(PAnsiChar(ResultStr^));
+ Inc(ResultStr);
+ end;
+ List.Add(Field);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetTableInfo');
+end;
+
+// retrieves the user version
+function TASQLite3DB.GetUserVersion(database : string=''): integer;
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+begin
+ DebugEnter('TASQLite3DB.GetTableIndexNames');
+ GetUserVersion := -1;
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ if database <> '' then database := database +'.';
+ SQLite3_GetTable(DBHandle, PAnsiChar(
+ 'PRAGMA '+Database+'user_version'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+ ResultStr := ResultPtr;
+ Inc(ResultStr);
+ GetUserVersion := StrToIntX(PAnsiChar(ResultStr^));
+ end;
+end;
+
+// sets user version.
+procedure TASQLite3DB.SetUserVersion(Version : integer; Database : string='');
+begin
+ if Database <> '' then Database := Database +'.';
+ SQLite3_ExecSQL('PRAGMA '+Database+'user_version='+IntToStr(Version));
+end;
+
+procedure TASQLite3DB.GetTableIndexNames(TableName: string; List: TStrings);
+var
+ ResultPtr : Pointer;
+ ResultStr : ^Pointer;
+ RowCount : cardinal;
+ ColCount : cardinal;
+ ErrMsg : PAnsiChar;
+ i : integer;
+begin
+ DebugEnter('TASQLite3DB.GetTableIndexNames');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ SQLite3_GetTable(DBHandle, PAnsiChar(
+ 'PRAGMA index_list("' + TableName + '");'),
+ ResultPtr, RowCount, ColCount, ErrMsg);
+
+ ResultStr := ResultPtr;
+ List.Clear;
+ Inc(ResultStr, 4); // Skip header + 1st col.
+ for i := 1 to RowCount do
+ begin
+ List.Insert(0, PAnsiChar(ResultStr^));
+ Inc(ResultStr, 3);
+ end;
+ if Assigned(ResultPtr) then SQLite3_FreeTable(ResultPtr);
+ end;
+ DebugLeave('TASQLite3DB.GetTableIndexNames');
+end;
+
+procedure TASQLite3DB.DBConnect(Connected: boolean);
+var
+ ErrMsg : PAnsiChar;
+ DBMS : string;
+ rv : integer;
+ i : integer; // GPA
+begin
+ DebugEnter('TASQLite3DB.DBConnect');
+
+// ShowMessage(FCharEnc);
+ if (CompareText(FCharEnc,'utf8')=0) or (FCharEnc='') then
+ FUtf8 := true
+ else
+ FUtf8 := false;
+
+ if (Connected) and (FDatabase = '') then
+ begin
+ DebugLeave('TASQLite3DB.DBConnect Exit');
+ raise AsgError.Create('Missing database property');
+ SQLite3_FreeMem(ErrMsg);
+ FConnected := false;
+ exit;
+ end;
+
+ if not Connected then
+ begin
+ if FConnected then
+ begin
+ if DLLHandle <> 0 then
+ begin
+ Debug('freeing sqlite dll');
+ if Assigned(FBeforeDisconnect) then
+ FBeforeDisconnect(self);
+ // if closed then all Datasets must be closed (GPA)
+ if Assigned(Owner) Then
+ For I:=0 to Owner.ComponentCount-1 do
+ if Owner.Components[I] is TASQLite3BaseQuery Then
+ TASQLite3BaseQuery(Owner.Components[I]).Active:=False;
+
+ if Assigned(@SQLite3_Close) then
+ SQLite3_Close(DBHandle);
+
+ {$IFNDEF SQLite_Static}
+ FreeLibrary(DLLHandle);
+ {$ENDIF}
+
+ DLLHandle := 0;
+ if Assigned(FAfterDisconnect) then
+ FAfterDisconnect(self);
+ end;
+ FConnected := false;
+ DebugLeave('TASQLite3DB.DBConnect');
+ exit;
+ end
+ end
+ else
+ begin
+ if CompareText(':memory:', Database) <> 0 then begin
+ if DefaultDir <> '' then begin
+ if DefaultDir[Length(DefaultDir)] <> '\' then
+ DefaultDir := DefaultDir + '\';
+ DBMS := DefaultDir + Database;
+ end else begin
+ if Pos('\', Database) = 0 then
+ DBMS := GetCurrentDir + '\' + DataBase
+ else
+ DBMS := Database;
+ end;
+
+ if FMustExist then begin
+ if not FileExists(DBMS) then begin
+ DebugLeave('TASQLite3DB.DBConnect ' + 'Database ' + DBMS + ' does not exist');
+ raise EDatabaseError.Create('Database ' + DBMS + ' does not exist');
+ end;
+ end;
+ end else DBMS := Database; // in memory database
+
+ if DLLHandle = 0 then
+ begin
+ if not LoadLibs then
+ begin
+ FConnected := false;
+ DebugLeave('TASQLite3DB.DBConnect ' + 'Could Not load SQLite Library');
+ raise AsgError.Create('Could not load SQLite library');
+ end;
+ end;
+
+ FConnected := true;
+ FVersion := SQLite3_LibVersion;
+
+ DBHandle := nil;
+ ErrMsg := nil;
+ if Assigned(FBeforeConnect) then
+ FBeforeConnect(self);
+
+{$IFDEF ASQLITE_D6PLUS}
+ if Assigned(@SQLite3_Open) then
+ if FVersion > '3.2.5' then
+ rv := SQLite3_Open(PAnsiChar(AnsiToUTF8(DBMS)), DBHandle)
+ else
+{$endif}
+ rv := SQLite3_Open(PAnsiChar(DBMS), DBHandle);
+
+ if Assigned(FAfterConnect) then
+ FAfterConnect(self);
+
+ if DBHandle = nil then
+ FConnected := false;
+
+ if Assigned(FASQLitePragma) then
+ ExecPragma;
+
+ FLastError := ErrMsg;
+ if ErrMsg <> nil then
+ SQLite3_FreeMem(ErrMsg);
+ // GPA Added to execute InlineSQL in case of use Connected:=True instead of Open
+ if ExecuteInlineSQL and Assigned(FInlineSQL) then Try // GPA
+ ExecStartTransaction(''); // GPA
+ SQLite3_ExecSQL(FInlineSQL.FSQL.Text); // GPA
+ Commit; // GPA
+ finally // GPA
+ ExecuteInlineSQL:=False; //GPA Assure just one execution in case of reopen
+ end; // GPA
+ end;
+ DebugLeave('TASQLite3DB.DBConnect');
+end;
+
+function TASQLite3DB.RowsAffected: integer;
+begin
+ DebugEnter('TASQLite3DB.RowsAffected');
+ if not FConnected then
+ Result := -1
+ else
+ Result := SQLite3_Changes(DBHandle);
+ DebugLeave('TASQLite3DB.RowsAffected');
+end;
+
+//------------------------------------------------------------------------------
+// By Ralf, The Delphi Inspiration
+//------------------------------------------------------------------------------
+
+function TableExistsCallback(UserData: Pointer; ColumnCount: Integer; ColumnValues, ColumnNames: PPointer): Integer; cdecl;
+begin
+ if AnsiStrIComp(UserData, ColumnValues^) <> 0 then
+ Result := 0
+ else
+ Result := 1; // Abort
+end;
+
+//------------------------------------------------------------------------------
+
+function TASQLite3DB.TableExists(const ATableName: AnsiString): Boolean;
+var
+ ErrMsg: PAnsiChar;
+begin
+ try
+ { No WHERE clause is used in the SQL statement below.
+ Instead, the callback function compares without case sensitivity. }
+ Result := SQLite3_Exec(DBHandle, 'SELECT name FROM sqlite_master',
+ TableExistsCallback,Pointer(ATableName), ErrMsg) = SQLITE_ABORT;
+ finally
+ if ErrMsg <> nil then
+ begin
+ SQLite3_FreeMem(ErrMsg);
+ ShowError;
+ end;
+ end;
+end;
+
+//------------------------------------------------------------------------------
+procedure TASQLite3DB.ExecStartTransaction(TransType: string);
+begin
+// if no transaction type available then use default from asqlitedb
+ if (TransType = '') then TransType := FTransactionType;
+
+ if ((TransType = '') or (CompareText(TransType, 'DEFAULT') = 0)) then StartTransaction
+ else if (CompareText(TransType, 'DEFERRED') = 0) then StartDeferredTransaction
+ else if (CompareText(TransType, 'IMMEDIATE') = 0) then StartImmediateTransaction
+ else if (CompareText(TransType, 'EXCLUSIVE') = 0) then StartExclusiveTransaction
+ else StartTransaction;
+end;
+
+procedure TASQLite3DB.StartTransaction;
+begin
+ DebugEnter('TASQLite3DB.StartTransaction');
+ if not FConnected then // open database if necessary
+ Connected := true; // trigger the 'dbconnect' event
+ if FConnected then SQLite3_ExecSQL('begin transaction');
+ DebugLeave('TASQLite3DB.StartTransaction');
+end;
+
+procedure TASQLite3DB.StartDeferredTransaction;
+begin
+ if not FConnected then // open database if necessary
+ Connected := true; // trigger the 'dbconnect' event
+ if FConnected then SQLite3_ExecSQL('begin deferred transaction');
+end;
+
+procedure TASQLite3DB.StartImmediateTransaction;
+begin
+ if not FConnected then // open database if necessary
+ Connected := true; // trigger the 'dbconnect' event
+ if FConnected then SQLite3_ExecSQL('begin immediate transaction');
+end;
+
+procedure TASQLite3DB.StartExclusiveTransaction;
+begin
+ if not FConnected then // open database if necessary
+ Connected := true; // trigger the 'dbconnect' event
+ if FConnected then SQLite3_ExecSQL('begin exclusive transaction');
+end;
+
+procedure TASQLite3DB.Open;
+begin
+ DebugEnter('TASQLite3DB.Open');
+ Connected := true;
+
+ if DLLHandle = 0 then
+ Connected := false;
+
+ DebugLeave('TASQLite3DB.Open');
+end;
+
+procedure TASQLite3DB.Close;
+begin
+ DebugEnter('TASQLite3DB.Close');
+ Connected := false;
+ DebugLeave('TASQLite3DB.Close');
+end;
+
+procedure TASQLite3DB.ExecPragma;
+var
+ Cmd : string;
+begin
+ DebugEnter('TASQLite3DB.ExecPragma');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ begin
+ if FASQLitePragma.FTempCacheSize <> 0 then
+ begin
+ cmd := FASQLitePragma.GetTempCacheSize;
+ SQLite3_ExecSQL(cmd);
+ end;
+ if FASQLitePragma.FDefaultCacheSize <> 0 then
+ begin
+ cmd := FASQLitePragma.GetDefaultCacheSize;
+ SQLite3_ExecSQL(cmd);
+ end;
+
+ if FASQLitePragma.FDefaultSynchronous <> '' then
+ begin
+ cmd := FASQLitePragma.GetDefaultSynchronous;
+ SQLite3_ExecSQL(cmd);
+ end;
+
+ if FASQLitePragma.FDefaultTempStore <> '' then
+ begin
+ cmd := FASQLitePragma.GetDefaultTempStore;
+ SQLite3_ExecSQL(cmd);
+ end;
+
+ if FASQLitePragma.FTempStore <> '' then
+ begin
+ cmd := FASQLitePragma.GetTempStore;
+ SQLite3_ExecSQL(cmd);
+ end;
+
+ if FASQLitePragma.FSynchronous <> '' then
+ begin
+ cmd := FASQLitePragma.GetSynchronous;
+ SQLite3_ExecSQL(cmd);
+ end;
+ end;
+ DebugLeave('TASQLite3DB.ExecPragma');
+end;
+
+procedure TASQLite3DB.Commit;
+begin
+ DebugEnter('TASQLite3DB.Commit');
+ if not FConnected then
+ Connected := true;
+ if FConnected then SQLite3_ExecSQL('commit transaction');
+ DebugLeave('TASQLite3DB.Commit');
+end;
+
+procedure TASQLite3DB.RollBack;
+begin
+ DebugEnter('TASQLite3DB.RollBack');
+ if not FConnected then
+ Connected := true;
+ if FConnected then
+ SQLite3_ExecSQL('rollback transaction');
+ DebugLeave('TASQLite3DB.RollBack');
+end;
+
+constructor TASQLite3DB.Create(AOwner: TComponent);
+//var fn : TextFile;
+begin
+ DebugEnter('TASQLite3DB.Create');
+ Connected := false;
+ ASQLiteLog := nil;
+ ASQLitePragma := nil;
+ inherited Create(AOwner);
+ DebugLeave('TASQLite3DB.Create');
+end;
+
+destructor TASQLite3DB.Destroy;
+//var fn : TextFile;
+begin
+ DebugEnter('TASQLite3DB.Destroy');
+ FConnected := false;
+ ASQLiteLog := nil;
+ ASQLitePragma := nil;
+ inherited Destroy;
+ DebugLeave('TASQLite3DB.Destroy');
+end;
+
+//============================================================================== TASQLite3BaseQuery
+
+function TASQLite3BaseQuery.CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer; //MS
+begin
+ result := sign(integer(Bookmark1^)-integer(Bookmark2^));
+end;
+
+// Is one or more fields a calculated field? (John Lito)
+function TASQLite3BaseQuery.CalcFieldInList(const List: string): Boolean;
+var i: Integer;
+ Fields: TList;
+begin
+ if Pos(';', List) <> 0 then
+ begin
+ Result := False;
+ Fields := TList.Create;
+ try
+ GetFieldList(Fields, List);
+ for i := 0 to Fields.Count - 1 do
+ if TField(Fields[I]).FieldKind in [fkCalculated, fkLookup] then Result := True;
+ finally
+ Fields.Free;
+ end;
+ end else
+ Result := (FieldByName(List).FieldKind in [fkCalculated, fkLookup]);
+end;
+
+function TASQLite3BaseQuery.Lookup(const KeyFields: string; const KeyValues: Variant;
+ const ResultFields: string): Variant;
+var OldState: TDataSetState;
+begin
+ Result := '';
+ if Locate(KeyFields, KeyValues, []) then
+ begin
+ if CalcFieldInList(ResultFields) then GetCalcFields(PChar(FResult.GetData(FCurRec)));
+ OldState := SetTempState(dsFilter);
+ try
+ Result := FieldValues[ResultFields];
+ finally
+ RestoreState(OldState);
+ end;
+ end;
+end;
+
+{
+ support routine for UTF16
+}
+
+procedure TASQlite3BaseQuery.DataConvert(Field: TField; Source, Dest: Pointer;
+ ToNative: Boolean);
+const x: Word = 0;
+var L: Integer;
+begin
+ try
+ case Field.DataType of
+ ftWideString:
+ begin
+ if ToNative then
+ begin
+ L := Length(PWideChar(Source^));
+ if (L <= 0) then
+ Move(x,Dest^,2)
+ else
+ begin
+ if (L <= Field.Size) then
+ Move(PWideChar(Source^)^, Dest^, (L+1)*2)
+ else
+ begin
+ Move(PWideChar(Source^)^, Dest^, Field.Size*2);
+ //Move(x,(PChar(Dest)+Field.Size-(Field.Size mod 2))^,2+(Field.Size mod 2));
+ Move(x, (PChar(Dest)+Field.Size*2 - 2)^, 2);
+ end;
+ end;
+ end
+ else
+ begin
+ WideString(Dest^) := WideString(PWideChar(Source));
+ end;
+ end;//ftWideString
+ else
+ begin
+ inherited DataConvert(Field, Source, Dest, ToNative);
+ end
+ end;//case
+ finally
+ end;
+end;//DataConvert
+
+
+{
+ Register detail dataset for a master-detail relationship
+}
+procedure TASQLite3BaseQuery.RegisterDetailDataset(DetailDataSet: TASQLite3BaseQuery);
+var
+ i : integer;
+begin
+ DebugEnter('TASQLite3BaseQuery.RegisterDetailDataset');
+ try
+ for i := 0 to DetailList.Count - 1 do
+ if DetailList[i] = DetailDataset then exit;
+ DetailList.Add(DetailDataSet);
+ finally
+ DebugLeave('TASQLite3BaseQuery.RegisterDetailDataset');
+ end;
+end;
+
+{ compatibility isue }
+procedure TASQLite3BaseQuery.SQLiteMasterChanged;
+begin
+ DebugEnter('TASQLite3BaseQuery.SQLiteMasterChanged');
+ DebugLeave('TASQLite3BaseQuery.SQLiteMasterChanged');
+end;
+
+{
+ notify that the master has changed and a requery on the detail has
+ to be done
+}
+
+procedure TASQLite3BaseQuery.NotifySQLiteMasterChanged;
+var
+ i : integer;
+begin
+ DebugEnter('TASQLite3BaseQuery.NotifySQLiteMasterChanged');
+ for i := 0 to DetailList.Count - 1 do
+ begin
+ TASQLite3BaseQuery(DetailList[i]).SQLiteMasterChanged;
+ end;
+ DebugLeave('TASQLite3BaseQuery.NotifySQLiteMasterChanged');
+end;
+
+{
+ This function returns a string representing the value of the specified field
+ in SQLite format. Floating point values always use '.' as a decimal separator.
+ Date values use 'yyyy-mm-dd' format, unless SQLiteDateFormat is set to false,
+ which results in using TableDateFormat, or system dependent ShortDateFormat
+ if TableDateFormat is not set. Same goes for DateTime and Time values, for
+ which default formats are 'yyyy-mm-ss hh:nn:ss' and 'hh:nn:ss.zzz', respectively.
+ Setting SQLiteDateFormat to false is discouraged.
+ Result is quoted when necessary.
+}
+// added by Donnie
+
+function TASQLite3BaseQuery.GetFieldValue(const AField: TField; const Blobs: TList = nil): string;
+var
+ MS: TMemoryStream;
+ DateTimeFormat: string;
+begin
+ if (AField.DataSet <> Self) then
+ raise EInvalidArgument.Create('Only own fields are accepted');
+ case AField.DataType of
+ ftString:
+{$IFDEF ASQLITE_D6PLUS}
+ if Connection.FUtf8 then
+ Result := QuotedStr(UTF8Encode(VarToWideStr(AField.Value)))
+ else
+{$endif}
+ Result := QuotedStr(AField.AsString);
+ ftSmallint, ftInteger, ftWord:
+ Result := AField.AsString;
+ ftFloat:
+ if DecimalSeparator <> '.' then
+{$IFDEF ASQLITE_D6PLUS}
+ Result := AnsiReplaceStr(AField.AsString, DecimalSeparator, '.')
+{$else}
+ Result := StringReplace(AField.AsString, DecimalSeparator, '.', [rfReplaceAll])
+{$endif}
+ else
+ Result := AField.AsString;
+ ftDate: begin
+ if FSQLiteDateFormat then
+ DateTimeFormat := 'yyyy"-"mm"-"dd'
+ else if TableDateFormat <> '' then
+ DateTimeFormat := TableDateFormat
+ else
+ DateTimeFormat := ShortDateFormat;
+ Result := QuotedStr(FormatDateTime(DateTimeFormat, AField.AsDateTime));
+ end;
+ ftDateTime: begin
+ if FSQLiteDateFormat then
+ DateTimeFormat := 'yyyy"-"mm"-"dd" "hh":"nn":"ss"."zzz'
+ else if TableDateFormat <> '' then
+ DateTimeFormat := TableDateFormat
+ else
+ DateTimeFormat := ShortDateFormat + '" "' + LongTimeFormat;
+ Result := QuotedStr(FormatDateTime(DateTimeFormat, AField.AsDateTime));
+ end;
+ ftTime: begin
+ if FSQLiteDateFormat then
+ DateTimeFormat := 'hh":"nn":"ss"."zzz'
+ else if TableDateFormat <> '' then
+ DateTimeFormat := TableDateFormat
+ else
+ DateTimeFormat := LongTimeFormat;
+ Result := QuotedStr(FormatDateTime(DateTimeFormat, AField.AsDateTime));
+ end;
+ ftBlob, ftGraphic, ftMemo, ftFmtMemo: begin
+ if Blobs = nil then
+ raise EInvalidArgument.Create('No place to store a blob field');
+ MS := TMemoryStream.Create;
+ TBlobField(AField).SaveToStream(MS);
+ Result := #2 + IntToStr(1 + Blobs.Add(MS));
+ end
+ else
+ Result := QuotedStr(AField.AsString);
+ end;
+end; // GetFieldValue
+
+{
+ Unpack the buffer (if necessary) and convert it to a valid representation
+ this is necessary for sqlite since it it typeless. If typed has been
+ defined then the fields have to be converted to the appropiate datatype
+}
+
+function TASQLite3BaseQuery.UnpackBuffer(Buffer: PAnsiChar; FieldType: TFieldType): TConvertBuffer;
+var
+ TempInt : integer;
+ TempDouble : double;
+ TempBool : wordbool;
+ TempT : TDateTimeRec;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3BaseQuery.UnpackBuffer: ' + Buffer);
+{$ENDIF}
+ case FieldType of
+ ftString:
+ begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.UnpackBuffer');
+{$ENDIF}
+ exit;
+ end;
+ ftInteger, ftSmallInt:
+ begin
+ TempInt := StrToIntX(Buffer);
+ Move(TempInt, result, sizeof(TempInt));
+ end;
+ ftTime:
+ begin
+ TempT := DateTimeToNative(FieldType, StrToDateTimeX(Buffer));
+ Move(TempT, result, sizeof(TDateTime));
+ end;
+ ftDate:
+ begin
+ TempT := DateTimeToNative(FieldType, StrToDateTimeX(Buffer));
+ Move(TempT, result, sizeof(TDateTime));
+ end;
+ ftDateTime:
+ begin
+ if FSQLiteDateFormat then // aducom
+ TempT := DateTimeToNative(FieldType, YYYYMMDDParser(Buffer)) // jpierce
+ else
+ TempT := DateTimeToNative(FieldType, StrToDateTimeX(Buffer));
+ Move(TempT, result, sizeof(TDateTime));
+ end;
+ ftFloat, ftBCD, ftCurrency:
+ begin
+ TempDouble := StrToFloatX(FloatParser(Buffer));
+ Move(TempDouble, result, sizeof(TempDouble));
+ end;
+
+{$IFDEF ASQLITE_D6PLUS}
+ ftBoolean:
+ begin
+ TempBool := StrToBool(Buffer);
+ Move(TempBool, result, sizeof(TempBool));
+ end;
+{$ENDIF}
+ ftMemo, ftGraphic, ftBlob, ftFMTMemo: // pointer to stream
+ begin
+ TempInt := StrToInt(Buffer);
+ Move(TempInt, result, sizeof(TempInt));
+ end;
+ end;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.UnpackBuffer');
+{$ENDIF}
+end;
+
+{ This method is called by TDataSet.Open and also when FieldDefs need to
+ be updated (usually by the DataSet designer). Everything which is
+ allocated or initialized in this method should also be freed or
+ uninitialized in the InternalClose method. }
+
+constructor TASQLite3BaseQuery.Create(AOwner: TComponent);
+begin
+ DebugEnter('TASQLite3BaseQuery.Create');
+ MaxStrLen := 0;
+ FSQL := TStringList.Create;
+ FParams := TParams.Create(Self);
+ DetailList := TList.Create;
+ FConnection := nil;
+ FResult := nil;
+ GetMem(ResultStr, MaxBuf);
+ SQLCursor := true;
+ SQLiteDateFormat := true;
+ TypeLess := false;
+ ReadOnly := false;
+ inherited;
+ DebugLeave('TASQLite3BaseQuery.Create');
+end;
+
+function TASQLite3BaseQuery.CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream;
+begin
+ Result := TASQLite3BlobStream.Create(Field as TBlobField, Mode);
+end;
+
+destructor TASQLite3BaseQuery.Destroy;
+begin
+ DebugEnter('TASQLite3BaseQuery.Destroy');
+// Close;
+// inherited Destroy;
+
+ if Assigned(FSQL) then begin
+ TStringList(FSQL).OnChange := nil;
+ FSQL.Free;
+ end;
+ FSQL := nil;
+
+ if Assigned(FParams) then
+ begin
+ FParams.Free;
+ FParams := nil;
+ end;
+
+ if Assigned(DetailList) then
+ DetailList.Free;
+ DetailList := nil;
+
+ if Assigned(FConnection) then
+ FConnection := nil;
+
+ if Assigned(ResultStr) then
+ FreeMem(ResultStr);
+ ResultStr := nil;
+
+ if Assigned(FResult) then
+ FResult.Free;
+ FResult := nil;
+
+ inherited;
+ DebugLeave('TASQLite3BaseQuery.Destroy');
+end;
+
+procedure TASQLite3BaseQuery.StartTransaction;
+begin
+ if Assigned(FConnection) then
+ FConnection.ExecStartTransaction(FTransActionType);
+end;
+
+procedure TASQLite3BaseQuery.StartDeferredTransaction;
+begin
+ if Assigned(FConnection) then
+ FConnection.StartDeferredTransaction;
+end;
+
+procedure TASQLite3BaseQuery.StartImmediateTransaction;
+begin
+ if Assigned(FConnection) then
+ FConnection.StartImmediateTransaction;
+end;
+
+procedure TASQLite3BaseQuery.StartExclusiveTransaction;
+begin
+ if Assigned(FConnection) then
+ FConnection.StartExclusiveTransaction;
+end;
+
+procedure TASQLite3BaseQuery.Commit;
+begin
+ if Assigned(FConnection) then
+ FConnection.Commit;
+end;
+
+procedure TASQLite3BaseQuery.RollBack;
+begin
+ if Assigned(FConnection) then
+ FConnection.RollBack;
+end;
+
+//function TASQLite3BaseQuery.LocateNearest(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean;
+ //begin
+ //end;
+
+// implementation by J Bannon, implementing partial key too.
+function TASQLite3BaseQuery.Locate(const KeyFields: string;
+ const KeyValues: variant; Options: TLocateOptions): boolean;
+//loCaseInsensitive, loPartialKey
+var
+ bOk : boolean;
+ i, j, p : integer;
+ Fields, SearchValue: string; //Variable SearchValue added by bobmitch
+ FieldList : TStringList;
+ DebugStr : string;
+ DoEnableControls : boolean;
+begin
+ DebugEnter('TASQLite3BaseQuery.Locate ' + Keyfields);
+ DoEnableControls := not ControlsDisabled; {used to determine whether to EnableControls at end of function}
+ DisableControls;
+ FieldList := TStringList.Create;
+ bOk := false;
+ try
+ Fields := KeyFields;
+ p := pos(';', Fields);
+ while p > 0 do
+ begin
+ FieldList.Add(Copy(Fields, 1, p - 1));
+ System.Delete(Fields, 1, p);
+ p := pos(';', Fields);
+ end;
+ if Fields <> '' then
+ FieldList.Add(Fields);
+
+ First;
+ for i := 1 to FResult.Data.Count do
+ begin
+ SetRecNo(i);
+ bOk := true;
+ for j := 0 to FieldList.Count - 1 do
+ begin
+ if loCaseInsensitive in Options then
+ begin
+ if FieldList.Count = 1 then
+ begin //Lines 2303 - 2338 by bobmitch, replaces original lines 2303 - 2336
+ SearchValue := VarToStr(KeyValues);
+ if (loPartialKey in Options) and (Length(SearchValue) <= Length(FieldByName(FieldList[j]).AsString)) then
+ bOk := CompareText(Copy(FieldByName(FieldList[j]).AsString, 1, Length(SearchValue)), SearchValue) = 0
+ else
+ bOk := CompareText(FieldByName(FieldList[j]).AsString, SearchValue) = 0
+ end {end loCaseInsensitive in Options AND FieldList.Count = 1}
+ else
+ begin
+ SearchValue := VarToStr(KeyValues[j]);
+ if (loPartialKey in Options) and (Length(SearchValue) <= Length(FieldByName(FieldList[j]).AsString)) then
+ bOk := CompareText(Copy(FieldByName(FieldList[j]).AsString, 1, Length(SearchValue)), SearchValue) = 0
+ else
+ bOk := CompareText(FieldByName(FieldList[j]).AsString, SearchValue) = 0
+ end {end loCaseInsensitive in Options AND FieldList.Count greater than 1}
+ end {end loCaseInsensitive in Options}
+ else
+ begin {begin loCaseInsensitive NOT in Options}
+ if FieldList.Count = 1 then
+ begin
+ SearchValue := VarToStr(KeyValues);
+ if (loPartialKey in Options) and (Length(SearchValue) <= Length(FieldByName(FieldList[j]).AsString)) then
+ bOk := Copy(FieldByName(FieldList[j]).AsString, 1, Length(SearchValue)) = SearchValue
+ else
+ bOk := FieldByName(FieldList[j]).AsString = SearchValue
+ end {end loCaseInsensitive NOT in Options AND FieldList.Count = 1}
+ else
+ begin
+ SearchValue := VarToStr(KeyValues[j]);
+ if (loPartialKey in Options) and (Length(SearchValue) <= Length(FieldByName(FieldList[j]).AsString)) then
+ bOk := Copy(FieldByName(FieldList[j]).AsString, 1, Length(SearchValue)) = SearchValue
+ else
+ bOk := FieldByName(FieldList[j]).AsString = SearchValue
+ end; {end loCaseInsensitive NOT in Options AND FieldList.Count greater than 1}
+ end; {end loCaseInsensitive NOT in Options}
+ if bOk = false then
+ break;
+ end; {end for j := 0 to FieldList.Count - 1}
+ if bOk then
+ begin
+ break;
+ end;
+ end; {end for i := 1 to FResult.Data.Count}
+ if bOk then
+ begin
+ Locate := true;
+ DebugStr := 'TASQLite3BaseQuery.Locate true';
+ end
+ else
+ begin
+ Locate := false;
+ DebugStr := 'TASQLite3BaseQuery.Locate false';
+ end;
+ finally
+ FieldList.Free;
+ if DoEnableControls then {restore original state of the controls}
+ EnableControls;
+ DebugLeave(DebugStr);
+ end;
+end;
+
+
+function TASQLite3BaseQuery.GetDataSource: TDataSource;
+
+begin
+ DebugEnter('TASQLite3BaseQuery.GetDataSource');
+ Result := FMasterSource;
+ DebugLeave('TASQLite3BaseQuery.GetDataSource');
+end;
+
+procedure TASQLite3BaseQuery.SetSQLiteDateFormat(const Value: boolean);
+begin
+ FSQLiteDateFormat := Value;
+end;
+
+procedure TASQLite3BaseQuery.SetDataSource(Value: TDataSource);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetDataSource');
+ if IsLinkedTo(Value) then
+ DatabaseError('circular references are not allowed', Self);
+ FMasterSource := Value;
+ DebugLeave('TASQLite3BaseQuery.SetDataSource');
+end;
+
+function TASQLite3BaseQuery.GetMasterFields: string;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetMasterFields');
+ Result := FMasterFields; //FMasterLink.FieldNames;
+ DebugLeave('TASQLite3BaseQuery.GetMasterFields');
+end;
+
+procedure TASQLite3BaseQuery.SetMasterFields(const Value: string);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetMasterFields ' + Value);
+ FMasterFields := Value; // FMasterLink.FieldNames := Value;
+ DebugLeave('TASQLite3BaseQuery.SetMasterFields');
+end;
+ //Checks the State and Results a defined Buffer;
+
+function TASQLite3BaseQuery.GetActiveBuffer(var Buffer: PAnsiChar): boolean;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3BaseQuery.GetActiveBuffer');
+{$ENDIF}
+ case State of
+ dsBrowse: if IsEmpty then
+ Buffer := nil
+ else
+ Buffer := ActiveBuffer;
+
+ dsEdit: Buffer := ActiveBuffer;
+ dsInsert: Buffer := ActiveBuffer;
+ dsFilter: Buffer := ActiveBuffer; //FFilterBuffer;
+ dsCalcFields: Buffer := CalcBuffer;
+ else
+ Buffer := nil;
+ end;
+ Result := Buffer <> nil;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.GetActiveBuffer ' + PAnsiChar(Buffer));
+{$ENDIF}
+end;
+
+function TASQLite3BaseQuery.GetNativeFieldSize(FieldNo: integer): integer;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetNativeFieldSize');
+ Result := 0;
+ case FieldDefs.Items[FieldNo - 1].Datatype of
+ ftString: Result := FieldDefs.Items[FieldNo - 1].Size + 1;
+ ftWideString: Result := FieldDefs.Items[FieldNo - 1].Size + 1;
+ ftInteger, ftSmallInt, ftDate, ftTime: Result := 12;
+ ftDateTime: Result := 20;
+ ftFloat, ftBCD, ftCurrency: Result := 12;
+ ftBoolean: Result := 12;
+ ftGraphic, ftMemo, ftBlob, ftFmtMemo: Result := 12; // space for memory handles
+ else
+ raise AsgError.Create('Fieldtype of Field "' + FieldDefs.Items[FieldNo - 1].Name +
+ '" not supported!');
+ end;
+ DebugLeave('TASQLite3BaseQuery.GetNativeFieldSize');
+end;
+
+function TASQLite3BaseQuery.GetFieldSize(FieldNo: integer): integer;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3BaseQuery.GetFieldSize');
+{$ENDIF}
+ // try
+ Result := 0;
+ case FieldDefs.Items[FieldNo - 1].Datatype of
+ ftString: Result := FieldDefs.Items[FieldNo - 1].Size+ 1 ; // GPA - Warning UTF-8 length can be potentially > Ansi length
+ ftWideString: Result := FieldDefs.Items[FieldNo - 1].Size+ 1 ;
+ ftInteger, ftSmallInt, ftDate, ftTime: Inc(Result, sizeof(integer));
+ ftDateTime: Inc(Result, sizeof(TDateTime));
+ ftFloat, ftBCD, ftCurrency: Inc(Result, sizeof(double));
+ ftBoolean: Inc(Result, sizeof(wordbool));
+ ftGraphic, ftMemo, ftBlob, ftFmtMemo: Inc(Result, sizeof(pointer));
+ else
+ raise AsgError.Create('Fieldtype of Field "' + FieldDefs.Items[FieldNo - 1].Name +
+ '" not supported!');
+ end;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.GetFieldSize');
+{$ENDIF}
+end;
+
+function TASQLite3BaseQuery.GetFieldSize(Field: TField): integer;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLiteBaseQuery.GetFieldSize');
+{$ENDIF}
+ // try
+ Result := 0;
+ case Field.DataType of
+ ftString: Result := Field.Size + 1;
+ ftWideString: Result := Field.Size + 1;
+ ftInteger, ftSmallInt, ftDate, ftTime: Inc(Result, sizeof(integer));
+ ftDateTime: Inc(Result, sizeof(TDateTime));
+ ftFloat, ftBCD, ftCurrency: Inc(Result, sizeof(double));
+ ftBoolean: Inc(Result, sizeof(wordbool));
+ ftGraphic, ftMemo, ftBlob, ftFmtMemo: Inc(Result, sizeof(pointer));
+ else
+ raise AsgError.Create('Fieldtype of Field "' + Field.FieldName +
+ '" not supported!');
+ end;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLiteBaseQuery.GetFieldSize');
+{$ENDIF}
+end;
+
+function TASQLite3BaseQuery.GetFieldOffset(FieldNo: integer): integer;
+var
+ i : integer;
+ Offset : integer;
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3BaseQuery.GetFieldOffset');
+{$ENDIF}
+ Offset := 0;
+ if FieldNo > 1 then
+ begin
+ for i := 1 to FieldNo - 1 do
+ OffSet := OffSet + GetFieldSize(i);
+ end;
+ GetFieldOffset := Offset;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.GetFieldOffset');
+{$ENDIF}
+end;
+
+function TASQLite3BaseQuery.GetCalcFieldOffset(Field: TField): integer;
+var
+ i : integer;
+ Offset : integer;
+begin
+
+// calcfieldoffset is appended to record (after bookmarkinfo)
+
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLiteBaseQuery.GetCalcFieldOffset');
+{$ENDIF}
+ Offset := FRecBufSize + sizeof(TRecInfo); // startlocation of offsetbuffer
+ for i := 0 to FieldList.Count - 1 do begin
+ if CompareText(FieldList[i].FieldName, Field.FieldName) = 0 then begin
+ GetCalcFieldOffset := Offset;
+ exit;
+ end;
+ if FieldList[i].Calculated then
+ OffSet := OffSet + GetFieldSize(Field);
+ end;
+ GetCalcFieldOffset := Offset;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLiteBaseQuery.GetCalcFieldOffset');
+{$ENDIF}
+end;
+
+procedure TASQLite3BaseQuery.SetSQL(const Value: TStrings);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetSQL');
+ Close;
+ if Assigned(FSQL) then
+ FSQL.Assign(Value)
+ else
+ FSQL := Value;
+ DebugLeave('TASQLite3BaseQuery.SetSQL');
+end;
+
+procedure TASQLite3BaseQuery.LoadQueryData;
+begin
+ DebugEnter('TASQLite3BaseQuery.LoadQueryData');
+ if Connection.FConnected then begin
+ Connection.SQLite3_execute(Connection.DBHandle, PAnsiChar(FPrepared), FParams, self);
+ end;
+ DebugLeave('TASQLite3BaseQuery.LoadQueryData');
+end;
+
+procedure TASQLite3BaseQuery.InternalOpen;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalOpen');
+{$IFDEF ASQLITE_D6PLUS}
+ if UniDirectional then
+ SetUnidirectional(true)
+ else
+ SetUniDirectional(false);
+{$endif}
+ MaxStrLen := 0;
+ if (Connection = nil) then
+ begin // check to see if a valid database
+ raise AsgError.Create('no database connection');
+ end
+ else
+ begin
+
+ if Connection.Connected = false then // open database if necessary
+ Connection.Connected := true; // trigger the 'dbconnect' event
+
+ if (Connection.Connected) and (Connection.DLLHandle <> 0) then
+ if Assigned(MasterSource) then
+ begin // notify master about existance!
+ if (MasterSource.DataSet <> nil) then
+ begin
+ if CompareText(Copy(MasterSource.DataSet.ClassName, 1, 9), 'TASQLite3') = 0 then
+ begin
+ TASQLite3BaseQuery(MasterSource.DataSet).RegisterDetailDataset(
+ TASQLite3BaseQuery(Self));
+ end
+ else
+ begin
+ raise AsgError.Create('master dataset ' + MasterSource.DataSet.ClassName +
+ ' is not of TSQLiteBaseQuery type');
+ DebugLeave('TASQLite3BaseQuery.InternalOpen');
+ exit;
+ end;
+ end
+ else
+ begin
+ raise AsgError.Create('master dataset undefined');
+ DebugLeave('TASQLite3BaseQuery.InternalOpen');
+ exit;
+ end;
+ end;
+
+ if not FUniDir then begin
+ { Load the result into a resultlist }
+ FResult := TFResult.Create(Self);
+ LoadQueryData;
+ end else begin
+ FResult := TFResult.Create(Self);
+ FStatement := Connection.SQLite3_PrepareResult(Connection.DBHandle, PAnsiChar(FPrepared),FParams, self);
+// ptr := Connection.SQLite3_GetNextResult(Connection.DBHandle, FStatement, FParams,self);
+ end;
+
+ { Initialize our internal position.
+ We use -1 to indicate the "crack" before the first record. }
+ FCurRec := -1;
+
+ { Initialize an offset value to find the TRecInfo in each buffer }
+ FRecInfoOfs := MaxStrLen;
+
+ { Calculate the size of the record buffers.
+ Note: This is NOT the same as the RecordSize property which
+ only gets the size of the data in the record buffer }
+ FRecBufSize := FRecInfoOfs + SizeOf(TRecInfo);
+
+ { Tell TDataSet how big our Bookmarks are (REQUIRED) }
+ BookmarkSize := SizeOf(integer);
+
+ { Initialize the FieldDefs }
+ InternalInitFieldDefs;
+
+ { Create TField components when no persistent fields have been created }
+ if DefaultFields then
+ CreateFields;
+
+ { Bind the TField components to the physical fields }
+ BindFields(true);
+
+ end;
+ DebugLeave('TASQLite3BaseQuery.InternalOpen');
+end;
+
+procedure TASQLite3BaseQuery.InternalClose;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalClose');
+
+ if (FUniDir) and (FStatement <> nil) and (active) then begin
+ Connection.SQLite3_CloseResult(FStatement);
+ FStatement := nil;
+ end;
+
+ if Assigned(FResult) then
+ begin
+ FResult.Free;
+ FResult := nil;
+ end;
+
+ { Destroy the TField components if no persistent fields }
+ if DefaultFields then
+ DestroyFields;
+
+ { Reset these internal flags }
+ // FLastBookmark := 0;
+ FCurRec := -1;
+ DebugLeave('TASQLite3BaseQuery.InternalClose');
+end;
+
+{ This property is used while opening the dataset.
+ It indicates if data is available even though the
+ current state is still dsInActive. }
+
+function TASQLite3BaseQuery.IsCursorOpen: boolean;
+begin
+ Result := Assigned(FResult);
+end;
+
+procedure TASQLite3BaseQuery.OpenCursor(InfoQuery: Boolean);
+begin
+ if InfoQuery then
+ Begin
+ if Assigned(FConnection) Then Begin
+ InternalOpen;
+ InternalClose;
+ End;
+ End
+ else if State <> dsOpening then
+ inherited OpenCursor(InfoQuery);
+end;
+
+procedure TASQLite3BaseQuery.InternalInitFieldDefs;
+begin
+// Just here for compatibility
+end;
+
+{ This is the exception handler which is called if an exception is raised
+ while the component is being stream in or streamed out. In most cases this
+ should be implemented useing the application exception handler as follows. }
+
+procedure TASQLite3BaseQuery.InternalHandleException;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalHandleException');
+ ApplicationHandleException(Self);
+ DebugLeave('TASQLite3BaseQuery.InternalHandleException');
+end;
+
+ { Bookmarks }
+ { ========= }
+
+{ In this sample the bookmarks are stored in the Object property of the
+ TStringList holding the data. Positioning to a bookmark just requires
+ finding the offset of the bookmark in the TStrings.Objects and using that
+ value as the new current record pointer. }
+
+procedure TASQLite3BaseQuery.InternalGotoBookmark(Bookmark: Pointer);
+var
+ Index : integer;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalGotoBookmark');
+// inherited;
+ Index := FResult.IndexOf(TObject(PInteger(Bookmark)^));
+ if Index <> -1 then
+ FCurRec := Index
+ else
+ if not FUniDir then DatabaseError('Bookmark not found');
+ DebugLeave('TASQLite3BaseQuery.InternalGotoBookmark');
+end;
+
+function TASQLite3BaseQuery.BookmarkValid(Bookmark: Pointer): boolean;
+var
+ Index : integer;
+begin
+ DebugEnter('TASQLite3BaseQuery.BookmarkValid');
+ Index := FResult.IndexOf(TObject(PInteger(Bookmark)^));
+ if Index <> -1 then
+ BookmarkValid := true
+ else
+ BookmarkValid := false;
+ DebugLeave('TASQLite3BaseQuery.BookmarkValid');
+end;
+
+{ This function does the same thing as InternalGotoBookmark, but it takes
+ a record buffer as a parameter instead }
+
+procedure TASQLite3BaseQuery.InternalSetToRecord(Buffer: PAnsiChar);
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalSetToRecord');
+ InternalGotoBookmark(@PRecInfo(Buffer + FRecInfoOfs).Bookmark);
+// NotifySQLiteMasterChanged;
+ DebugLeave('TASQLite3BaseQuery.InternalSetToRecord');
+end;
+
+{ Bookmark flags are used to indicate if a particular record is the first
+ or last record in the dataset. This is necessary for "crack" handling.
+ If the bookmark flag is bfBOF or bfEOF then the bookmark is not actually
+ used; InternalFirst, or InternalLast are called instead by TDataSet. }
+
+function TASQLite3BaseQuery.GetBookmarkFlag(Buffer: PAnsiChar): TBookmarkFlag;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetBookmarkFlag');
+ Result := PRecInfo(Buffer + FRecInfoOfs).BookmarkFlag;
+ DebugLeave('TASQLite3BaseQuery.GetBookmarkFlag');
+end;
+
+procedure TASQLite3BaseQuery.SetBookmarkFlag(Buffer: PAnsiChar; Value: TBookmarkFlag);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetBookmarkFlag');
+ PRecInfo(Buffer + FRecInfoOfs).BookmarkFlag := Value;
+ DebugLeave('TASQLite3BaseQuery.SetBookmarkFlag');
+end;
+
+{ These methods provide a way to read and write bookmark data into the
+ record buffer without actually repositioning the current record }
+
+procedure TASQLite3BaseQuery.GetBookmarkData(Buffer: PAnsiChar; Data: Pointer);
+begin
+ DebugEnter('TASQLite3BaseQuery.GetBookmarkData');
+ PInteger(Data)^ := PRecInfo(Buffer + FRecInfoOfs).Bookmark;
+ DebugLeave('TASQLite3BaseQuery.GetBookmarkData');
+end;
+
+procedure TASQLite3BaseQuery.SetBookmarkData(Buffer: PAnsiChar; Data: Pointer);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetBookmarkData');
+ PRecInfo(Buffer + FRecInfoOfs).Bookmark := PInteger(Data)^;
+ DebugLeave('TASQLite3BaseQuery.SetBookmarkData');
+end;
+
+ { Record / Field Access }
+ { ===================== }
+
+{ This method returns the size of just the data in the record buffer.
+ Do not confuse this with RecBufSize which also includes any additonal
+ structures stored in the record buffer (such as TRecInfo). }
+
+function TASQLite3BaseQuery.GetRecordSize: word;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetRecordSize');
+ Result := MaxStrLen;
+ DebugLeave('TASQLite3BaseQuery.GetRecordSize');
+end;
+
+{ TDataSet calls this method to allocate the record buffer. Here we use
+ FRecBufSize which is equal to the size of the data plus the size of the
+ TRecInfo structure. }
+
+function TASQLite3BaseQuery.AllocRecordBuffer: PAnsiChar;
+begin
+ DebugEnter('TASQLiteBaseQuery.AllocRecordBuffer');
+ GetMem(Result, FRecBufSize + CalcFieldsSize + sizeof(TRecinfo) + 5);
+ FillChar(Result^, FRecBufSize + CalcFieldsSize + sizeof(TRecinfo) + 5, 0);
+// FillChar(Result^, GetRecordSize+CalcFieldsSize+10, 0);
+ DebugLeave('TASQLiteBaseQuery.AllocRecordBuffer');
+end;
+
+{ Again, TDataSet calls this method to free the record buffer.
+ Note: Make sure the value of FRecBufSize does not change before all
+ allocated buffers are freed. }
+
+procedure TASQLite3BaseQuery.FreeRecordBuffer(var Buffer: PAnsiChar);
+begin
+ DebugEnter('TASQLiteBaseQuery.FreeRecordBuffer');
+ try FreeMem(Buffer); //, FRecBufSize+CalcFieldsSize+sizeof(TRecinfo));
+ except end;
+// Buffer := nil;
+ DebugLeave('TASQLiteBaseQuery.FreeRecordBuffer');
+end;
+
+{ This multi-purpose function does 3 jobs. It retrieves data for either
+ the current, the prior, or the next record. It must return the status
+ (TGetResult), and raise an exception if DoCheck is True. }
+
+function TASQLite3BaseQuery.GetRecord(Buffer: PAnsiChar; GetMode: TGetMode;
+ DoCheck: boolean): TGetResult;
+var
+ ptr : pointer;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetRecord');
+// if Active then CheckBrowseMode;
+ if (not (FUniDir)) and (FResult.Count < 1) then
+ Result := grEOF
+ else
+ begin
+ Result := grOK;
+ case GetMode of
+ gmNext:
+ if FUniDir then begin
+// ptr := Connection.SQLite3_GetNextResult(Connection.DBHandle, FStatement, FParams,self);
+// if ptr <> nil then
+// Move(ptr^, Buffer^, MaxStrLen)
+// else
+// Result := grEOF;
+ end else begin
+ if FCurRec >= RecordCount - 1 then
+ Result := grEOF
+ else
+ Inc(FCurRec);
+ end;
+ gmPrior: begin
+ if FUniDir then
+// Result := grOK
+ raise AsgError.Create('operation PRIOR not allowed on unidirectional dataset')
+ else begin
+ if FCurRec <= 0 then
+ Result := grBOF
+ else
+ Dec(FCurRec);
+ end;
+ end;
+ gmCurrent:
+ begin
+ if (FCurRec < 0) or (FCurRec >= RecordCount) then
+ Result := grError;
+ end;
+ end;
+ if Result = grOK then
+ begin
+ if FUniDir then begin
+ ptr := Connection.SQLite3_GetNextResult(Connection.DBHandle, FStatement, FParams,self);
+ if ptr <> nil then begin
+ Move(ptr^, ActiveBuffer^, MaxStrLen);
+ end else Result := grEOF;
+ end else begin
+ ptr := FResult.GetData(FCurRec);
+ if FResult.Count = 0 then
+ InternalInitRecord(Buffer)
+ else
+ if ptr <> nil then Move(ptr^, Buffer^, MaxStrLen); // albert 17/11/2004
+ end;
+
+ with PRecInfo(Buffer + FRecInfoOfs)^ do
+ begin
+ BookmarkFlag := bfCurrent;
+ Bookmark := FResult.GetBookMark(FCurRec);
+ end;
+
+ if CalcFieldsSize > 0 then
+ GetCalcFields(Buffer)
+
+ end
+ else if (Result = grError) and DoCheck then
+ DatabaseError('No Records');
+ end;
+ DebugLeave('TASQLite3BaseQuery.GetRecord: ' + Buffer);
+end;
+
+{ This routine is called to initialize a record buffer. }
+
+procedure TASQLite3BaseQuery.InternalInitRecord(Buffer: PAnsiChar);
+var
+ i : integer;
+ TempT : TDateTimeRec;
+ Stream : TMemoryStream;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalInitRecord');
+
+ for i := 0 to FieldDefs.Count - 1 do
+ begin
+ if not (Fields[i].Calculated) then begin
+ case FieldDefs.Items[i].Datatype of
+ ftMemo, ftGraphic, ftBlob, ftFmtMemo: begin
+ Stream := TMemoryStream.Create;
+ Move(Pointer(Stream), (Buffer + GetFieldOffset(i + 1))^, sizeof(Pointer));
+ end;
+ ftString: PAnsiChar(Buffer + GetFieldOffset(i + 1))^ := #0;
+ ftBoolean: pBoolean(Buffer + GetFieldOffset(i + 1))^ := false;
+ ftFloat: pFloat(Buffer + GetFieldOffset(i + 1))^ := 0;
+ ftSmallInt: pSmallInt(Buffer + GetFieldOffset(i + 1))^ := 0;
+ ftInteger: pInteger(Buffer + GetFieldOffset(i + 1))^ := integer(nil);
+ ftCurrency: pFloat(Buffer + GetFieldOffset(i + 1))^ := 0;
+ ftDate:
+ begin
+ TempT := DateTimeToNative(ftDate, now);
+ Move(TempT, (Buffer + GetFieldOffset(i + 1))^, sizeof(TDateTime));
+ end;
+ ftTime:
+ begin
+ TempT := DateTimeToNative(ftTime, now);
+ Move(TempT, (Buffer + GetFieldOffset(i + 1))^, sizeof(TDateTime));
+ end;
+ ftDateTime:
+ begin
+ TempT := DateTimeToNative(ftDateTime, now);
+ Move(TempT, (Buffer + GetFieldOffset(i + 1))^, sizeof(TDateTime));
+ end;
+ end;
+ end;
+ end;
+
+// if FMasterSource <> nil then begin
+// FMasterSource.DataSet.FieldByName()
+// end;
+
+
+ DebugLeave('TASQLite3BaseQuery.InternalInitRecord');
+end;
+
+{ Here we copy the data from the record buffer into a field's buffer.
+ This function, and SetFieldData, are more complex when supporting
+ calculated fields, filters, and other more advanced features.
+ See TBDEDataSet for a more complete example. }
+
+function TASQLite3BaseQuery.GetFieldData(Field: TField; Buffer: Pointer): boolean;
+var
+// SrcBuffer : PAnsiChar;
+ MyBuf : string;
+
+ SrcBuffer : PAnsiChar;
+// MasterField : TField;
+// EqualPos : Integer;
+/// MasterFieldName, DetailFieldName : string;
+
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3BaseQuery.GetFieldData');
+{$ENDIF}
+ if Field.FieldNo > 0 then begin
+ // load masterfield data if there's a master-detail relationship
+ // key-data should not be NULL!!
+ if pos(UpperCase(Field.FieldName), UpperCase(FMasterFields)) > 0 then begin
+ MasterSource.DataSet.GetFieldData(Field, Buffer);
+ Result := true;
+ exit;
+ end;
+
+// if FMasterFields <> '' then begin
+// EqualPos := Pos('=',FMasterFields);
+// DetailFieldName := Copy(FMasterFields,1, EqualPos - 1);
+// MasterFieldName := Copy(FMasterFields,EqualPos + 1, Length(FMasterFields) - EqualPos -1);
+// if UpperCase(Field.FieldName) = UpperCase(DetailFieldName) then begin
+// // locate and get master field by name
+// MasterField := MasterSource.DataSet.FieldByName(MasterFieldName);
+// MasterSource.DataSet.GetFieldData(MasterField, Buffer);
+// Result := true;
+// exit;
+// end;
+// end;
+
+ Result := true; // indicates NotNull
+ if GetActiveBuffer(SrcBuffer) then begin
+ if (Assigned(Buffer)) and (Assigned(SrcBuffer)) then begin
+ Move((SrcBuffer + GetFieldOffset(Field.FieldNo))^, Buffer^, GetFieldSize(Field.FieldNo));
+ if Field.DataType = ftString then begin // GPA
+ MyBuf := PChar(Buffer);
+{$IFDEF ASQLITE_D6PLUS}
+ if Connection.FUtf8 then
+ Move(Utf8ToAnsi(MyBuf)[1], Buffer^, Length(MyBuf)) // GPA - Warning UTF-8 length can be potentially > Ansi length
+ else
+{$endif}
+ Move(MyBuf[1], Buffer^, Length(MyBuf)); // GPA - Warning UTF-8 length can be potentially > Ansi length
+ PAnsiChar(PAnsiChar(Buffer) + GetFieldSize(Field.FieldNo))^ := #0; // dev
+ end;
+ Result := true;
+ exit;
+ end;
+ if Assigned(SrcBuffer) then
+ if (Field.DataType <> ftDateTime) and ((SrcBuffer + GetFieldOffset(Field.FieldNo))^ = #0) then
+ Result := false
+ end else begin
+ if assigned(Buffer) then PAnsiChar(Buffer)^ := #0;
+ Result := false;
+ end;
+ end else begin {calcfields}
+ Result := GetActiveBuffer(SrcBuffer);
+ if Result and (State in [dsBrowse, dsEdit, dsInsert, dsCalcFields, dsBlockRead]) then begin
+ if (Assigned(Buffer)) then
+ Move((SrcBuffer + GetCalcFieldOffset(Field))^, Buffer^, GetFieldSize(Field));
+ end;
+ end;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3BaseQuery.GetFieldData: ' + PAnsiChar(Buffer));
+{$ENDIF}
+end;
+
+// The next two functions are added to increase compatibility with
+// components that require it (like DevExpress)
+
+function TASQLite3BaseQuery.GetFieldData(FieldNo: integer; Buffer: Pointer): boolean;
+begin
+ Result := GetFieldData(FieldByNumber(FieldNo), Buffer);
+end;
+
+{$IFDEF ASQLITE_D6PLUS}
+//function TASQLite3BaseQuery.GetFieldData(Field: TField; Buffer: Pointer;
+// NativeFormat: boolean): boolean;
+//begin
+// Result := GetFieldData(Field, Buffer);
+//end;
+{$ENDIF}
+
+{ returns the field data back to callee }
+
+procedure TASQLite3BaseQuery.SetFieldData(Field: TField; Buffer: Pointer);
+var
+ DestBuffer : PAnsiChar;
+ MyBuf : string;
+begin
+ DebugEnter('TASQLite3BaseQuery.SetFieldData');
+ GetActiveBuffer(DestBuffer);
+ if (Field.FieldNo > 0) and (Assigned(Buffer)) and (Assigned(DestBuffer)) then
+ begin
+ if Field.DataType = ftString then
+ Begin // GPA
+ MyBuf := PChar(Buffer);
+{$IFDEF ASQLITE_D6PLUS}
+ if Connection.FUtf8 then
+ MyBuf := AnsiToUTF8(MyBuf);
+{$endif}
+ if Length(MyBuf)>0 then
+ Move(MyBuf[1], (DestBuffer + GetFieldOffset(Field.FieldNo))^, Length(MyBuf)+1) // GPA - Warning UTF-8 length can be potentially > Ansi length
+ else begin
+ MyBuf := #0;
+ Move(MyBuf[1], (DestBuffer + GetFieldOffset(Field.FieldNo))^, Length(MyBuf)); // GPA - Warning UTF-8 length can be potentially > Ansi length
+ end;
+ End
+ else
+ Move(Buffer^, (DestBuffer + GetFieldOffset(Field.FieldNo))^, GetFieldSize(Field.FieldNo));
+ end else {fkCalculated, fkLookup} begin
+ if (State in [dsBrowse, dsEdit, dsInsert, dsCalcFields, dsBlockRead]) then begin
+ if (Field.FieldNo < 0) and (Assigned(Buffer)) and (Assigned(DestBuffer)) then begin
+ Move(Buffer^, (CalcBuffer + GetCalcFieldOffset(Field))^, GetFieldSize(Field));
+ end;
+ end;
+ end;
+
+ if not (State in [dsCalcFields, dsFilter, dsNewValue]) then
+ DataEvent(deFieldChange, Longint(Field));
+ DebugLeave('TASQLite3BaseQuery.SetFieldData');
+end;
+
+{ Record Navigation / Editing }
+{ =========================== }
+
+{ This method is called by TDataSet.First. Crack behavior is required.
+ That is we must position to a special place *before* the first record.
+ Otherwise, we will actually end up on the second record after Resync
+ is called. }
+
+procedure TASQLite3BaseQuery.InternalFirst;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalFirst');
+ FCurRec := -1;
+ DebugLeave('TASQLite3BaseQuery.InternalFirst');
+end;
+
+{ Again, we position to the crack *after* the last record here. }
+
+procedure TASQLite3BaseQuery.InternalLast;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalLast');
+ FCurRec := FResult.Count;
+ DebugLeave('TASQLite3BaseQuery.InternalLast');
+end;
+
+function TASQLite3BaseQuery.GetLastInsertRow: integer;
+begin
+ if Assigned(Connection) then
+ result := Connection.SQLite3_LastInsertRow(Connection.DBHandle)
+ else
+ result := -1;
+end;
+
+{ This method is called by TDataSet.Post. }
+
+procedure TASQLite3BaseQuery.InternalPost;
+var
+ ptr : Pointer;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalPost');
+ FSaveChanges := true;
+ { For inserts, just update the data in the string list }
+ if State = dsEdit then
+ begin
+ if FUniDir then
+ Connection.SQLite3_GetNextResult(Connection.DBHandle, FStatement, FParams,self)
+ else begin
+ ptr := FResult.GetData(FCurrec);
+ if ptr <> nil then
+ move(ActiveBuffer^, ptr^, FRecBufSize); // albert 17/11/2004
+ end;//2006
+ end
+ else
+ begin
+ { If inserting (or appending), increment the bookmark counter and
+ store the data }
+ FResult.Insert(FCurRec, ActiveBuffer,
+ Connection.SQLite3_LastInsertRow(Connection.DBHandle));
+ end;
+ DebugLeave('TASQLite3BaseQuery.InternalPost');
+end;
+
+{ This method is similar to InternalPost above, but the operation is always
+ an insert or append and takes a pointer to a record buffer as well. }
+
+procedure TASQLite3BaseQuery.InternalAddRecord(Buffer: Pointer; Append: boolean);
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalAddRecord');
+ if FReadOnly then
+ raise AsgError.Create('Cannot write to a read-only dataset');
+
+ FSaveChanges := true;
+ if Append then
+ InternalLast;
+ Post;
+ DebugLeave('TASQLite3BaseQuery.InternalAddRecord');
+end;
+
+{ This method is called by TDataSet.Delete to delete the current record }
+
+procedure TASQLite3BaseQuery.InternalDelete;
+begin
+ DebugEnter('TASQLite3BaseQuery.InternalDelete');
+ FSaveChanges := true;
+ FResult.Delete(FCurRec);
+ if FCurRec >= FResult.Count then
+ Dec(FCurRec);
+ DebugLeave('TASQLite3BaseQuery.InternalDelete');
+end;
+
+ { Optional Methods }
+ { ================ }
+
+{ The following methods are optional. When provided they will allow the
+ DBGrid and other data aware controls to track the current cursor postion
+ relative to the number of records in the dataset. Because we are dealing
+ with a small, static data store (a stringlist), these are very easy to
+ implement. However, for many data sources (SQL servers), the concept of
+ record numbers and record counts do not really apply. }
+
+function TASQLite3BaseQuery.GetRecordCount: longint;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetRecordCount');
+ Result := FResult.Count;
+ DebugLeave('TASQLite3BaseQuery.GetRecordCount ' + IntToStr(Result));
+end;
+
+function TASQLite3BaseQuery.GetRecNo: longint;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetRecNo');
+ UpdateCursorPos;
+ if (FCurRec = -1) and (RecordCount > 0) then
+ Result := 1
+ else
+ Result := FCurRec + 1;
+ NotifySQLiteMasterChanged; //20040819
+ DebugLeave('TASQLite3BaseQuery.GetRecNo');
+end;
+
+procedure TASQLite3BaseQuery.SetRecNo(Value: integer);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetRecNo');
+ if (Value >= 0) and (Value < FResult.Count + 2) then // value < resultetc
+ begin
+ FCurRec := Value - 1;
+ Resync([]);
+ end;
+ DebugLeave('TASQLite3BaseQuery.SetRecNo');
+end;
+
+procedure TASQLite3BaseQuery.SetFiltered(Value: Boolean);
+begin
+ inherited;
+end;
+
+procedure TASQLite3BaseQuery.SetFilterText(const Value: string);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetFilterText ' + Value);
+ if Active then begin
+ Close;
+ inherited;
+ Open;
+ end else Inherited;
+ DebugLeave('TASQLite3BaseQuery.SetFilterText');
+end;
+
+function TASQLite3BaseQuery.SetQueryParams(InStr: string): string;
+var
+ i : integer;
+ TempParam : string;
+ ThisDateFormat : string;
+ OldDateFormat : string;
+begin
+ if FSQLiteDateFormat then
+ ThisDateFormat := 'yyyy-mm-dd hh:nn:ss.zzz'
+ else if (FTableDateFormat <> '') then
+ ThisDateFormat := FTableDateFormat
+ else
+ ThisDateFormat := ShortDateFormat;
+
+ for i := 0 to FParams.Count - 1 do begin
+ if (FParams.Items[i].DataType <> ftBlob) and
+ (FParams.Items[i].DataType <> ftGraphic) then begin
+ TempParam := Fparams.Items[i].AsString;
+ if (TempParam = '') and (FParams.Items[i].bound) then begin
+ InStr := StringReplace(Instr, '?', 'NULL', []);
+ end else begin
+ //Here we'll replace legitimate '?' characters with an unprintable character
+ TempParam := StringReplace(TempParam, '?', #1, [rfReplaceAll]);
+
+ //Okay, we need to check string dates and times
+ if FParams[i].DataType = ftDate then begin
+ end else if FParams[i].DataType = ftTime then begin
+ end else if FParams[i].DataType = ftDateTime then begin
+ OldDateFormat := ShortDateFormat;
+ ShortDateFormat := ThisDateFormat;
+ TempParam := DateToStr(FParams[i].AsDateTime);
+ ShortDateFormat := OldDateFormat;
+ end;
+
+ InStr := StringReplace(Instr, '?', QuotedStr(TempParam), [rfIgnoreCase]);
+ end;
+ end else begin // BLOB !!
+ //Here we'll replace legitimate '?' characters with an unprintable character
+ InStr := StringReplace(Instr, '?', #2, [rfIgnoreCase]);
+ end;
+ end;
+ //Here we'll restore legitimate '?' characters
+ InStr := StringReplace(Instr, #1, '?', [rfReplaceAll]);
+ SetQueryParams := InStr;
+end;
+
+// ============================================================================= TASQLite3 UPDATE SQL
+
+constructor TASQLite3UpdateSQL.Create(AOWner: TComponent);
+begin
+ DebugEnter('TASQLite3UpdateSQL.Create');
+ inherited Create(AOwner);
+ FInsertSQL := TStringList.Create;
+ FUpdateSQL := TStringList.Create;
+ FDeleteSQL := TStringList.Create;
+ DebugLeave('TASQLite3UpdateSQL.Create');
+end;
+
+destructor TASQLite3UpdateSQL.Destroy;
+begin
+ DebugEnter('TASQLite3UpdateSQL.Destroy');
+ inherited;
+ if Assigned(FInsertSQL) then
+ FInsertSQL.Free;
+ if Assigned(FUpdateSQL) then
+ FUpdateSQL.Free;
+ if Assigned(FDeleteSQL) then
+ FDeleteSQL.Free;
+ DebugLeave('TASQLite3UpdateSQL.Destroy');
+end;
+
+procedure TASQLite3UpdateSQL.SetInsertSQL(const Value: TStrings);
+begin
+ DebugEnter('TASQLite3UpdateSQL.SetInsertSQL');
+ if Assigned(FInsertSQL) then
+ FInsertSQL.Assign(Value)
+ else
+ FInsertSQL := Value;
+ DebugLeave('TASQLite3UpdateSQL.SetInsertSQL');
+end;
+
+procedure TASQLite3UpdateSQL.SetUpdateSQL(const Value: TStrings);
+begin
+ DebugEnter('TASQLite3UpdateSQL.SetUpdateSQL');
+ if Assigned(FUpdateSQL) then
+ FUpdateSQL.Assign(Value)
+ else
+ FUpdateSQL := Value;
+ DebugLeave('TASQLite3UpdateSQL.SetUpdateSQL');
+end;
+
+procedure TASQLite3UpdateSQL.SetDeleteSQL(const Value: TStrings);
+begin
+ DebugEnter('TASQLite3UpdateSQL.SetDeleteSQL');
+ if Assigned(FDeleteSQL) then
+ FDeleteSQL.Assign(Value)
+ else
+ FDeleteSQL := Value;
+ DebugLeave('TASQLite3UpdateSQL.SetDeleteSQL');
+end;
+// ============================================================================= TASQLite3 QUERY
+
+constructor TASQLite3Query.Create(AOwner: TComponent);
+begin
+ DebugEnter('TASQLite3Query.Create');
+ inherited Create(AOwner);
+// FParams := TParams.Create(Self);
+ TStringList(FSQL).OnChange := QueryChanged;
+ DebugLeave('TASQLite3Query.Create');
+end;
+
+destructor TASQLite3Query.Destroy;
+begin
+ DebugEnter('TASQLite3Query.Destroy');
+
+ if Assigned(FSQL) then
+ TStringList(FSQL).OnChange := nil;
+
+ inherited Destroy;
+ DebugLeave('TASQLite3Query.Destroy');
+end;
+
+procedure TASQLite3Query.Notification(AComponent: TComponent; Operation: TOperation);
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3Query.Notification');
+{$ENDIF}
+// Application.ProcessMessages;
+ if Assigned(AComponent) then
+ begin
+ if (Operation = opRemove) then begin
+ if Assigned(FUpdateSQL) and (AComponent is TASQLite3UpdateSQL) then begin
+ if TASQLite3UpdateSQL(AComponent) = FUpdateSQL then
+ FUpdateSQL := nil;
+ end else
+
+ if Assigned(FConnection) then begin
+ if (AComponent is TASQLite3DB) and
+ (TASQLite3Db(AComponent) = FConnection) then begin
+ Close;
+ Connection := nil;
+ end;
+ end else
+
+ end;
+ end;
+ inherited;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3Query.Notification');
+{$ENDIF}
+end;
+
+procedure TASQLite3Query.QueryChanged(Sender: TObject);
+begin
+ DebugEnter('TASQLite3Query.QueryChanged');
+ FNoResults := false;
+ Close;
+ if not FRawSQL then begin
+ if assigned(FParams) then FParams.Clear; // new
+ SQLStr := FParams.ParseSQL(SQL.Text, true)
+ end else SQLStr := SQL.Text;
+ DebugLeave('TASQLite3Query.QueryChanged');
+end;
+
+procedure TASQLite3Query.SetSQL(const Value: TStrings);
+begin
+ DebugEnter('TASQLite3Query.SetSQL');
+ FNoResults := false;
+ Close;
+ if Assigned(FSQL) then
+ FSQL.Assign(Value)
+ else
+ FSQL := Value;
+// FText := FParams.ParseSQL(SQL.Text, False);
+ DebugLeave('TASQLite3Query.SetSQL');
+end;
+
+function TASQLite3Query.GetSQL: TStrings;
+begin
+ DebugEnter('TASQLite3Query.GetSQL');
+ GetSQL := FSQL;
+ DebugLeave('TASQLite3Query.GetSQL');
+end;
+
+procedure TASQLite3Query.InternalDelete;
+var
+ MySQL : string;
+ TempSQL : string;
+ SQLStr : string; // added by Donnie
+ TheWord : string;
+ TableId : string;
+ FieldId : string;
+ startpos : integer;
+ vartype : integer;
+ p : integer;
+ Blobs : TList; // added by Donnie
+label
+ Ende;
+begin
+ DebugEnter('TASQLite3Query.InternalDelete');
+ if FReadOnly then
+ raise AsgError.Create('Cannot delete from a read-only dataset');
+
+ if Connection.FConnected then
+ begin
+ if FAutoCommit then
+ Connection.ExecStartTransaction(FTransactionType);
+
+ if not Assigned(FUpdateSQL) then
+ begin
+ raise AsgError.Create('Missing TASQLite3UpdateSQL component');
+ goto ende;
+ end;
+ // MyFieldList := TStringList.Create;
+ // MyFieldValues := TStringList.Create;
+ Blobs := TList.Create;
+ MySQL := FUpdateSQL.FDeleteSQL.Text;
+ startpos := 1;
+
+ TheWord := GetWord(MySQL, startpos, vartype); // delete
+ if not SyntaxCheck(TheWord, 'delete') then
+ goto ende;
+
+ TheWord := GetWord(MySQL, startpos, vartype); // from
+ if not SyntaxCheck(TheWord, 'from') then
+ goto ende;
+
+ Tableid := GetWord(MySQL, startpos, vartype); // tablename
+
+ TheWord := GetWord(MySQL, startpos, vartype); // where
+ if not SyntaxCheck(TheWord, 'where') then
+ goto ende;
+
+ SQLStr := 'delete from ' + TableId + ' where ';
+ TempSQL := Copy(MySQL, startpos, 999);
+
+ p := pos(':', TempSQL);
+ while p > 0 do
+ begin
+ SQLStr := SQLStr + Copy(TempSQL, 1, p - 1);
+ System.Delete(TempSQL, 1, p);
+ startpos := 1;
+ FieldId := GetWord(TempSQL, startpos, vartype); // variable
+ System.Delete(TempSQL, 1, startpos); // Tzvetan
+ // SQLStr := SQLStr + QuotedStr(FieldByName(FieldId).AsString);
+ // edited by Donnie
+ SQLStr := SQLStr + GetFieldValue(FieldByName(FieldId), Blobs);
+ p := pos(':', TempSQL);
+ end;
+ SQLStr := SQLStr + Copy(TempSQL, StartPos, 999);
+ try
+ Connection.SQLite3_execute(Connection.DBHandle, PAnsiChar(SQLStr), FParams, self);
+ if FAutoCommit then
+ Connection.Commit;
+ except
+ if FAutoCommit then begin
+ Connection.RollBack;
+ raise;
+ end;
+ end;
+ if Assigned(Blobs) then begin
+ for p := 0 to Blobs.Count - 1 do
+ TMemoryStream(Blobs.Items[p]).Free;
+ Blobs.Free;
+ end;
+ inherited InternalDelete;
+ end;
+ Ende:
+ DebugLeave('TASQLite3Query.InternalDelete');
+end;
+
+ //==============================================================================
+ // This is probabely the most difficult thing about these components.
+ // To be able to have a live resultset a tupdatequery must be used to
+ // supply the correct sql on the events. In the internalpost the insert and
+ // update are handled. The routine will take the given sql and remodel it
+ // to a workable sql which is executed. Keep in mind that this routine
+ // is far more difficult then the TASQLite3Table, since the last one is depending
+ // on a unique rownumber, available in the resultset, which might not be
+ // available to user queries
+ // There are several syntaxes allowed:
+ //
+ // insert into table *
+ // this will generate an insert statement for each field and values
+ // i.e. insert into table a,b,c values :a, :b, :c;
+ //
+ // insert into table (a, b, c) values *
+ // this will generate an insert statement like
+ // insert into table (a, b, c) values (:a, :b, :c);
+ //
+ // insert into table (a, b, c) values (:a, :b, :c);
+ // insert into table (a, b, c) values (:a, "bvalue", :c) etc.
+ //
+ // update table set * where
+ // this will generate a update for all fields like
+ // update a=:a, b=:b, c=:c where
+ //
+ //==============================================================================
+
+procedure TASQLite3Query.InternalPost;
+var
+ i : integer;
+ p : integer;
+ startpos : integer;
+ MyFieldList : TStringList;
+ MyFieldValues : TStringList;
+ MySQL : string;
+ TheWord : string;
+ TempSQL : string;
+ SQLStr : string; // added by Donnie
+ TableId : string;
+ FieldId : string;
+ varType : integer;
+ Blobs : TList; // added by Donnie
+begin
+ DebugEnter('TASQLite3Query.InternalPost');
+ if FReadOnly then
+ raise AsgError.Create('Cannot post into a read-only dataset');
+ MyFieldList := nil;
+ MyFieldValues := nil;
+ try
+ if not Connection.FConnected then
+ begin
+ DebugLeave('TASQLite3Query.InternalPost');
+ exit;
+ end;
+ if FAutoCommit then
+ Connection.ExecStartTransaction(FTransactionType);
+ if not Assigned(FUpdateSQL) then
+ begin
+ DebugLeave('TASQLite3Query.InternalPost Exception');
+ raise AsgError.Create('Missing TASQLite3UpdateSQL component');
+ end;
+
+ Blobs := TList.Create;
+ if (State = dsEdit) and (FResult.Count > 0) then
+ begin
+ MyFieldList := TStringList.Create;
+ MyFieldValues := TStringList.Create;
+ MySQL := FUpdateSQL.FUpdateSQL.Text;
+ startpos := 1;
+ TheWord := GetWord(MySQL, startpos, vartype); // update
+ if not SyntaxCheck(TheWord, 'update') then
+ exit;
+
+ Tableid := GetWord(MySQL, startpos, vartype); // tablename
+
+ TheWord := GetWord(MySQL, startpos, vartype); // set or '*'
+ if TheWord = '*' then
+ begin
+ for i := 0 to FieldList.Count - 1 do
+ begin
+ MyFieldList.Add(FieldList[i].FieldName);
+ MyFieldValues.Add(':' + FieldList[i].FieldName);
+ end;
+ TheWord := GetWord(MySQL, startpos, vartype); // where
+ end
+ else
+ begin
+ if not SyntaxCheck(TheWord, 'set') then
+ begin
+ DebugLeave('TASQLite3Query.InternalPost');
+ exit;
+ end;
+
+ repeat
+ TheWord := GetWord(MySQL, startpos, vartype); // fieldname
+ MyFieldList.Add(TheWord);
+
+ TheWord := GetWord(MySQL, startpos, vartype); // '='
+ if not SyntaxCheck(TheWord, '=') then
+ begin
+ DebugLeave('TASQLite3Query.InternalPost');
+ exit;
+ end;
+ TheWord := GetWord(MySQL, startpos, vartype); // 2004-14-09 (rps) ':' or 'where' --->
+ if vartype = vtcDelimiter then // <---
+ TheWord := GetWord(MySQL, startpos, vartype); // fieldvalue
+ if TheWord = '*' then
+ MyFieldValues.Add(':' + MyFieldList[MyFieldList.Count - 1])
+ else
+ MyFieldValues.Add(':' + TheWord);
+
+ TheWord := GetWord(MySQL, startpos, vartype); // , or 'where'
+ until CompareText(TheWord, 'where') = 0;
+ end;
+
+ if not SyntaxCheck(TheWord, 'where') then
+ exit;
+
+ SQLStr := 'update ' + TableId + ' set ';
+ // for i := 0 to FieldList.Count - 1 do
+ // typo corrected by Donnie
+ for i := 0 to MyFieldList.Count - 1 do
+ begin
+ // SQLStr := SQLStr + FieldList[i].FieldName + '=';
+ // typo corrected by Donnie
+ SQLStr := SQLStr + MyFieldList.Strings[i] + '=';
+ FieldId := MyFieldValues[i];
+ if FieldId[1] = ':' then
+ begin
+ System.Delete(FieldId, 1, 1);
+ // SQLStr := SQLStr + QuotedStr(FieldByName(FieldId).AsString) + ','
+ // edited by Donnie
+ SQLStr := SQLStr + GetFieldValue(FieldByName(FieldId), Blobs) + ','
+ end
+ else
+ SQLStr := SQLStr + QuotedStr(FieldId) + ','
+ end;
+ System.Delete(SQLStr, Length(SQLStr), 1); // get rid of ','
+ TempSQL := ' where ' + Copy(MySQL, startpos, 999);
+
+ p := pos(':', TempSQL);
+ while p > 0 do
+ begin
+ SQLStr := SQLStr + Copy(TempSQL, 1, p - 1);
+ System.Delete(TempSQL, 1, p);
+ startpos := 1;
+ FieldId := GetWord(TempSQL, startpos, vartype); // variable
+ System.Delete(TempSQL, 1, startpos); // Tzvetan
+ // SQLStr := SQLStr + QuotedStr(FieldToStr(FieldByName(FieldId)));
+ // edited by Donnie
+ SQLStr := SQLStr + GetFieldValue(FieldByName(FieldId), Blobs);
+ p := pos(':', TempSQL);
+ end;
+ SQLStr := SQLStr + Copy(TempSQL, StartPos, 999);
+
+ // Connection.SQLite3_ExecSQL(SQLStr);
+ // edited by Donnie
+ Connection.SQLite3_ExecSQL(SQLStr, Blobs);
+ inherited InternalPost; // rework internals
+ end
+ else
+ begin
+ { If inserting (or appending), increment the bookmark counter and
+ store the data. Sytax should be: insert into
* or
+ insert into
(field, field) values (field, field) | *
+ The sql is parsed and a new (valid) sql generated
+ }
+ MyFieldList := TStringList.Create;
+ MyFieldValues := TStringList.Create;
+ MySQL := FUpdateSQL.FInsertSQL.Text;
+ startpos := 1;
+ TheWord := GetWord(MySQL, startpos, vartype); // insert
+ if not SyntaxCheck(TheWord, 'insert') then
+ exit;
+
+ TheWord := GetWord(MySQL, startpos, vartype); // into
+ if not SyntaxCheck(TheWord, 'into') then
+ exit;
+
+ Tableid := GetWord(MySQL, startpos, vartype); // tablename
+
+ TheWord := GetWord(MySQL, startpos, vartype); // ( or *
+ if TheWord = '*' then
+ begin
+ for i := 0 to FieldList.Count - 1 do
+ begin
+ MyFieldList.Add(FieldList[i].FieldName);
+ MyFieldValues.Add(':' + FieldList[i].FieldName);
+ end;
+ end
+ else if TheWord = '(' then
+ begin
+ repeat
+ TheWord := GetWord(MySQL, startpos, vartype); // fieldname
+ MyFieldList.Add(TheWord);
+ TheWord := GetWord(MySQL, startpos, vartype); // ',' or ')'
+ until theword = ')';
+ TheWord := GetWord(MySQL, startpos, vartype); // values
+ TheWord := GetWord(MySQL, startpos, vartype); // '(' or '*'
+ if TheWord = '*' then
+ begin
+ for i := 0 to MyFieldList.Count - 1 do
+ MyFieldValues.Add(':' + MyFieldList[i]);
+ end
+ else
+ begin
+// 2004-14-09 (rps) original - does not work
+ repeat
+ TheWord := GetWord(MySQL, startpos, vartype); // ':' or fieldname
+ if vartype = vtcDelimiter then begin
+ TheWord := GetWord(MySQL, startpos, vartype); // fieldname !!
+ MyFieldValues.Add(':' + TheWord);
+ end else
+ MyFieldValues.Add(TheWord);
+ TheWord := GetWord(MySQL, startpos, vartype); // ',' or ')'
+ until theword = ')';
+ end;
+ end
+ else
+ begin
+ raise AsgError.Create('SQL macro syntax error on insertsql, expected ( or *');
+ end;
+
+ SQLStr := 'insert into ' + TableId + ' (';
+ for i := 0 to MyFieldList.Count - 1 do
+ SQLStr := SQLStr + MyFieldList[i] + ',';
+ SQLStr[Length(SQLStr)] := ')';
+ SQLStr := SQLStr + ' values (';
+ for i := 0 to MyFieldList.Count - 1 do
+ begin
+ FieldId := MyFieldValues[i];
+ if FieldId[1] = ':' then begin
+ System.Delete(FieldId, 1, 1);
+ // SQLStr := SQLStr + QuotedStr(FieldByName(FieldId).AsString) + ','
+ // edited by Donnie
+ SQLStr := SQLStr + GetFieldValue(FieldByName(FieldId), Blobs) + ','
+ end else begin
+ if CompareText(FieldId,'null')=0 then
+ SQLStr := SQLStr + FieldId+','
+ else
+ SQLStr := SQLStr + QuotedStr(FieldId) + ','
+ end;
+ end;
+ SQLStr[Length(SQLStr)] := ')';
+ // Connection.SQLite3_ExecSQL(SQLStr);
+ // edited by Donnie
+ Connection.SQLite3_ExecSQL(SQLStr, Blobs);
+ if FResult.Count = 0 then
+ Inc(FCurrec);
+ inherited InternalPost; // rework internals
+ end;
+ if FAutoCommit then
+ begin
+ try
+ Connection.Commit;
+ except
+ Connection.RollBack;
+ raise;
+ end;
+ end;
+ finally
+ if Assigned(MyFieldList) then MyFieldList.Free;
+ if Assigned(MyFieldValues) then MyFieldValues.Free;
+ if Assigned(Blobs) then begin
+ for i := 0 to Blobs.Count - 1 do
+ try
+ TMemoryStream(Blobs.Items[i]).Free;
+ except
+ end;
+ Blobs.Free;
+ end;
+ end;
+ DebugLeave('TASQLite3Query.InternalPost');
+end;
+
+procedure TASQLite3Query.InternalClose;
+begin
+ DebugEnter('TASQLite3Query.InternalClose');
+ FPrepared := '';
+ inherited;
+ DebugLeave('TASQLite3Query.InternalClose');
+end;
+
+procedure TASQLite3Query.InternalOpen;
+//var
+// p : integer;
+begin
+ DebugEnter('TASQLite3Query.InternalOpen');
+ if Trim(FSQL.Text) = '' then
+ begin
+ raise AsgError.Create('no query specified');
+ abort;
+ end;
+
+ if (FMaxResults = 0) and (FStartResult <> 0) then
+ FMaxResults := -1;
+
+ // SQLStr contains the 'raw' interpreted SQL, with ? as parameterlist
+ // This string has to be preserved, since it was parsed on entering the sql.
+ // On close and open (i.e. in case of master-detail) the parsed data still
+ // must be available
+
+ // We'll prepare the SQL statement into FPrepared. This is also the var
+ // containing the SQL statement to be executed.
+ FPrepared := SQLStr;
+
+// FPrepared := FSql.Text; // 2004-14-09 (rps) changed SqlStr (current) -> FSql.Text (property),
+ // to bring Close; Open; to work. (Full refresh.)
+ // this will block parameterized queries to function right (Aducom)
+
+ if (Filtered) and (Filter <> '') then
+ begin
+ //in order to let a filter work we use a little trick:
+ //select * from (my select statement)
+ FPrepared := 'select * from (' + FPrepared + ') where ' + Filter;
+ end;
+
+ if FParams.Count > 0 then
+ FPrepared := SetQueryParams(FPrepared);
+
+ if FMaxResults <> 0 then
+ FPrepared := FPrepared + ' limit ' + IntToStr(FMaxResults);
+ if FStartResult <> 0 then
+ FPrepared := FPrepared + ' offset ' + IntToStr(FStartResult);
+ inherited;
+ DebugLeave('TASQLite3Query.InternalOpen');
+end;
+
+ // =============================================================================
+ // The master-detail is implemented through the filter object
+ // in the future perhaps a separate filter object will be used allowing
+ // to add your own criteria too, but for the time being..
+ //==============================================================================
+
+procedure TASQLite3Query.SQLiteMasterChanged;
+var
+ r, s : string;
+ m, d : string;
+ p : integer;
+ cAnd : string;
+begin
+ DebugEnter('TASQLite3Query.SQLiteMasterChanged');
+ Close;
+ cAnd := '';
+ r := FMasterFields;
+ Filter := '';
+ Filtered := false;
+ while r <> '' do
+ begin // build the filter sql syntax
+ p := pos(';', r);
+ if p = 0 then
+ begin
+ if Trim(r) <> '' then
+ s := r;
+ r := '';
+ end
+ else
+ begin
+ s := Trim(Copy(r, 1, p - 1));
+ System.Delete(r, 1, p);
+ end;
+
+ p := pos('=', s);
+ if p = 0 then
+ begin
+ raise AsgError.Create('Syntax error: Masterfields not build of a=b;... pairs');
+ end
+ else
+ begin
+ d := copy(s, 1, p - 1);
+ m := copy(s, p + 1, 99);
+ end;
+// Filter := Filter + cAnd + d + '=' + FMasterSource.DataSet.FieldByName(m).AsString;
+ Filter := Filter + cAnd + d + '=' + QuotedStr(FMasterSource.DataSet.FieldByName(m).AsString) ;
+ cAnd := ' and ';
+ end;
+ if (Filter <> '') and (Active) then begin
+ filtered := true;
+ Open;
+ end;
+ DebugLeave('TASQLite3Query.SQLiteMasterChanged');
+end;
+
+ //==============================================================================
+ // execsql is used for sql statements which do not require cursors. For this
+ // reason the fnoresults is set, to prevent building a result set
+ //==============================================================================
+
+procedure TASQLite3BaseQuery.ExecSQL;
+begin
+ DebugEnter('TASQLite3BaseQuery.ExecSQL');
+ FNoResults := true;
+ Close;
+ if FAutoCommit then
+ begin
+ Connection.ExecStartTransaction(FTransactionType);
+ Open;
+ try
+ Connection.Commit
+ except
+ Connection.RollBack;
+ raise;
+ end;
+ end
+ else
+ Open;
+ DebugLeave('TASQLite3BaseQuery.ExecSQL');
+end;
+
+procedure TASQLite3BaseQuery.SetParamsList(Value: TParams);
+begin
+ DebugEnter('TASQLite3BaseQuery.SetParamsList');
+ FParams.AssignValues(Value);
+ DebugLeave('TASQLite3BaseQuery.SetParamsList');
+end;
+
+function TASQLite3BaseQuery.GetParamsCount: word;
+begin
+ DebugEnter('TASQLite3BaseQuery.GetParamsCount');
+ Result := FParams.Count;
+ DebugLeave('TASQLite3BaseQuery.GetParamsCount');
+end;
+
+procedure TASQLite3Table.SetFOrderBy(OrderBy : string);
+begin
+ if FOrderBy <> OrderBy then begin
+ Close;
+ FOrderBy := OrderBy;
+ end;
+end;
+
+procedure TASQLite3Table.SetFTableName(TableName : string);
+begin
+ Close;
+ FTableName := TableName;
+end;
+
+procedure TASQLite3Table.Notification(AComponent: TComponent; Operation: TOperation);
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3Table.Notification');
+{$ENDIF}
+// Application.ProcessMessages;
+ if Assigned(AComponent) then
+ begin
+ if (Operation = opRemove) then
+ begin
+ if (AComponent is TASQLite3DB) and Assigned(FConnection) then
+ begin
+ if TASQLite3DB(AComponent) = FConnection then begin
+ Close;
+ FConnection := nil;
+ end;
+ end else
+
+ end;
+ end;
+ inherited;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3Table.Notification');
+{$ENDIF}
+end;
+
+procedure TASQLite3Table.InternalOpen;
+begin
+ DebugEnter('TASQLite3Table.InternalOpen');
+
+ if FTableName = '' then
+ begin
+ raise AsgError.Create('no table specified');
+ exit;
+ end;
+ FSQL.Clear;
+ FSQL.Add('select *, rowid as rowid from ' + TableName);
+ if Filtered then
+ if Filter <> '' then
+ FSQL.Add(' where ' + Filter);
+ if (FMaxResults = 0) and (FStartResult <> 0) then
+ FMaxResults := -1;
+ if FMaxResults <> 0 then
+ FSQL.Add(' limit ' + IntToStr(FMaxResults));
+ if FStartResult <> 0 then
+ FSQL.Add(' offset ' + IntToStr(FStartResult));
+ if FOrderBy <> '' then
+ FSQL.Add(' order by ('+FOrderBy+')');
+ SQLStr := FSQL.Text;
+ FPrepared := SQLStr;
+ inherited;
+ DebugLeave('TASQLite3Table.InternalOpen');
+end;
+
+procedure TASQLite3Table.SQLiteMasterChanged;
+var
+ r, s : string;
+ m, d : string;
+ p : integer;
+ cAnd : string;
+begin
+ DebugEnter('TASQLite3Table.SQLiteMasterChanged');
+ Close;
+ cAnd := '';
+ r := FMasterFields;
+ Filter := '';
+ while r <> '' do
+ begin
+ p := pos(';', r);
+ if p = 0 then
+ begin
+ if Trim(r) <> '' then
+ s := r;
+ r := '';
+ end
+ else
+ begin
+ s := Trim(Copy(r, 1, p - 1));
+ System.Delete(r, 1, p);
+ end;
+
+ p := pos('=', s);
+ if p = 0 then
+ begin
+ raise AsgError.Create('Syntax error: Masterfields not build of a=b;... pairs');
+ end
+ else
+ begin
+ d := copy(s, 1, p - 1);
+ m := copy(s, p + 1, 99);
+ end;
+// Filter := Filter + cAnd + d + '=' + FMasterSource.DataSet.FieldByName(m).AsString;
+ Filter := Filter + cAnd + d + '=' + QuotedStr(FMasterSource.DataSet.FieldByName(m).AsString) ;
+ cAnd := ' and ';
+ end;
+ if Filter <> '' then
+ filtered := true;
+ Open;
+ DebugLeave('TASQLite3Table.SQLiteMasterChanged');
+end;
+
+procedure TASQLite3Table.InternalDelete;
+begin
+ DebugEnter('TASQLite3Table.InternalDelete');
+ if FReadOnly then
+ raise AsgError.Create('Cannot delete from a read-only dataset');
+
+ if not Connection.FConnected then
+ exit;
+ if FAutoCommit then
+ Connection.ExecStartTransaction(FTransactionType);
+
+ SQLStr := '';
+ CurrentRowId := FResult.GetRowId(FCurRec);
+ FSQL.Clear;
+ FSQL.Add('delete from ' + Tablename + ' where rowid=' + QuotedStr(IntToStr(CurrentRowId)));
+// SQLStr := StringReplace(FSQL.Text, crlf, #10, [rfReplaceAll, rfIgnoreCase]); // albert
+ SQLStr := FSQL.Text;
+ Connection.SQLite3_execute(Connection.DBHandle, PAnsiChar(SQLStr), FParams, self);
+
+ inherited InternalDelete;
+
+ if FAutoCommit then
+ begin
+ try
+ Connection.Commit;
+ except
+ Connection.RollBack;
+ raise;
+ end;
+ end;
+ DebugLeave('TASQLite3Table.InternalDelete');
+end;
+
+procedure TASQLite3Table.InternalPost;
+var
+ i : integer;
+ n: Integer;
+ ThisDateFormat,
+ tmpMasterDetail, MasterField, chDelim: string;
+ slDetail, slValues: TStringList;
+ lsBlobs: TList; //GPA
+ M:TMemoryStream; //GPA
+
+ // this function will return the fielvalue of an indicated fieldbyordinalnumber
+ // if the fieldtype is tdatetime it is transfered to the right date notation as
+ // indicated by jpierce.
+
+ function GetFieldValue(const AField: TField): string; // DI
+ begin // DI
+ if AField.DataType = ftDateTime then // DI
+ GetFieldValue := QuotedStr(FormatDateTime(ThisDateFormat, FieldByName(AField.FieldName).AsDateTime)) // DI
+ else if (AField.DataType = ftBlob) or (AField.DataType = ftMemo) or (AField.DataType = ftFmtMemo) or (AField.DataType = ftGraphic) then //GPA
+ begin //GPA
+ M:=TMemoryStream.Create; //GPA
+ TBlobField(FieldByName(AField.FieldName)).SaveToStream(M);
+ GetFieldValue := #2+IntToStr(1+lsBlobs.Add(Pointer(M))) //GPA
+ end
+ else
+ GetFieldValue := QuotedStr(FieldByName(AField.FieldName).AsString); // DI
+ end; // DI
+
+var
+ f: TField; // DI
+ OldDecimalSeparator: ansiChar; // DI
+begin
+ DebugEnter('TASQLite3Table.InternalPost');
+
+ if FReadOnly then
+ raise AsgError.Create('Cannot post into a read-only dataset');
+
+ // determine datetime style of dataset (if any)
+
+ if FSQLiteDateFormat then
+ ThisDateFormat := 'yyyy-mm-dd hh:nn:ss.zzz'
+ else if (FTableDateFormat <> '') then
+ ThisDateFormat := FTableDateFormat
+ else
+ ThisDateFormat := ShortDateFormat;
+
+ if not Connection.FConnected then Exit;
+ if FAutoCommit then Connection.StartTransaction;
+
+ lsBlobs := TList.Create; //GPA
+ OldDecimalSeparator := DecimalSeparator; // DI
+ try // DI
+ DecimalSeparator := '.'; // DI: Force Delphi's DecimalSeparator to SQL style syntax.
+
+ if (State = dsEdit) and (FResult.Count > 0) then
+ begin
+ CurrentRowId := FResult.GetRowId(FCurRec);
+ FSQL.Clear;
+ FSQL.Add('update ' + TableName + ' set ');
+ SQLStr := '';
+ for i := 0 to FieldList.Count - 1 do begin
+ f := FieldList[i]; // DI
+ if not (f.Calculated or f.Lookup) then // DI
+ SQLStr := SQLStr + f.FieldName + '=' + GetFieldValue(f) + ','; // DI
+ end;
+ SQLStr[Length(SQLStr)] := ' ';
+ FSQL.Add(SQLStr);
+ FSQL.Add(' where rowid=' + QuotedStr(IntToStr(CurrentRowId)));
+
+ SQLStr := FSQL.Text; // DI
+ // DI SQLStr := StringReplace(FSQL.Text, CRLF, #10, [rfReplaceAll, rfIgnoreCase]);
+
+ Connection.SQLite3_ExecSQL(SQLStr,lsBlobs);
+ inherited InternalPost; // rework internals
+ end
+ else
+ begin
+ { If inserting (or appending), increment the bookmark counter and
+ store the data }
+ FSQL.Clear;
+ FSQL.Add('insert into ' + TableName + ' (');
+ SQLStr := '';
+
+ for i := 0 to FieldList.Count - 1 do begin
+ if not (FieldList[i].Calculated or FieldList[i].Lookup) then // aducom
+ SQLStr := SQLStr + FieldList[i].FieldName + ',';
+ end;
+
+ SQLStr[Length(SQLStr)] := ')';
+ SQLStr := SQLStr + ' values (';
+ FSQL.Add(SQLStr);
+ SQLStr := '';
+
+ slDetail := TStringList.Create;
+ slValues := TStringList.Create;
+ i := 0; chDelim := ';';
+ if FMasterSource <> nil then
+ begin
+ while i < Length(FMasterFields) do
+ begin
+ tmpMasterDetail := GetWordByDelim(FMasterFields, i, chDelim);
+ n := Pos('=', tmpMasterDetail);
+ if n <> 0 then
+ begin
+ slDetail.Add(Copy(tmpMasterDetail, 1, n - 1));
+ MasterField := Copy(tmpMasterDetail, n + 1, Length(tmpMasterDetail) - n);
+ slValues.Add(FMasterSource.DataSet.FieldByName(MasterField).AsString);
+ end;
+ end;
+ end;
+
+ if (FPrimaryAutoInc) and (FieldDefs[0].DataType = ftInteger) then begin
+ SQLStr := SQLStr + 'null,';
+ n := 1; // aducom
+ end else begin // aducom
+ n := 0; // aducom
+ end; // aducom
+
+ for i := n to FieldList.Count - 1 do // aducom
+ begin // DI
+ f := FieldList[i];
+ if not (f.Calculated or f.Lookup) then // DI
+ if slDetail.Find(f.FieldName, n) then // DI
+ SQLStr := SQLStr + QuotedStr(slValues.Strings[n]) + ','
+ else
+ SQLStr := SQLStr + GetFieldValue(f) + ','; // DI
+ end; // DI
+
+ slDetail.Free;
+ slValues.Free;
+
+ SQLStr[Length(SQLStr)] := ')';
+ FSQL.Add(SQLStr);
+
+ SQLStr := FSQL.Text; // DI
+ // DI SQLStr := StringReplace(FSQL.Text, CRLF, #10, [rfReplaceAll, rfIgnoreCase]);
+
+ Connection.SQLite3_ExecSQL(SQLStr, lsBlobs);
+ if FPrimaryAutoInc then
+ if FieldDefs[0].DataType = ftInteger then
+ FieldByName(FieldList[0].FieldName).AsInteger :=
+ Connection.SQLite3_LastInsertRow(Connection.DBHandle);
+ if FResult.Count = 0 then
+ Inc(FCurRec);
+ inherited InternalPost; // rework internals
+ end;
+
+ finally // DI
+ DecimalSeparator := OldDecimalSeparator; // DI
+ For I:=0 to lsBlobs.Count-1 do begin // GPA
+ M:=TMemoryStream(lsBlobs.Items[I]); // GPA
+ M.Free; // GPA
+ end; // GPA
+ lsBlobs.Free; // GPA
+
+ end; // DI
+
+ if FAutoCommit then
+ begin
+ try
+ Connection.Commit;
+ except
+ Connection.RollBack;
+ raise;
+ end;
+ end;
+ DebugLeave('TASQLite3Table.InternalPost');
+end;
+
+// Blobfields in SQLite are in fact CLOB fields. However, since it is a large
+// chunk of data for all types the ftBlob is used. Keep in mind that blobs are
+// stored separately of TResult. Within the result structure only the memory
+// handle of the blob is stored.
+
+constructor TASQLite3BlobStream.Create(Field: TBlobField; Mode: TBlobStreamMode);
+begin
+// inherited Create;
+ FField := Field;
+ FMode := Mode;
+ FDataSet := FField.DataSet as TASQLite3BaseQuery;
+ if Mode <> bmWrite then
+ LoadBlobData;
+end;
+
+destructor TASQLite3BlobStream.Destroy;
+begin
+ DebugEnter('TASQLite3BlobStream.Destroy');
+ if FModified then
+ SaveBlobData;
+ inherited Destroy;
+end;
+
+function TASQLite3BlobStream.Read(var Buffer; Count: Longint): Longint;
+begin
+ DebugEnter('ASQLiteBlobStream.Read');
+ Result := inherited Read(Buffer, Count);
+ FOpened := True;
+end;
+
+function TASQLite3BlobStream.Write(const Buffer; Count: Longint): Longint;
+begin
+ DebugEnter('ASQLiteBlobStream.Write');
+ Result := inherited Write(Buffer, Count);
+ FModified := True;
+ FDataSet.SetModified(true);
+end;
+
+procedure TASQLite3BlobStream.LoadBlobData;
+var
+ Stream : TMemoryStream;
+ Offset : Integer;
+ RecBuffer : PAnsiChar;
+begin
+ DebugEnter('ASQLiteBlobStream.LoadBlobData');
+ Self.Size := 0;
+ FDataset.GetActiveBuffer(RecBuffer);
+
+// recbuffer := nil;
+
+ if RecBuffer <> nil then
+ begin
+ Offset := FDataset.GetFieldOffset(FField.FieldNo);
+ Move((RecBuffer + Offset)^, Pointer(Stream), sizeof(Pointer));
+ Self.CopyFrom(Stream, 0);
+ end;
+ Position := 0;
+end;
+
+procedure TASQLite3BlobStream.SaveBlobData;
+var
+ Stream : TMemoryStream;
+ Offset : Integer;
+ RecBuffer : PAnsiChar;
+begin
+ DebugEnter('ASQLiteBlobStream.SaveBlobData');
+ FDataset.GetActiveBuffer(RecBuffer);
+ if RecBuffer <> nil then
+ begin
+ Offset := FDataset.GetFieldOffset(FField.FieldNo);
+ Move((RecBuffer + Offset)^, Pointer(Stream), sizeof(Pointer));
+ Stream.Size := 0;
+ Stream.CopyFrom(Self, 0);
+ Stream.Position := 0;
+ end;
+end;
+
+// Inline sql can be used to store sqlstatements outside of the pascal source.
+// it prevents large 'sql.add' rows. Also it can be used to generate an in-memory
+// database structure if needed
+
+constructor TASQLite3InlineSQL.Create;
+begin
+ inherited;
+ FSQL := TStringList.Create;
+end;
+
+destructor TASQLite3InlineSQL.Destroy;
+begin
+ if Assigned(FSQL) then FSQL.Free;
+ inherited;
+end;
+
+procedure TASQLite3InlineSQL.SetSQL(const Value: TStrings);
+begin
+ if Assigned(FSQL) then
+ FSQL.Assign(Value)
+ else
+ FSQL := Value;
+end;
+
+function TASQLite3InlineSQL.GetSQL: TStrings;
+begin
+ GetSQL := FSQL;
+end;
+
+// save resultset as text, html or xml. Depending on type the following
+// will happen:
+//
+// text: all rows will be output, separated by the given separation symbol
+// xml: all rows will be output, tags are the fieldnames
+//
+//
+// fieldvalue
+// ....
+//
+// html: a table will be generated with the given classnames (if available)
+
+constructor TASQLite3Output.Create;
+begin
+ inherited;
+ FOutput := TStringList.Create;
+end;
+
+destructor TASQLite3Output.Destroy;
+begin
+ if Assigned(FOutput) then FOutput.Free;
+ inherited;
+end;
+
+procedure TASQLite3Output.SetFActive(Active: boolean);
+begin
+ FActive := Active;
+ if FActive = false then begin
+ end else begin
+ if Assigned(FDataSource) then begin
+ if Assigned(FDataSource.DataSet) then begin
+ Execute(FDataSource.DataSet);
+ end else raise AsgError.Create('Missing Datasource.Dataset');
+ end else raise AsgError.Create('Missing Datasource');
+ end;
+end;
+
+procedure TASQLite3Output.SetOutput(const Value: TStrings);
+begin
+ if Assigned(FOutput) then
+ FOutput.Assign(Value)
+ else
+ FOutput := Value;
+end;
+
+function TASQLite3Output.GetOutput: TStrings;
+begin
+ GetOutput := FOutput;
+end;
+
+procedure TASQLite3Output.Notification(AComponent: TComponent; Operation: TOperation);
+begin
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugEnter('TASQLite3Output.Notification');
+{$ENDIF}
+ if Assigned(AComponent) then begin
+ if (Operation = opRemove) then begin
+ if (AComponent is TDataSource) then begin
+ if Assigned(FDataSource) then begin
+ if TDataSource(AComponent) = FDataSource then
+ FDataSource := nil;
+ end;
+ end
+ end;
+ end;
+ inherited;
+{$IFDEF DEBUG_VERY_LOUD}
+ DebugLeave('TASQLite3DB.Notification');
+{$ENDIF}
+end;
+
+procedure TASQLite3Output.Execute(MyDataSet: TDataSet);
+const eXML = 0;
+ eHTML = 1;
+ eTXT = 2;
+var FType : integer;
+ i : integer;
+ Line : string;
+ Sep : string;
+// Indent : integer;
+begin
+ if Assigned(MyDataset) then begin
+ if MyDataSet.Active = false then MyDataSet.Open;
+ Output.Clear;
+ FType := ETxt;
+ Line := '';
+
+ if CompareText(FOutputType[1], 'X') = 0 then begin
+ FType := eXML;
+ Line := Line + '
' + #10;
+ end else if CompareText(FOutputType[1], 'H') = 0 then begin
+ FType := eHTML;
+ Line := Line + '' + #10 + '' + #10 +
+ 'Table ' + MyDataSet.Name + '' + #10 +
+ '' + #10 +
+ '
' + #10 +
+ '
' + #10;
+ end else if CompareText(FOutputType[1], 'T') = 0 then begin
+ FType := eTXT;
+ end;
+
+ Sep := '';
+
+ for i := 0 to MyDataSet.FieldDefs.Count - 1 do begin
+ case FType of
+ eXML: begin
+ end;
+ eHTML: begin
+ Line := Line + '
' + MyDataSet.FieldDefs[i].Name + '
';
+ end;
+ eTXT: begin
+ Line := Line + Sep + MyDataSet.FieldDefs[i].Name;
+ end;
+ end;
+ Sep := FSeparator;
+ end;
+
+ Output.Add(Line); Line := ''; Sep := '';
+ MyDataSet.First;
+
+// Indent := 0;
+ while not MyDataSet.Eof do begin
+
+ case FType of
+ eXML: Line := Line + ' ' + #10;
+ eHTML: Line := Line + '
' + #10;
+ end;
+
+ for i := 0 to MyDataSet.FieldDefs.Count - 1 do begin
+ case FType of
+ eXML: begin
+ Line := Line + ' <' + MyDataSet.FieldDefs[i].Name + '>' +
+ MyDataSet.FieldByName(MyDataSet.FieldDefs[i].Name).AsString +
+ '' + MyDataSet.FieldDefs[i].Name + '>' + #10;
+ end;
+ eHTML: begin
+ Line := Line + '