Browse Source

* Added DBColl

git-svn-id: trunk@10087 -
michael 17 years ago
parent
commit
9a2d12bcb2

+ 1 - 0
.gitattributes

@@ -1107,6 +1107,7 @@ packages/fcl-db/src/base/database.inc svneol=native#text/plain
 packages/fcl-db/src/base/dataset.inc svneol=native#text/plain
 packages/fcl-db/src/base/dataset.inc svneol=native#text/plain
 packages/fcl-db/src/base/datasource.inc svneol=native#text/plain
 packages/fcl-db/src/base/datasource.inc svneol=native#text/plain
 packages/fcl-db/src/base/db.pas svneol=native#text/plain
 packages/fcl-db/src/base/db.pas svneol=native#text/plain
+packages/fcl-db/src/base/dbcoll.pp svneol=native#text/plain
 packages/fcl-db/src/base/dbconst.pas svneol=native#text/plain
 packages/fcl-db/src/base/dbconst.pas svneol=native#text/plain
 packages/fcl-db/src/base/dbwhtml.pp svneol=native#text/plain
 packages/fcl-db/src/base/dbwhtml.pp svneol=native#text/plain
 packages/fcl-db/src/base/dsparams.inc svneol=native#text/plain
 packages/fcl-db/src/base/dsparams.inc svneol=native#text/plain

+ 153 - 125
packages/fcl-db/src/base/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/12]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/14]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
@@ -243,322 +243,322 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-db
 override PACKAGE_NAME=fcl-db
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=dbwhtml dbconst
+override TARGET_RSTS+=dbwhtml dbconst dbcoll
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1637,7 +1637,8 @@ REQUIRE_PACKAGES_FCL-BASE=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_WINUNITS=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_WINUNITS-JEDI=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
@@ -1794,7 +1795,8 @@ REQUIRE_PACKAGES_FCL-BASE=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_WINUNITS=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_WINUNITS-JEDI=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
@@ -1893,30 +1895,56 @@ ifdef UNITDIR_FCL-BASE
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
 endif
 endif
 endif
 endif
-ifdef REQUIRE_PACKAGES_WINUNITS
-PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_WINUNITS),)
-ifneq ($(wildcard $(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)),)
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)
+ifdef REQUIRE_PACKAGES_WINUNITS-BASE
+PACKAGEDIR_WINUNITS-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits-base/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_WINUNITS-BASE),)
+ifneq ($(wildcard $(PACKAGEDIR_WINUNITS-BASE)/units/$(TARGETSUFFIX)),)
+UNITDIR_WINUNITS-BASE=$(PACKAGEDIR_WINUNITS-BASE)/units/$(TARGETSUFFIX)
 else
 else
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)
+UNITDIR_WINUNITS-BASE=$(PACKAGEDIR_WINUNITS-BASE)
 endif
 endif
 ifdef CHECKDEPEND
 ifdef CHECKDEPEND
-$(PACKAGEDIR_WINUNITS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_WINUNITS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS)/$(FPCMADE)
+$(PACKAGEDIR_WINUNITS-BASE)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_WINUNITS-BASE) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS-BASE)/$(FPCMADE)
 endif
 endif
 else
 else
-PACKAGEDIR_WINUNITS=
-UNITDIR_WINUNITS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_WINUNITS),)
-UNITDIR_WINUNITS:=$(firstword $(UNITDIR_WINUNITS))
+PACKAGEDIR_WINUNITS-BASE=
+UNITDIR_WINUNITS-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits-base/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_WINUNITS-BASE),)
+UNITDIR_WINUNITS-BASE:=$(firstword $(UNITDIR_WINUNITS-BASE))
 else
 else
-UNITDIR_WINUNITS=
+UNITDIR_WINUNITS-BASE=
 endif
 endif
 endif
 endif
-ifdef UNITDIR_WINUNITS
-override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS)
+ifdef UNITDIR_WINUNITS-BASE
+override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-BASE)
+endif
+endif
+ifdef REQUIRE_PACKAGES_WINUNITS-JEDI
+PACKAGEDIR_WINUNITS-JEDI:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits-jedi/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_WINUNITS-JEDI),)
+ifneq ($(wildcard $(PACKAGEDIR_WINUNITS-JEDI)/units/$(TARGETSUFFIX)),)
+UNITDIR_WINUNITS-JEDI=$(PACKAGEDIR_WINUNITS-JEDI)/units/$(TARGETSUFFIX)
+else
+UNITDIR_WINUNITS-JEDI=$(PACKAGEDIR_WINUNITS-JEDI)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_WINUNITS-JEDI)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_WINUNITS-JEDI) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS-JEDI)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_WINUNITS-JEDI=
+UNITDIR_WINUNITS-JEDI:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits-jedi/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_WINUNITS-JEDI),)
+UNITDIR_WINUNITS-JEDI:=$(firstword $(UNITDIR_WINUNITS-JEDI))
+else
+UNITDIR_WINUNITS-JEDI=
+endif
+endif
+ifdef UNITDIR_WINUNITS-JEDI
+override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-JEDI)
 endif
 endif
 endif
 endif
 ifndef NOCPUDEF
 ifndef NOCPUDEF

+ 2 - 2
packages/fcl-db/src/base/Makefile.fpc

@@ -6,8 +6,8 @@
 main=fcl-db
 main=fcl-db
 
 
 [target]
 [target]
-units=dbconst db dbwhtml bufdataset_parser bufdataset 
-rsts=dbwhtml dbconst
+units=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll
+rsts=dbwhtml dbconst dbcoll
 
 
 [require]
 [require]
 packages=fcl-base
 packages=fcl-base

