فهرست منبع

+ Added mysql connection

michael 21 سال پیش
والد
کامیت
2629ece80b
3فایلهای تغییر یافته به همراه118 افزوده شده و 67 حذف شده
  1. 102 50
      fcl/db/sqldb/Makefile
  2. 6 11
      fcl/db/sqldb/Makefile.fpc
  3. 10 6
      fcl/db/sqldb/sqldb.pp

+ 102 - 50
fcl/db/sqldb/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/27]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
 #
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 FORCE:
@@ -215,26 +215,25 @@ endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 ifeq ($(OS_TARGET),linux)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 ifeq ($(OS_TARGET),win32)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 ifeq ($(OS_TARGET),freebsd)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 ifeq ($(OS_TARGET),netbsd)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 ifeq ($(OS_TARGET),openbsd)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 ifeq ($(OS_TARGET),darwin)
-override TARGET_DIRS+=interbase postgres
+override TARGET_DIRS+=interbase postgres mysql
 endif
 override TARGET_UNITS+=sqldb
 override TARGET_RSTS+=sqldb
-override CLEAN_UNITS+=ibas40 ibase60
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_TARGETDIR+=../../$(OS_TARGET)
@@ -572,12 +571,6 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
-ZIPSUFFIX=nwl
-endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 EXEEXT=
@@ -730,18 +723,6 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-FPCMADE=fpcmade.nwl
-ZIPSUFFIX=nwl
-EXEEXT=.nlm
-endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 PPUEXT=.ppu
@@ -834,7 +815,7 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 endif
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
+COPYTREE:=$(CPPROG) -rfp
 endif
 ifndef MOVE
 MOVE:=$(MVPROG) -f
@@ -983,12 +964,13 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl ibase
+override REQUIRE_PACKAGES=rtl 
 ifeq ($(OS_TARGET),linux)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),linux)
@@ -996,6 +978,7 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),linux)
@@ -1003,6 +986,7 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),linux)
@@ -1010,6 +994,7 @@ ifeq ($(CPU_TARGET),sparc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),linux)
@@ -1017,6 +1002,7 @@ ifeq ($(CPU_TARGET),x86_64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),linux)
@@ -1024,12 +1010,12 @@ ifeq ($(CPU_TARGET),arm)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),win32)
@@ -1037,12 +1023,12 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
@@ -1050,6 +1036,7 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
@@ -1057,6 +1044,7 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
@@ -1064,12 +1052,12 @@ ifeq ($(CPU_TARGET),x86_64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
@@ -1077,6 +1065,7 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
@@ -1084,6 +1073,7 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
@@ -1091,6 +1081,7 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
@@ -1098,42 +1089,37 @@ ifeq ($(CPU_TARGET),sparc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(CPU_TARGET),sparc)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
@@ -1141,6 +1127,7 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
@@ -1148,24 +1135,22 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),wdosx)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),palmos)
 ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
@@ -1173,30 +1158,22 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 ifeq ($(OS_TARGET),emx)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-endif
-ifeq ($(OS_TARGET),netwlibc)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
@@ -1277,6 +1254,32 @@ ifdef UNITDIR_POSTGRES
 override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
 endif
 endif
+ifdef REQUIRE_PACKAGES_MYSQL
+PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_MYSQL),)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+else
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_MYSQL)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_MYSQL=
+UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_MYSQL),)
+UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL))
+else
+UNITDIR_MYSQL=
+endif
+endif
+ifdef UNITDIR_MYSQL
+override COMPILER_UNITDIR+=$(UNITDIR_MYSQL)
+endif
+endif
 ifndef NOCPUDEF
 override FPCOPTDEF=$(CPU_TARGET)
 endif
@@ -1686,26 +1689,32 @@ fpc_makefiles: fpc_makefile fpc_makefile_dirs
 ifeq ($(OS_TARGET),linux)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifeq ($(OS_TARGET),win32)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifeq ($(OS_TARGET),freebsd)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifeq ($(OS_TARGET),netbsd)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifeq ($(OS_TARGET),openbsd)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifeq ($(OS_TARGET),darwin)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
 endif
 ifdef TARGET_DIRS_INTERBASE
 interbase_all:
@@ -1793,6 +1802,49 @@ postgres:
 	$(MAKE) -C postgres all
 .PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres
 endif
+ifdef TARGET_DIRS_MYSQL
+mysql_all:
+	$(MAKE) -C mysql all
+mysql_debug:
+	$(MAKE) -C mysql debug
+mysql_smart:
+	$(MAKE) -C mysql smart
+mysql_release:
+	$(MAKE) -C mysql release
+mysql_examples:
+	$(MAKE) -C mysql examples
+mysql_shared:
+	$(MAKE) -C mysql shared
+mysql_install:
+	$(MAKE) -C mysql install
+mysql_sourceinstall:
+	$(MAKE) -C mysql sourceinstall
+mysql_exampleinstall:
+	$(MAKE) -C mysql exampleinstall
+mysql_distinstall:
+	$(MAKE) -C mysql distinstall
+mysql_zipinstall:
+	$(MAKE) -C mysql zipinstall
+mysql_zipsourceinstall:
+	$(MAKE) -C mysql zipsourceinstall
+mysql_zipexampleinstall:
+	$(MAKE) -C mysql zipexampleinstall
+mysql_zipdistinstall:
+	$(MAKE) -C mysql zipdistinstall
+mysql_clean:
+	$(MAKE) -C mysql clean
+mysql_distclean:
+	$(MAKE) -C mysql distclean
+mysql_cleanall:
+	$(MAKE) -C mysql cleanall
+mysql_info:
+	$(MAKE) -C mysql info
+mysql_makefiles:
+	$(MAKE) -C mysql makefiles
+mysql:
+	$(MAKE) -C mysql all
+.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
+endif
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 debug: fpc_debug
 smart: fpc_smart

+ 6 - 11
fcl/db/sqldb/Makefile.fpc

@@ -6,20 +6,15 @@
 main=fcl
 
 [target]
-dirs_linux=interbase postgres
-dirs_freebsd=interbase postgres
-dirs_darwin=interbase postgres
-dirs_netbsd=interbase postgres
-dirs_openbsd=interbase postgres
-dirs_win32=interbase postgres
+dirs_linux=interbase postgres mysql
+dirs_freebsd=interbase postgres mysql
+dirs_darwin=interbase postgres mysql
+dirs_netbsd=interbase postgres mysql
+dirs_openbsd=interbase postgres mysql
+dirs_win32=interbase postgres mysql
 units=sqldb
 rsts=sqldb
 
-[clean]
-units=ibas40 ibase60
-
-[require]
-packages=ibase
 
 [compiler]
 options=-S2 

+ 10 - 6
fcl/db/sqldb/sqldb.pp

@@ -229,7 +229,8 @@ ResourceString
   SErrDatabasenAssigned = 'Database not assigned!';
   SErrTransactionnSet = 'Transaction not set';
   SErrNoStatement = 'SQL statement not set';
-
+  SErrNoSelectStatement = 'Cannot open a non-select statement';
+  
 { TSQLConnection }
 
 procedure TSQLConnection.SetTransaction(Value : TSQLTransaction);
@@ -479,7 +480,6 @@ end;
 
 function TSQLQuery.AllocRecord: PChar;
 begin
-//  writeln('AllocRecord, Recordsize:' + inttostr(FRecordSize));
   Result := AllocMem(FRecordSize);
 end;
 
@@ -560,7 +560,7 @@ begin
     PrepareStatement;
     GetStatementType;
     if FStatementType in [stSelect] then
-    begin
+      begin
       PrepareSelect;
       Execute;
       FOpen:=True;
@@ -569,8 +569,9 @@ begin
         CreateFields;
       SetFieldSizes;
       BindFields(True);
-    end
-    else Execute;
+      end
+    else
+      DatabaseError(SErrNoSelectStatement,Self);
   except
     on E:Exception do
       raise;
@@ -629,7 +630,10 @@ end.
 
 {
   $Log$
-  Revision 1.2  2004-09-26 16:56:32  michael
+  Revision 1.3  2004-10-02 14:52:25  michael
+  + Added mysql connection
+
+  Revision 1.2  2004/09/26 16:56:32  michael
   + Further fixes from Joost van der sluis for Postgresql
 
   Revision 1.1  2004/08/31 09:49:47  michael