+ 204 - 0
packages/fcl-db/src/base/dbcoll.pp

@@ -0,0 +1,204 @@
+unit dbcoll;
+
+interface
+
+uses db, classes, sysutils;
+
+{ ---------------------------------------------------------------------
+  TFieldMap
+  ---------------------------------------------------------------------}
+
+type
+
+  { TFieldMap }
+
+  TFieldMap = Class(TObject)
+  private
+    FDataset: TDataset;
+  Protected
+    Function FindField(FN : String) : TField;
+    Function FieldByName(FN : String) : TField;
+  Public
+    Constructor Create(ADataset : TDataset); virtual;
+    Procedure InitFields; virtual; abstract;
+    Procedure LoadObject(AObject: TObject); virtual; abstract;
+    Function GetFromField(F : TField; ADefault : Integer) : Integer; overload;
+    Function GetFromField(F : TField; ADefault : String) : String; overload;
+    Function GetFromField(F : TField; ADefault : Boolean) : Boolean; overload;
+    Function GetFromField(F : TField; ADefault : TDateTime) : TDateTime; overload;
+    Function GetFromField(F : TField; ADefault : Double) : Double; overload;
+    Function GetFromField(F : TField; ADefault : Currency) : Currency; overload;
+    Property Dataset : TDataset Read FDataset;
+  end;
+  TFieldMapClass = Class of TFieldMap;
+  
+  EDBCollection = Class(Exception);
+
+  { TDBCollectionItem }
+
+  TDBCollectionItem = Class(TCollectionItem)
+  Protected
+    Procedure LoadFromMap(F : TFieldMap); virtual;
+    Class Function FieldMapClass: TFieldMapClass; virtual; abstract;
+  Public
+    Procedure LoadFromDataset(ADataset : TDataset);
+  end;
+  
+  { TDBCollection }
+
+  TDBCollection = Class(TCollection)
+  Protected
+    Function AddDBItem : TDBCollectionItem;
+    Procedure DoLoadFromFieldMap(Map : TFieldMap); virtual;
+  Public
+    Procedure LoadFromDataset(Dataset : TDataset);
+  end;
+
+implementation
+
+resourcestring
+  SErrNoDatasetForField = '%s: Geen dataset om veld %s in te zoeken.';
+
+{ TFieldMap }
+
+constructor TFieldMap.Create(ADataset: TDataset);
+begin
+  FDataset:=ADataset;
+  InitFields;
+end;
+
+function TFieldMap.FieldByName(FN: String): TField;
+begin
+  If (FDataset=Nil) then
+    begin
+    Raise EDBCollection.CreateFmt(SErrNoDatasetForField,[ClassName,FN]);
+    result := nil;
+    end
+  else
+    Result:=FDataset.FieldByName(FN);
+end;
+
+function TFieldMap.FindField(FN: String): TField;
+begin
+  If (FDataset=Nil) then
+    Result:=Nil
+  else
+    Result:=FDataset.FindField(FN);
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: Integer): Integer;
+begin
+  If Assigned(F) then
+    Result:=F.AsInteger
+  else
+    Result:=ADefault;
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: String): String;
+begin
+  If Assigned(F) then
+    Result:=F.AsString
+  else
+    Result:=ADefault;
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: Boolean): Boolean;
+begin
+  If Assigned(F) then
+    begin
+    if (F is TStringField) then
+      Result:=(F.AsString='+')
+    else
+      Result:=F.AsBoolean
+    end
+  else
+    Result:=ADefault;
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: TDateTime): TDateTime;
+begin
+  If Assigned(F) then
+    Result:=F.AsDateTime
+  else
+    Result:=ADefault;
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: Double): Double;
+begin
+  If Assigned(F) then
+    Result:=F.AsFloat
+  else
+    Result:=ADefault;
+end;
+
+function TFieldMap.GetFromField(F: TField; ADefault: Currency): Currency;
+begin
+  If Assigned(F) then
+    Result:=F.AsCurrency
+  else
+    Result:=ADefault;
+end;
+
+{ TDBCollection }
+
+function TDBCollection.AddDBItem: TDBCollectionItem;
+begin
+  Result:=Add as TDBCollectionItem;
+end;
+
+procedure TDBCollection.DoLoadFromFieldMap(Map: TFieldMap);
+
+Var
+  I : TDBCollectionItem;
+
+begin
+  While Not Map.Dataset.EOF do
+    begin
+    I:=AddDBItem;
+    try
+      I.LoadFromMap(Map);
+    Except
+      I.Free;
+      Raise;
+    end;
+    Map.Dataset.Next;
+    end;
+end;
+
+procedure TDBCollection.LoadFromDataset(Dataset: TDataset);
+
+Var
+  M : TFieldMap;
+
+begin
+  M:=TDBCollectionItem(ItemClass).FieldMapClass.Create(Dataset);
+  Try
+    DoLoadFromFieldMap(M);
+  finally
+    M.Free;
+  end;
+end;
+
+{ TDBCollectionItem }
+
+procedure TDBCollectionItem.LoadFromMap(F: TFieldMap);
+begin
+  F.LoadObject(Self);
+end;
+
+procedure TDBCollectionItem.LoadFromDataset(ADataset: TDataset);
+
+Var
+  M : TFieldMap;
+
+begin
+  M:=FieldMapClass.Create(ADataset);
+  Try
+    LoadFromMap(M);
+  Finally
+    M.Free;
+  end;
+end;
+
+end.
+