You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(25) |
Oct
(10) |
Nov
(19) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(206) |
Mar
(43) |
Apr
(25) |
May
(20) |
Jun
(69) |
Jul
(121) |
Aug
(95) |
Sep
(122) |
Oct
(213) |
Nov
(46) |
Dec
(39) |
2006 |
Jan
(28) |
Feb
(57) |
Mar
(21) |
Apr
(7) |
May
(11) |
Jun
(2) |
Jul
(8) |
Aug
(13) |
Sep
(2) |
Oct
(2) |
Nov
(20) |
Dec
(16) |
2007 |
Jan
(9) |
Feb
(15) |
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(9) |
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
(11) |
Aug
(57) |
Sep
(2) |
Oct
(6) |
Nov
|
Dec
(7) |
2010 |
Jan
(11) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(27) |
Oct
(3) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
(4) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: Carlo B. <car...@us...> - 2005-10-17 19:39:18
|
Update of /cvsroot/instantobjects/Source/Brokers/DBX/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5424/D2005 Log Message: Directory /cvsroot/instantobjects/Source/Brokers/DBX/D2005 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-17 19:38:56
|
Update of /cvsroot/instantobjects/Source/Brokers/UIB/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5320/D2005 Log Message: Directory /cvsroot/instantobjects/Source/Brokers/UIB/D2005 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-17 19:36:14
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4599/Source/Design Modified Files: InstantAttributeEditor.pas InstantClassEditor.pas Log Message: Fixed bug of StarageName column content in ClassEditor Form. Index: InstantAttributeEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.pas,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** InstantAttributeEditor.pas 13 Oct 2005 12:05:30 -0000 1.24 --- InstantAttributeEditor.pas 17 Oct 2005 19:36:05 -0000 1.25 *************** *** 519,523 **** if Assigned(Subject) then begin ! CanBeExternal := Subject.AttributeType in [atPart, atParts, atReferences]; if not CanBeExternal then Subject.StorageKind := skEmbedded; --- 519,523 ---- if Assigned(Subject) then begin ! CanBeExternal := Subject.CanBeExternal; if not CanBeExternal then Subject.StorageKind := skEmbedded; *************** *** 528,533 **** atCurrency, atInteger]; IsContainer := Subject.IsContainer; ! CanHaveStorageName := (Subject.StorageKind <> skExternal) or ! (Subject.AttributeType = atPart); IsString := Subject.AttributeType in [atString, atMemo]; end; --- 528,532 ---- atCurrency, atInteger]; IsContainer := Subject.IsContainer; ! CanHaveStorageName := Subject.CanHaveStorageName; IsString := Subject.AttributeType in [atString, atMemo]; end; Index: InstantClassEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantClassEditor.pas,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** InstantClassEditor.pas 12 Oct 2005 13:39:22 -0000 1.13 --- InstantClassEditor.pas 17 Oct 2005 19:36:05 -0000 1.14 *************** *** 169,174 **** //Add Attribute Type SubItems.Add(Attribute.AttributeTypeText); ! //Add StorageName ! SubItems.Add(Attribute.StorageName); case Attribute.AttributeType of atReference: ImageIndex := 1; --- 169,177 ---- //Add Attribute Type SubItems.Add(Attribute.AttributeTypeText); ! //Add StorageName or ExternalStorageName ! if Attribute.CanBeExternal and not Attribute.CanHaveStorageName then ! SubItems.Add(Attribute.ExternalStorageName) ! else ! SubItems.Add(Attribute.StorageName); case Attribute.AttributeType of atReference: ImageIndex := 1; |
From: Carlo B. <car...@us...> - 2005-10-17 19:36:13
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4599/Source/Core Modified Files: InstantCode.pas Log Message: Fixed bug of StarageName column content in ClassEditor Form. Index: InstantCode.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantCode.pas,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** InstantCode.pas 12 Oct 2005 13:39:22 -0000 1.18 --- InstantCode.pas 17 Oct 2005 19:36:05 -0000 1.19 *************** *** 624,627 **** --- 624,629 ---- procedure SetExternalStorageName(const Value: string); procedure SetStorageKind(const Value: TInstantStorageKind); + function GetCanHaveStorageName: boolean; + function GetCanBeExternal: boolean; protected function GetIsDefault: Boolean; virtual; *************** *** 653,656 **** --- 655,660 ---- property AttributeClass: TInstantAttributeClass read GetAttributeClass write SetAttributeClass; property AttributeClassName: string read GetAttributeClassName write SetAttributeClassName; + property CanHaveStorageName: boolean read GetCanHaveStorageName; + property CanBeExternal: boolean read GetCanBeExternal; property CountPropName: string read GetCountPropName; property FieldName: string read GetFieldName; *************** *** 4150,4153 **** --- 4154,4167 ---- end; + function TInstantCodeAttribute.GetCanHaveStorageName: boolean; + begin + Result := (StorageKind <> skExternal) or (AttributeType = atPart); + end; + + function TInstantCodeAttribute.GetCanBeExternal: boolean; + begin + Result := AttributeType in [atPart, atParts, atReferences]; + end; + { TInstantCodeClassLink } *************** *** 8557,8567 **** end. - - - - - - - - - --- 8571,8572 ---- |
From: Nando D. <na...@us...> - 2005-10-17 10:21:25
|
Update of /cvsroot/instantobjects/Source/Brokers/DBX In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30747/Brokers/DBX Modified Files: InstantDBX.pas Log Message: added correct inc file Index: InstantDBX.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/DBX/InstantDBX.pas,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** InstantDBX.pas 17 Oct 2005 10:03:57 -0000 1.9 --- InstantDBX.pas 17 Oct 2005 10:21:18 -0000 1.10 *************** *** 33,36 **** --- 33,42 ---- interface + {$IFDEF LINUX} + {$I '../../InstantDefines.inc'} + {$ELSE} + {$I '..\..\InstantDefines.inc'} + {$ENDIF} + uses {$IFDEF MSWINDOWS} *************** *** 397,401 **** if Assigned(AParams) then AssignParams(AParams, Params); ! {$IFNDEF VER170} NoMetadata := True; {$ENDIF} --- 403,407 ---- if Assigned(AParams) then AssignParams(AParams, Params); ! {$IFNDEF D9+} NoMetadata := True; {$ENDIF} |
From: Carlo B. <car...@us...> - 2005-10-17 10:05:17
|
Update of /cvsroot/instantobjects/Source/Tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27805/Source/Tests Modified Files: TestIO.cfg TestIO.dof TestIO.dpr Log Message: Changes to compile Tests under D2005 Index: TestIO.cfg =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.cfg,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TestIO.cfg 24 Jul 2005 16:34:58 -0000 1.5 --- TestIO.cfg 17 Oct 2005 10:05:08 -0000 1.6 *************** *** 34,37 **** --- 34,41 ---- -LE"c:\programmi\borland\delphi7\Projects\Bpl" -LN"c:\programmi\borland\delphi7\Projects\Bpl" + -U"..\Core" + -O"..\Core" + -I"..\Core" + -R"..\Core" -w-UNSAFE_TYPE -w-UNSAFE_CODE Index: TestIO.dof =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.dof,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TestIO.dof 24 Jul 2005 16:34:58 -0000 1.5 --- TestIO.dof 17 Oct 2005 10:05:08 -0000 1.6 *************** *** 95,99 **** PackageDLLOutputDir= PackageDCPOutputDir= ! SearchPath= Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX Conditionals= --- 95,99 ---- PackageDLLOutputDir= PackageDCPOutputDir= ! SearchPath=..\Core Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX Conditionals= Index: TestIO.dpr =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.dpr,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** TestIO.dpr 24 Jul 2005 16:34:58 -0000 1.13 --- TestIO.dpr 17 Oct 2005 10:05:08 -0000 1.14 *************** *** 1,5 **** program TestIO; ! {$I '../../InstantDefines.inc'} {$IFDEF FPC} --- 1,5 ---- program TestIO; ! {$I '../InstantDefines.inc'} {$IFDEF FPC} |
From: Carlo B. <car...@us...> - 2005-10-17 10:04:05
|
Update of /cvsroot/instantobjects/Source/Catalogs/IBFb/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27634/Source/Catalogs/IBFb/D2005 Modified Files: IOIBFbCatalog.dpk Log Message: Little changes for D2005 support Index: IOIBFbCatalog.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Catalogs/IBFb/D2005/IOIBFbCatalog.dpk,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IOIBFbCatalog.dpk 7 Sep 2005 23:37:16 -0000 1.2 --- IOIBFbCatalog.dpk 17 Oct 2005 10:03:57 -0000 1.3 *************** *** 24,28 **** {$MINENUMSIZE 1} {$IMAGEBASE $400000} ! {$DESCRIPTION 'InstantObjects Catalog for InterBase and Firebird'} {$LIBSUFFIX '_D9'} {$RUNONLY} --- 24,28 ---- {$MINENUMSIZE 1} {$IMAGEBASE $400000} ! {$DESCRIPTION 'InstantObjects Catalog for InterBase and Firebird (Delphi 2005)'} {$LIBSUFFIX '_D9'} {$RUNONLY} |
From: Carlo B. <car...@us...> - 2005-10-17 10:04:05
|
Update of /cvsroot/instantobjects/Source/Brokers/ADO/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27634/Source/Brokers/ADO/D2005 Modified Files: IOADO.dpk Log Message: Little changes for D2005 support Index: IOADO.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ADO/D2005/IOADO.dpk,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** IOADO.dpk 3 Sep 2005 08:03:10 -0000 1.3 --- IOADO.dpk 17 Oct 2005 10:03:57 -0000 1.4 *************** *** 33,37 **** vcldb, adortl, ! IOCore; contains --- 33,38 ---- vcldb, adortl, ! IOCore, ! IOMSSqlCatalog; contains |
From: Carlo B. <car...@us...> - 2005-10-17 10:04:05
|
Update of /cvsroot/instantobjects/Source/Brokers/DBX In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27634/Source/Brokers/DBX Modified Files: InstantDBX.pas Log Message: Little changes for D2005 support Index: InstantDBX.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/DBX/InstantDBX.pas,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** InstantDBX.pas 15 Jul 2005 10:24:14 -0000 1.8 --- InstantDBX.pas 17 Oct 2005 10:03:57 -0000 1.9 *************** *** 397,401 **** --- 397,403 ---- if Assigned(AParams) then AssignParams(AParams, Params); + {$IFNDEF VER170} NoMetadata := True; + {$ENDIF} end; Result := Query; |
From: Joao M. <jcm...@us...> - 2005-10-16 23:10:28
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16325/Core Modified Files: InstantPersistence.pas Log Message: Removed TInstantNavigationalQuery.TranslateCommand method (duplicated code) Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** InstantPersistence.pas 13 Oct 2005 10:55:33 -0000 1.58 --- InstantPersistence.pas 16 Oct 2005 23:10:20 -0000 1.59 *************** *** 2217,2221 **** function RecNoOfObject(AObject: TInstantObject): Integer; virtual; procedure SetRowNumber(Value: Integer); virtual; - procedure TranslateCommand; override; property DataSet: TDataSet read GetDataSet; property ObjectRowCount: Integer read GetObjectRowCount; --- 2217,2220 ---- *************** *** 12590,12605 **** end; - procedure TInstantNavigationalQuery.TranslateCommand; - begin - if TranslatorClass <> nil then - with TranslatorClass.Create(Self) do - try - CommandText := Self.Command; - Statement := StatementText; - finally - Free; - end; - end; - { TInstantSQLGenerator } --- 12589,12592 ---- |
From: David T. <dav...@us...> - 2005-10-16 18:58:56
|
Update of /cvsroot/instantobjects/Source/Brokers/ZeosDBO/D7 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30127/Source/Brokers/ZeosDBO/D7 Modified Files: DclIOZeosDBO.dpk Log Message: Changed "requires" statement to remove "_D7" suffix from package name. Index: DclIOZeosDBO.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ZeosDBO/D7/DclIOZeosDBO.dpk,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DclIOZeosDBO.dpk 5 Oct 2005 03:19:02 -0000 1.1 --- DclIOZeosDBO.dpk 16 Oct 2005 18:58:48 -0000 1.2 *************** *** 31,35 **** requires ! IOZeosDBO_D7; contains --- 31,35 ---- requires ! IOZeosDBO; contains |
From: David T. <dav...@us...> - 2005-10-16 18:57:50
|
Update of /cvsroot/instantobjects/Source/Brokers/ZeosDBO/D7 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30005/Source/Brokers/ZeosDBO/D7 Modified Files: IOZeosDBO.dpk Log Message: Fix for package conflict in IDE. Changed Zeos broker to link to catalog packages rather than catalog units. Index: IOZeosDBO.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ZeosDBO/D7/IOZeosDBO.dpk,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IOZeosDBO.dpk 5 Oct 2005 03:19:02 -0000 1.1 --- IOZeosDBO.dpk 16 Oct 2005 18:57:42 -0000 1.2 *************** *** 31,39 **** requires IOCore, ! ZComponent; contains - InstantIBFbCatalog in '..\..\..\Catalogs\IBFb\InstantIBFbCatalog.pas', - InstantMSSqlCatalog in '..\..\..\Catalogs\MSSql\InstantMSSqlCatalog.pas', InstantZeosDBOConnectionDefEdit in '..\InstantZeosDBOConnectionDefEdit.pas' {InstantZeosDBOConnectionDefEditForm}, InstantZeosDBO in '..\InstantZeosDBO.pas'; --- 31,39 ---- requires IOCore, ! ZComponent, ! IOIBFbCatalog, ! IOMSSqlCatalog; contains InstantZeosDBOConnectionDefEdit in '..\InstantZeosDBOConnectionDefEdit.pas' {InstantZeosDBOConnectionDefEditForm}, InstantZeosDBO in '..\InstantZeosDBO.pas'; |
From: Nando D. <na...@us...> - 2005-10-13 12:05:39
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28397/Design Modified Files: InstantAttributeEditor.pas Log Message: implemented RFE #1325348 Index: InstantAttributeEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.pas,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** InstantAttributeEditor.pas 12 Oct 2005 16:28:43 -0000 1.23 --- InstantAttributeEditor.pas 13 Oct 2005 12:05:30 -0000 1.24 *************** *** 154,157 **** --- 154,162 ---- {$R *.dfm} + resourcestring + SConfirmZeroSizeStringAttribute = 'Unspecified Size. Most brokers require ' + + 'you to specify a Size for attributes of type String. Are you sure you ' + + 'want to define a String attribute without a Size?'; + { TInstantAttributeEditorForm } *************** *** 347,350 **** --- 352,362 ---- end; + if (Subject.AttributeType = atString) and (Subject.Metadata.Size = 0) then + if not Confirm(SConfirmZeroSizeStringAttribute) then + begin + ModalResult := mrNone; + SizeEdit.SetFocus; + Abort; + end; inherited; end; |
From: Nando D. <na...@us...> - 2005-10-13 11:00:43
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15727/Design Modified Files: InstantClassEditor.dfm Log Message: form reduced in height to make the Class tab look better Index: InstantClassEditor.dfm =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantClassEditor.dfm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InstantClassEditor.dfm 12 Oct 2005 13:39:22 -0000 1.4 --- InstantClassEditor.dfm 13 Oct 2005 11:00:28 -0000 1.5 *************** *** 3,7 **** Top = 196 Width = 408 ! Height = 526 Caption = 'Class Editor' OldCreateOrder = True --- 3,7 ---- Top = 196 Width = 408 ! Height = 399 Caption = 'Class Editor' OldCreateOrder = True *************** *** 11,20 **** inherited EditPanel: TPanel Width = 400 ! Height = 461 object PageControl: TPageControl Left = 4 Top = 4 Width = 392 ! Height = 453 ActivePage = ClassSheet Align = alClient --- 11,20 ---- inherited EditPanel: TPanel Width = 400 ! Height = 341 object PageControl: TPageControl Left = 4 Top = 4 Width = 392 ! Height = 333 ActivePage = ClassSheet Align = alClient *************** *** 123,127 **** object AttributesSplitter: TSplitter Left = 0 ! Top = 264 Width = 376 Height = 3 --- 123,127 ---- object AttributesSplitter: TSplitter Left = 0 ! Top = 165 Width = 376 Height = 3 *************** *** 131,137 **** object InheritedAttributesPanel: TPanel Left = 0 ! Top = 267 Width = 376 ! Height = 150 Align = alBottom BevelOuter = bvNone --- 131,137 ---- object InheritedAttributesPanel: TPanel Left = 0 ! Top = 168 Width = 376 ! Height = 129 Align = alBottom BevelOuter = bvNone *************** *** 150,154 **** Top = 16 Width = 376 ! Height = 134 Align = alClient Columns = < --- 150,154 ---- Top = 16 Width = 376 ! Height = 113 Align = alClient Columns = < *************** *** 175,179 **** Top = 0 Width = 376 ! Height = 264 Align = alClient BevelOuter = bvNone --- 175,179 ---- Top = 0 Width = 376 ! Height = 165 Align = alClient BevelOuter = bvNone *************** *** 192,196 **** Top = 16 Width = 376 ! Height = 248 Align = alClient Columns = < --- 192,196 ---- Top = 16 Width = 376 ! Height = 149 Align = alClient Columns = < *************** *** 219,223 **** end inherited BottomPanel: TPanel ! Top = 461 Width = 400 inherited ButtonPanel: TPanel --- 219,223 ---- end inherited BottomPanel: TPanel ! Top = 341 Width = 400 inherited ButtonPanel: TPanel |
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14716/Core Modified Files: InstantConnectionManagerFormUnit.pas InstantConsts.pas InstantCustomDBEvolverFormUnit.pas InstantDBBuilderFormUnit.pas InstantPersistence.pas Log Message: using old DB builder for catalog-less brokers, and new one for the others Index: InstantCustomDBEvolverFormUnit.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantCustomDBEvolverFormUnit.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** InstantCustomDBEvolverFormUnit.pas 16 Sep 2005 17:22:18 -0000 1.5 --- InstantCustomDBEvolverFormUnit.pas 13 Oct 2005 10:55:33 -0000 1.6 *************** *** 102,105 **** --- 102,106 ---- procedure CustomDBEvolverBeforeCommandSequenceExecute(Sender: TObject); virtual; procedure CustomDBEvolverAfterCommandSequenceExecute(Sender: TObject); virtual; + procedure BeforeBuildCommandSequence; virtual; public // Assign a connector before calling the Execute method, otherwise the *************** *** 219,222 **** --- 220,224 ---- Screen.Cursor := crHourglass; try + BeforeBuildCommandSequence; GetCustomDBEvolver.BuildCommandSequence; SequenceToScreen; *************** *** 321,323 **** --- 323,329 ---- end; + procedure TInstantCustomDBEvolverForm.BeforeBuildCommandSequence; + begin + end; + end. Index: InstantConsts.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantConsts.pas,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** InstantConsts.pas 12 Oct 2005 14:23:52 -0000 1.18 --- InstantConsts.pas 13 Oct 2005 10:55:33 -0000 1.19 *************** *** 95,98 **** --- 95,99 ---- SConnectorMismatch = 'Connector mismatch'; SContainerNotFound = 'Container: ''%s'' not found for class %s'; + SDatabaseEvolutionNonSupported = 'This broker does not support database evolution'; SDefaultContainerNotFound = 'Default container not found for class %s'; SDefaultContainerNotSpecified = 'Default container not specified for class %s'; Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** InstantPersistence.pas 22 Sep 2005 02:57:07 -0000 1.57 --- InstantPersistence.pas 13 Oct 2005 10:55:33 -0000 1.58 *************** *** 1688,1692 **** // back-end database engine. Must be overridden in derived classes that // intend to support catalog-based functionality, like database structure ! // evolution. The predefined implementation just raises an exception. function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; virtual; function GetDatabaseName: string; virtual; --- 1688,1694 ---- // back-end database engine. Must be overridden in derived classes that // intend to support catalog-based functionality, like database structure ! // evolution. The predefined implementation just returns nil. Call ! // IsCatalogSupported to know if CreateCatalog will return an instance of ! // the catalog object or nil. function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; virtual; function GetDatabaseName: string; virtual; *************** *** 1702,1705 **** --- 1704,1709 ---- constructor Create(AConnector: TInstantConnector); virtual; destructor Destroy; override; + // Legacy database building code, to be removed when all brokers will have + // catalogs. procedure BuildDatabase(Scheme: TInstantScheme); // Creates a database build command object that can perform the build *************** *** 1716,1720 **** --- 1720,1731 ---- // Creates and returns a TInstantScheme object that represents the current // database scheme (which may differ from the model-derived scheme). + // If the broker doesn't have a catalog, calling this method will raise + // an exception. Call IsCatalogSupported if you need to know in advance + // whether you can safely call ReadDatabaseSchema or not. function ReadDatabaseScheme: TInstantScheme; virtual; + // Returns True if the broker supports creating a valid catalog. If this + // method returns False, it means that calling CreateCatalog will yield nil, + // and calling ReadDatabaseSchema will raise an exception. + function IsCatalogSupported: Boolean; function RetrieveObject(AObject: TInstantObject; const AObjectId: string; ConflictAction: TInstantConflictAction): Boolean; *************** *** 2024,2028 **** function GetConnection: TCustomConnection; procedure SetConnection(Value: TCustomConnection); ! procedure SetLoginPrompt(const Value: boolean); protected procedure AssignLoginOptions; virtual; --- 2035,2039 ---- function GetConnection: TCustomConnection; procedure SetConnection(Value: TCustomConnection); ! procedure SetLoginPrompt(const Value: Boolean); protected procedure AssignLoginOptions; virtual; *************** *** 10079,10083 **** function TInstantBroker.CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; begin ! raise Exception.CreateFmt(SUndefinedCatalog, [ClassName]); end; --- 10090,10094 ---- function TInstantBroker.CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; begin ! Result := nil; end; *************** *** 10095,10098 **** --- 10106,10111 ---- Result := TInstantScheme.Create; Result.Catalog := CreateCatalog(Result); + if Result.Catalog = nil then + raise Exception.CreateFmt(SUndefinedCatalog, [ClassName]); end; *************** *** 10116,10119 **** --- 10129,10137 ---- end; + function TInstantBroker.IsCatalogSupported: Boolean; + begin + Result := CreateCatalog(nil) <> nil; + end; + { TInstantQuery } *************** *** 11447,11450 **** --- 11465,11469 ---- if not (csDesigning in ComponentState) then CheckConnection; + AssignLoginOptions; Result := FConnection; end; *************** *** 11458,11462 **** begin CheckConnection; - AssignLoginOptions; Connection.Open; end; --- 11477,11480 ---- *************** *** 11487,11490 **** --- 11505,11509 ---- DoBeforeConnectionChange; FConnection := Value; + AssignLoginOptions; DoAfterConnectionChange; end; *************** *** 11495,11506 **** if HasConnection then begin ! Connection.LoginPrompt := FLoginPrompt; end; end; procedure TInstantConnectionBasedConnector.SetLoginPrompt( ! const Value: boolean); begin FLoginPrompt := Value; end; --- 11514,11526 ---- if HasConnection then begin ! FConnection.LoginPrompt := FLoginPrompt; end; end; procedure TInstantConnectionBasedConnector.SetLoginPrompt( ! const Value: Boolean); begin FLoginPrompt := Value; + AssignLoginOptions; end; Index: InstantDBBuilderFormUnit.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantDBBuilderFormUnit.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** InstantDBBuilderFormUnit.pas 16 Sep 2005 17:22:18 -0000 1.5 --- InstantDBBuilderFormUnit.pas 13 Oct 2005 10:55:33 -0000 1.6 *************** *** 54,62 **** TInstantDBBuilderForm = class(TInstantCustomDBEvolverForm) DBBuilder: TInstantDBBuilder; - procedure DBBuilderBeforeCommandSequenceExecute(Sender: TObject); procedure BuildActionExecute(Sender: TObject); private protected function GetCustomDBEvolver: TInstantCustomDBEvolver; override; public end; --- 54,62 ---- TInstantDBBuilderForm = class(TInstantCustomDBEvolverForm) DBBuilder: TInstantDBBuilder; procedure BuildActionExecute(Sender: TObject); private protected function GetCustomDBEvolver: TInstantCustomDBEvolver; override; + procedure BeforeBuildCommandSequence; override; public end; *************** *** 66,69 **** --- 66,72 ---- {$R *.dfm} + uses + InstantPersistence; + { TInstantDBBuilderForm } *************** *** 73,84 **** end; - procedure TInstantDBBuilderForm.DBBuilderBeforeCommandSequenceExecute( - Sender: TObject); - begin - inherited; - if not Connector.DatabaseExists then - Connector.CreateDatabase; - end; - procedure TInstantDBBuilderForm.BuildActionExecute(Sender: TObject); begin --- 76,79 ---- *************** *** 92,94 **** --- 87,99 ---- end; + procedure TInstantDBBuilderForm.BeforeBuildCommandSequence; + var + LConnector: TInstantConnector; + begin + inherited; + LConnector := Connector; + if Assigned(LConnector) then + LConnector.CreateDatabase; + end; + end. Index: InstantConnectionManagerFormUnit.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantConnectionManagerFormUnit.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InstantConnectionManagerFormUnit.pas 12 Oct 2005 14:23:52 -0000 1.4 --- InstantConnectionManagerFormUnit.pas 13 Oct 2005 10:55:33 -0000 1.5 *************** *** 119,122 **** --- 119,125 ---- FOpenDialog: TOpenDialog; FTitle: string; + // Used to detect whether the database builder form has actually built + // the database. + FIsLastDatabaseBuilt: Boolean; function ConfirmDlg(const Text: string): Boolean; function GetCurrentConnectionDef: TInstantConnectionDef; *************** *** 136,139 **** --- 139,144 ---- procedure SetConnectionManager(const Value: TInstantConnectionManager); function GetOpenDialog: TOpenDialog; + procedure AfterDBBuilderBuild(Sender: TObject; + Connector: TInstantConnector); protected procedure Build(ConnectionDef: TInstantConnectionDef); *************** *** 333,382 **** end; ! procedure TInstantConnectionManagerForm.DisconnectActionExecute(Sender: TObject); begin ! Disconnect(CurrentConnectionDef); end; ! (* New version with DBBuilder ! function TInstantConnectionManagerForm.DoBuild( ! ConnectionDef: TInstantConnectionDef): Boolean; ! var ! Connector: TInstantConnector; ! DBBuilderForm: TInstantDBBuilderForm; begin ! if Assigned(FOnBuild) then ! begin ! Result := False; ! FOnBuild(Self, ConnectionDef, Result); ! Exit; ! end; ! if not Assigned(ConnectionDef) then ! begin ! Result := False; ! Exit; ! end; ! Connector := ConnectionDef.CreateConnector(nil); ! try ! DBBuilderForm := TInstantDBBuilderForm.Create(nil); ! ! try ! DBBuilderForm.Connector := Connector; ! DBBuilderForm.TargetModel := Model; ! DBBuilderForm.Execute; ! Result := True; ! finally ! DBBuilderForm.Free; ! end; ! finally ! Connector.Free; ! end; end; - *) - //Old version: it works without catalog function TInstantConnectionManagerForm.DoBuild( ConnectionDef: TInstantConnectionDef): Boolean; var Connector: TInstantConnector; SaveCursor: TCursor; begin --- 338,359 ---- end; ! procedure TInstantConnectionManagerForm.AfterDBBuilderBuild(Sender: TObject; ! Connector: TInstantConnector); begin ! FIsLastDatabaseBuilt := True; ! DoPrepare(Connector); end; ! procedure TInstantConnectionManagerForm.DisconnectActionExecute(Sender: TObject); begin ! Disconnect(CurrentConnectionDef); end; function TInstantConnectionManagerForm.DoBuild( ConnectionDef: TInstantConnectionDef): Boolean; var Connector: TInstantConnector; + DBBuilderForm: TInstantDBBuilderForm; + DBBuilderSupported: Boolean; SaveCursor: TCursor; begin *************** *** 392,418 **** Exit; end; - if not Assigned(ConnectionDef) or not ConfirmDlg( - Format(SDatabaseBuildConfirmation, [ConnectionDef.Name])) then - begin - Result := False; - Exit; - end; Connector := ConnectionDef.CreateConnector(nil); try ! SaveCursor := Screen.Cursor; ! Screen.Cursor := crHourglass; ! try ! Application.ProcessMessages; ! Connector.BuildDatabase(Model); ! DoPrepare(Connector); ! Connector.Disconnect; ! finally ! Screen.Cursor := SaveCursor; end; finally Connector.Free; end; - ShowMessage(SDatabaseBuilt); - Result := True; end; --- 369,412 ---- Exit; end; Connector := ConnectionDef.CreateConnector(nil); try ! DBBuilderSupported := Connector.Broker.IsCatalogSupported; ! // For catalog-less brokers the build is immediate, so it needs ! // confirmation now. ! if not DBBuilderSupported then ! begin ! if not ConfirmDlg(Format(SDatabaseBuildConfirmation, [ConnectionDef.Name])) then ! begin ! Result := False; ! Exit; ! end; ! SaveCursor := Screen.Cursor; ! Screen.Cursor := crHourglass; ! try ! Application.ProcessMessages; ! Connector.BuildDatabase(Model); ! DoPrepare(Connector); ! Result := True; ! finally ! Screen.Cursor := SaveCursor; ! end; ! end ! else ! begin ! DBBuilderForm := TInstantDBBuilderForm.Create(nil); ! try ! DBBuilderForm.Connector := Connector; ! DBBuilderForm.TargetModel := Model; ! DBBuilderForm.AfterBuild := AfterDBBuilderBuild; ! FIsLastDatabaseBuilt := False; ! DBBuilderForm.Execute; ! Result := FIsLastDatabaseBuilt; ! finally ! DBBuilderForm.Free; ! end; end; finally Connector.Free; end; end; *************** *** 436,439 **** --- 430,435 ---- Connector := ConnectionDef.CreateConnector(nil); try + if not Connector.Broker.IsCatalogSupported then + raise EInstantError.Create(SDatabaseEvolutionNonSupported); DBEvolverForm := TInstantDBEvolverForm.Create(nil); try |
From: Nando D. <na...@us...> - 2005-10-13 10:51:35
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14026/Design Modified Files: InstantModelExpert.pas Log Message: trimmed uses clause Index: InstantModelExpert.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantModelExpert.pas,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** InstantModelExpert.pas 12 Oct 2005 14:23:52 -0000 1.11 --- InstantModelExpert.pas 13 Oct 2005 10:51:27 -0000 1.12 *************** *** 167,171 **** uses SysUtils, TypInfo, InstantDesignUtils, InstantUtils, InstantUnitSelect, ! Registry, InstantConnectionManager, Dialogs; const --- 167,171 ---- uses SysUtils, TypInfo, InstantDesignUtils, InstantUtils, InstantUnitSelect, ! InstantConnectionManager, Dialogs; const |
From: Nando D. <na...@us...> - 2005-10-13 10:49:04
|
Update of /cvsroot/instantobjects/Source/Brokers/IBX In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13621/Brokers/IBX Modified Files: InstantIBX.pas Log Message: added warning comment about necessary IBX upgrade Index: InstantIBX.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/IBX/InstantIBX.pas,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** InstantIBX.pas 4 Sep 2005 23:15:53 -0000 1.13 --- InstantIBX.pas 13 Oct 2005 10:48:56 -0000 1.14 *************** *** 331,334 **** --- 331,341 ---- // IBX's TIBDatabase.CreateDatabase is fatally flawed and so we have to // bypass it for the time being. + + // ********** + // Note: if you can't compile this code then you need to upgrade IBX. + // The version distributed with Delphi 7 won't do. Please go to Code Central + // and get yourself an upgrade. + // ********** + Connection.CheckInactive; db_handle := nil; |
From: Nando D. <na...@us...> - 2005-10-13 10:47:09
|
Update of /cvsroot/instantobjects/Demos/PrimerCross In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13209/PrimerCross Modified Files: Main.pas Log Message: using old DB builder for catalog-less brokers, and new one for the others Index: Main.pas =================================================================== RCS file: /cvsroot/instantobjects/Demos/PrimerCross/Main.pas,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Main.pas 16 Sep 2005 17:22:17 -0000 1.13 --- Main.pas 13 Oct 2005 10:46:55 -0000 1.14 *************** *** 320,338 **** var DefaultConnector: TInstantConnector; begin DefaultConnector := InstantDefaultConnector; Connector.IsDefault := True; try ! Connector.StartTransaction; try ! CreateCountries; ! CreateCategories; ! Connector.CommitTransaction; ! except ! Connector.RollbackTransaction; ! raise; end; - if Confirm('Create random data?') then - RandomDataActionExecute(nil); finally if Assigned(DefaultConnector) then --- 320,347 ---- var DefaultConnector: TInstantConnector; + WasConnected: Boolean; begin DefaultConnector := InstantDefaultConnector; Connector.IsDefault := True; try ! WasConnected := Connector.Connected; ! if not WasConnected then ! Connector.Connect; try ! Connector.StartTransaction; ! try ! CreateCountries; ! CreateCategories; ! Connector.CommitTransaction; ! except ! Connector.RollbackTransaction; ! raise; ! end; ! if Confirm('Create random data?') then ! RandomDataActionExecute(nil); ! finally ! if not WasConnected then ! Connector.Disconnect; end; finally if Assigned(DefaultConnector) then |
From: Carlo B. <car...@us...> - 2005-10-12 16:28:50
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31201/Source/Design Modified Files: InstantAttributeEditor.dfm InstantAttributeEditor.pas Log Message: fixed bug: when changing value into StorageNameEdit the cursor disappear because there is a call to UpdateControls into OnChangeEvent. Now UpdateControls is called into OnExit. Index: InstantAttributeEditor.dfm =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.dfm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** InstantAttributeEditor.dfm 16 Sep 2005 00:56:52 -0000 1.12 --- InstantAttributeEditor.dfm 12 Oct 2005 16:28:42 -0000 1.13 *************** *** 124,128 **** DataSource = SubjectSource TabOrder = 4 ! OnChange = StorageNameEditChange end object SizeEdit: TDBEdit --- 124,128 ---- DataSource = SubjectSource TabOrder = 4 ! OnExit = StorageNameEditExit end object SizeEdit: TDBEdit Index: InstantAttributeEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.pas,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** InstantAttributeEditor.pas 16 Sep 2005 00:56:52 -0000 1.22 --- InstantAttributeEditor.pas 12 Oct 2005 16:28:43 -0000 1.23 *************** *** 112,117 **** procedure StorageKindEditChange(Sender: TObject); procedure ExternalStorageNameEditChange(Sender: TObject); - procedure StorageNameEditChange(Sender: TObject); procedure AutoExternalStorageNameCheckBoxClick(Sender: TObject); private FBaseClassStorageName: string; --- 112,117 ---- procedure StorageKindEditChange(Sender: TObject); procedure ExternalStorageNameEditChange(Sender: TObject); procedure AutoExternalStorageNameCheckBoxClick(Sender: TObject); + procedure StorageNameEditExit(Sender: TObject); private FBaseClassStorageName: string; *************** *** 588,597 **** end; - procedure TInstantAttributeEditorForm.StorageNameEditChange( - Sender: TObject); - begin - UpdateControls; - end; - procedure TInstantAttributeEditorForm.ComputeExternalStorageName; --- 588,591 ---- *************** *** 621,624 **** --- 615,624 ---- end; + procedure TInstantAttributeEditorForm.StorageNameEditExit(Sender: TObject); + begin + inherited; + UpdateControls; + end; + end. |
From: Carlo B. <car...@us...> - 2005-10-12 14:24:03
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26631/Source/Core Modified Files: InstantConnectionManager.pas InstantConnectionManagerFormUnit.pas InstantConsts.pas InstantDBEvolution.dcr Log Message: InstantConnectionManager: Restore of old Build process for any broker, including calling to DoPrepare method (used by Primer to initialize objects into database) DbBuilder process is temporarly disabled Added icon ti DbBuilder Added atEvolve to TInstantConnectionManagerActionType to activate Evolve action Index: InstantConsts.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantConsts.pas,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** InstantConsts.pas 4 Sep 2005 23:15:54 -0000 1.17 --- InstantConsts.pas 12 Oct 2005 14:23:52 -0000 1.18 *************** *** 177,181 **** SUnsupportedType = 'Unsupported type: %s'; SUpdateConflict = 'Object %s(''%s'') was updated by another session'; ! implementation --- 177,185 ---- SUnsupportedType = 'Unsupported type: %s'; SUpdateConflict = 'Object %s(''%s'') was updated by another session'; ! SDatabaseBuildConfirmation = 'Build database via connection "%s" and clear all data?'; ! SDatabaseBuilt = 'Database was built successfully'; ! SDeleteConnectionConfirmation = 'Delete connection "%s"?'; ! SConnectionName = 'Connection Name'; ! implementation Index: InstantDBEvolution.dcr =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantDBEvolution.dcr,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsV3z8Z8 and /tmp/cvsGbPcot differ Index: InstantConnectionManager.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantConnectionManager.pas,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** InstantConnectionManager.pas 8 Sep 2005 16:27:28 -0000 1.20 --- InstantConnectionManager.pas 12 Oct 2005 14:23:52 -0000 1.21 *************** *** 51,55 **** type TInstantConnectionManagerActionType = (atNew, atEdit, atDelete, atRename, ! atConnect, atDisconnect, atBuild, atOpen); TInstantConnectionManagerActionTypes = set of TInstantConnectionManagerActionType; --- 51,55 ---- type TInstantConnectionManagerActionType = (atNew, atEdit, atDelete, atRename, ! atConnect, atDisconnect, atBuild, atEvolve, atOpen); TInstantConnectionManagerActionTypes = set of TInstantConnectionManagerActionType; *************** *** 69,72 **** --- 69,73 ---- FModel: TInstantModel; FOnBuild: TInstantConnectionDefEvent; + FOnEvolve: TInstantConnectionDefEvent; FOnConnect: TInstantConnectionDefEvent; FOnDisconnect: TInstantConnectionDefEvent; *************** *** 83,86 **** --- 84,88 ---- procedure SetModel(Value: TInstantModel); procedure SetOnBuild(Value: TInstantConnectionDefEvent); + procedure SetOnEvolve(Value: TInstantConnectionDefEvent); procedure SetOnConnect(Value: TInstantConnectionDefEvent); procedure SetOnDisconnect(Value: TInstantConnectionDefEvent); *************** *** 139,144 **** property VisibleActions: TInstantConnectionManagerActionTypes read FVisibleActions write SetVisibleActions ! default [atNew, atEdit, atDelete, atRename, atConnect, atDisconnect, atBuild, atOpen]; property OnBuild: TInstantConnectionDefEvent read FOnBuild write SetOnBuild; property OnConnect: TInstantConnectionDefEvent read FOnConnect write SetOnConnect; property OnDisconnect: TInstantConnectionDefEvent --- 141,147 ---- property VisibleActions: TInstantConnectionManagerActionTypes read FVisibleActions write SetVisibleActions ! default [atNew, atEdit, atDelete, atRename, atConnect, atDisconnect, atBuild, atEvolve, atOpen]; property OnBuild: TInstantConnectionDefEvent read FOnBuild write SetOnBuild; + property OnEvolve: TInstantConnectionDefEvent read FOnEvolve write SetOnEvolve; property OnConnect: TInstantConnectionDefEvent read FOnConnect write SetOnConnect; property OnDisconnect: TInstantConnectionDefEvent *************** *** 173,177 **** inherited; FVisibleActions := [atNew, atEdit, atDelete, atRename, atConnect, ! atDisconnect, atBuild, atOpen]; FFileFormat := sfBinary; end; --- 176,180 ---- inherited; FVisibleActions := [atNew, atEdit, atDelete, atRename, atConnect, ! atDisconnect, atBuild, atEvolve, atOpen]; FFileFormat := sfBinary; end; *************** *** 224,227 **** --- 227,236 ---- end; + procedure TInstantConnectionManager.SetOnEvolve( + Value: TInstantConnectionDefEvent); + begin + FOnEvolve := Value; + end; + procedure TInstantConnectionManager.SetOnConnect( Value: TInstantConnectionDefEvent); Index: InstantConnectionManagerFormUnit.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantConnectionManagerFormUnit.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** InstantConnectionManagerFormUnit.pas 4 Sep 2005 23:15:54 -0000 1.3 --- InstantConnectionManagerFormUnit.pas 12 Oct 2005 14:23:52 -0000 1.4 *************** *** 109,112 **** --- 109,113 ---- FModel: TInstantModel; FOnBuild: TInstantConnectionDefEvent; + FOnEvolve: TInstantConnectionDefEvent; FOnConnect: TInstantConnectionDefEvent; FOnDisconnect: TInstantConnectionDefEvent; *************** *** 159,162 **** --- 160,164 ---- property VisibleActions: TInstantConnectionManagerActionTypes read GetVisibleActions write SetVisibleActions; property OnBuild: TInstantConnectionDefEvent read FOnBuild write FOnBuild; + property OnEvolve: TInstantConnectionDefEvent read FOnEvolve write FOnEvolve; property OnConnect: TInstantConnectionDefEvent read FOnConnect write FOnConnect; property OnDisconnect: TInstantConnectionDefEvent read FOnDisconnect write FOnDisconnect; *************** *** 303,307 **** procedure TInstantConnectionManagerForm.EditItemCaption(Item : TListItem); begin ! Item.Caption := InputBox('Connection Name','Name:',Item.Caption); end; {$ENDIF} --- 305,309 ---- procedure TInstantConnectionManagerForm.EditItemCaption(Item : TListItem); begin ! Item.Caption := InputBox(SConnectionName,SConnectionName+':',Item.Caption); end; {$ENDIF} *************** *** 314,318 **** ConnectionDef := CurrentConnectionDef; if Assigned(ConnectionDef) and ! ConfirmDlg(Format('Delete connection "%s"?', [ConnectionDef.Name])) then begin ConnectionDefs.Remove(ConnectionDef); --- 316,320 ---- ConnectionDef := CurrentConnectionDef; if Assigned(ConnectionDef) and ! ConfirmDlg(Format(SDeleteConnectionConfirmation, [ConnectionDef.Name])) then begin ConnectionDefs.Remove(ConnectionDef); *************** *** 336,339 **** --- 338,342 ---- end; + (* New version with DBBuilder function TInstantConnectionManagerForm.DoBuild( ConnectionDef: TInstantConnectionDef): Boolean; *************** *** 356,359 **** --- 359,363 ---- try DBBuilderForm := TInstantDBBuilderForm.Create(nil); + try DBBuilderForm.Connector := Connector; *************** *** 368,371 **** --- 372,419 ---- end; end; + *) + + //Old version: it works without catalog + function TInstantConnectionManagerForm.DoBuild( + ConnectionDef: TInstantConnectionDef): Boolean; + var + Connector: TInstantConnector; + SaveCursor: TCursor; + begin + if Assigned(FOnBuild) then + begin + Result := False; + FOnBuild(Self, ConnectionDef, Result); + Exit; + end; + if not Assigned(ConnectionDef) then + begin + Result := False; + Exit; + end; + if not Assigned(ConnectionDef) or not ConfirmDlg( + Format(SDatabaseBuildConfirmation, [ConnectionDef.Name])) then + begin + Result := False; + Exit; + end; + Connector := ConnectionDef.CreateConnector(nil); + try + SaveCursor := Screen.Cursor; + Screen.Cursor := crHourglass; + try + Application.ProcessMessages; + Connector.BuildDatabase(Model); + DoPrepare(Connector); + Connector.Disconnect; + finally + Screen.Cursor := SaveCursor; + end; + finally + Connector.Free; + end; + ShowMessage(SDatabaseBuilt); + Result := True; + end; function TInstantConnectionManagerForm.DoEvolve( *************** *** 375,378 **** --- 423,432 ---- DBEvolverForm: TInstantDBEvolverForm; begin + if Assigned(FOnEvolve) then + begin + Result := False; + FOnEvolve(Self, ConnectionDef, Result); + Exit; + end; if not Assigned(ConnectionDef) then begin *************** *** 498,501 **** --- 552,556 ---- if DisconnectAction.Visible then Include(Result, atDisconnect); if BuildAction.Visible then Include(Result, atBuild); + if EvolveAction.Visible then Include(Result, atEvolve); if FileOpenAction.Visible then Include(Result, atOpen); end; *************** *** 628,631 **** --- 683,687 ---- DisconnectAction.Visible := atDisconnect in Value; BuildAction.Visible := atBuild in Value; + EvolveAction.Visible := atEvolve in Value; FileOpenAction.Visible := atOpen in Value; end; *************** *** 710,713 **** --- 766,770 ---- VisibleActions := Value.VisibleActions; OnBuild := Value.OnBuild; + OnEvolve := Value.OnEvolve; OnConnect := Value.OnConnect; OnDisconnect := Value.OnDisconnect; |
From: Carlo B. <car...@us...> - 2005-10-12 14:24:03
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26631/Source/Design Modified Files: InstantModelExpert.pas Log Message: InstantConnectionManager: Restore of old Build process for any broker, including calling to DoPrepare method (used by Primer to initialize objects into database) DbBuilder process is temporarly disabled Added icon ti DbBuilder Added atEvolve to TInstantConnectionManagerActionType to activate Evolve action Index: InstantModelExpert.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantModelExpert.pas,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** InstantModelExpert.pas 4 Sep 2005 23:15:54 -0000 1.10 --- InstantModelExpert.pas 12 Oct 2005 14:23:52 -0000 1.11 *************** *** 533,537 **** Model := CodeModel.Model; FileName := ChangeFileExt(Project.FileName, '.con'); ! VisibleActions := [atNew, atEdit, atDelete, atRename, atBuild, atOpen]; Execute; finally --- 533,537 ---- Model := CodeModel.Model; FileName := ChangeFileExt(Project.FileName, '.con'); ! VisibleActions := [atNew, atEdit, atDelete, atRename, atBuild, atEvolve, atOpen]; Execute; finally |
From: Carlo B. <car...@us...> - 2005-10-12 13:41:04
|
Update of /cvsroot/instantobjects/Source/Brokers/XML In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12785/Source/Brokers/XML Modified Files: InstantXML.pas Log Message: UseTransaction and loginprompt for XML broker default to False. Index: InstantXML.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/XML/InstantXML.pas,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** InstantXML.pas 8 Sep 2005 07:35:31 -0000 1.9 --- InstantXML.pas 12 Oct 2005 13:40:56 -0000 1.10 *************** *** 125,130 **** --- 125,133 ---- public class function ConnectionDefClass: TInstantConnectionDefClass; override; + constructor Create(AOwner: TComponent); override; published property Connection: TXMLFilesAccessor read GetConnection write SetConnection; + property UseTransactions default False; + property LoginPrompt default False; end; *************** *** 614,617 **** --- 617,627 ---- end; + constructor TInstantXMLConnector.Create(AOwner: TComponent); + begin + inherited; + LoginPrompt := False; + UseTransactions := False; + end; + function TInstantXMLConnector.CreateBroker: TInstantBroker; begin |
From: Carlo B. <car...@us...> - 2005-10-12 13:39:43
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12317/Source/Design Modified Files: InstantClassEditor.dfm InstantClassEditor.pas Log Message: Fixed bug: loose of References storage name Index: InstantClassEditor.dfm =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantClassEditor.dfm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** InstantClassEditor.dfm 24 Jul 2005 16:34:57 -0000 1.3 --- InstantClassEditor.dfm 12 Oct 2005 13:39:22 -0000 1.4 *************** *** 2,7 **** Left = 319 Top = 196 ! Width = 397 ! Height = 325 Caption = 'Class Editor' OldCreateOrder = True --- 2,7 ---- Left = 319 Top = 196 ! Width = 408 ! Height = 526 Caption = 'Class Editor' OldCreateOrder = True *************** *** 10,20 **** TextHeight = 13 inherited EditPanel: TPanel ! Width = 389 ! Height = 267 object PageControl: TPageControl Left = 4 Top = 4 ! Width = 381 ! Height = 259 ActivePage = ClassSheet Align = alClient --- 10,20 ---- TextHeight = 13 inherited EditPanel: TPanel ! Width = 400 ! Height = 461 object PageControl: TPageControl Left = 4 Top = 4 ! Width = 392 ! Height = 453 ActivePage = ClassSheet Align = alClient *************** *** 48,52 **** end object StorageLabel: TLabel ! Left = 152 Top = 160 Width = 68 --- 48,52 ---- end object StorageLabel: TLabel ! Left = 148 Top = 160 Width = 68 *************** *** 96,100 **** end object StorageEdit: TDBEdit ! Left = 152 Top = 176 Width = 217 --- 96,100 ---- end object StorageEdit: TDBEdit ! Left = 148 Top = 176 Width = 217 *************** *** 123,128 **** object AttributesSplitter: TSplitter Left = 0 ! Top = 111 ! Width = 365 Height = 3 Cursor = crVSplit --- 123,128 ---- object AttributesSplitter: TSplitter Left = 0 ! Top = 264 ! Width = 376 Height = 3 Cursor = crVSplit *************** *** 131,137 **** object InheritedAttributesPanel: TPanel Left = 0 ! Top = 114 ! Width = 365 ! Height = 109 Align = alBottom BevelOuter = bvNone --- 131,137 ---- object InheritedAttributesPanel: TPanel Left = 0 ! Top = 267 ! Width = 376 ! Height = 150 Align = alBottom BevelOuter = bvNone *************** *** 140,144 **** Left = 0 Top = 0 ! Width = 365 Height = 16 Align = alTop --- 140,144 ---- Left = 0 Top = 0 ! Width = 376 Height = 16 Align = alTop *************** *** 149,163 **** Left = 0 Top = 16 ! Width = 365 ! Height = 93 Align = alClient Columns = < item - AutoSize = True Caption = 'Name' end item - AutoSize = True Caption = 'Type' end> ReadOnly = True --- 149,167 ---- Left = 0 Top = 16 ! Width = 376 ! Height = 134 Align = alClient Columns = < item Caption = 'Name' + Width = 124 end item Caption = 'Type' + Width = 124 + end + item + Caption = 'Storage Name' + Width = 124 end> ReadOnly = True *************** *** 170,175 **** Left = 0 Top = 0 ! Width = 365 ! Height = 111 Align = alClient BevelOuter = bvNone --- 174,179 ---- Left = 0 Top = 0 ! Width = 376 ! Height = 264 Align = alClient BevelOuter = bvNone *************** *** 178,182 **** Left = 0 Top = 0 ! Width = 365 Height = 16 Align = alTop --- 182,186 ---- Left = 0 Top = 0 ! Width = 376 Height = 16 Align = alTop *************** *** 187,201 **** Left = 0 Top = 16 ! Width = 365 ! Height = 95 Align = alClient Columns = < item - AutoSize = True Caption = 'Name' end item - AutoSize = True Caption = 'Type' end> ReadOnly = True --- 191,209 ---- Left = 0 Top = 16 ! Width = 376 ! Height = 248 Align = alClient Columns = < item Caption = 'Name' + Width = 124 end item Caption = 'Type' + Width = 124 + end + item + Caption = 'Storage Name' + Width = 124 end> ReadOnly = True *************** *** 211,218 **** end inherited BottomPanel: TPanel ! Top = 267 ! Width = 389 inherited ButtonPanel: TPanel ! Left = 229 end end --- 219,226 ---- end inherited BottomPanel: TPanel ! Top = 461 ! Width = 400 inherited ButtonPanel: TPanel ! Left = 240 end end Index: InstantClassEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantClassEditor.pas,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** InstantClassEditor.pas 7 Sep 2005 04:18:58 -0000 1.12 --- InstantClassEditor.pas 12 Oct 2005 13:39:22 -0000 1.13 *************** *** 167,171 **** --- 167,174 ---- Caption := HostClass.Name + '.' + Name; Data := Attribute; + //Add Attribute Type SubItems.Add(Attribute.AttributeTypeText); + //Add StorageName + SubItems.Add(Attribute.StorageName); case Attribute.AttributeType of atReference: ImageIndex := 1; *************** *** 327,345 **** procedure TInstantClassEditorForm.FitColumns(View: TListView); begin ! with View do ! if Columns.Count > 0 then ! begin ! with Columns[Pred(Columns.Count)] do ! begin {$IFDEF MSWINDOWS} ! Width := -1; ! Width := -2; {$ENDIF} {$IFDEF LINUX} ! Width := View.Width div 2; {$ENDIF} ! end; ! end; end; --- 330,346 ---- procedure TInstantClassEditorForm.FitColumns(View: TListView); + var + i : integer; begin ! //adjust Columns size to window width ! for i := View.Columns.Count-1 downto 0 do ! begin {$IFDEF MSWINDOWS} ! View.Columns[i].AutoSize := True; {$ENDIF} {$IFDEF LINUX} ! View.Columns[i].Width := View.Width div View.Columns.Count; {$ENDIF} ! end; end; *************** *** 441,454 **** finally EndUpdate; ! {$IFDEF MSWINDOWS} ! with View.Column[1] do ! {$ENDIF} ! {$IFDEF LINUX} ! with View.Columns.Items[1] do ! {$ENDIF} ! begin ! Width := -1; ! Width := -2; ! end; end; end; --- 442,446 ---- finally EndUpdate; ! FitColumns(View); end; end; |
From: Carlo B. <car...@us...> - 2005-10-12 13:39:36
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12317/Source/Core Modified Files: InstantCode.pas Log Message: Fixed bug: loose of References storage name Index: InstantCode.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantCode.pas,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** InstantCode.pas 4 Sep 2005 23:15:54 -0000 1.17 --- InstantCode.pas 12 Oct 2005 13:39:22 -0000 1.18 *************** *** 1774,1777 **** --- 1774,1779 ---- Break; Token := ReadToken; + if SameText(Token, MetaKeyStored) then + FMetadata.StorageName := ReadStringValue; if SameText(Token, MetaKeyDefault) then FMetadata.IsDefault := True; |
From: Joao M. <jcm...@us...> - 2005-10-05 03:22:31
|
Update of /cvsroot/instantobjects/Source/Brokers/ZeosDBO In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9978/Brokers/ZeosDBO Modified Files: InstantZeosDBO.pas InstantZeosDBOConnectionDefEdit.pas InstantZeosDBOReg.pas Log Message: D7 support Zeos 6.5.1 (unstable) support Broker improvements Index: InstantZeosDBO.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ZeosDBO/InstantZeosDBO.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InstantZeosDBO.pas 2 Oct 2005 01:53:02 -0000 1.1 --- InstantZeosDBO.pas 5 Oct 2005 03:22:22 -0000 1.2 *************** *** 17,21 **** * License. * ! * The Original Code is: Joao Morais * * The Initial Developer of the Original Code is: Joao Morais --- 17,21 ---- * License. * ! * The Original Code is: InstantObjects ZeosDBO Support * * The Initial Developer of the Original Code is: Joao Morais *************** *** 25,28 **** --- 25,29 ---- * * Contributor(s): + * Enrique Esquivel * * ***** END LICENSE BLOCK ***** *) *************** *** 30,33 **** --- 31,50 ---- unit InstantZeosDBO; + {$IFDEF LINUX} + {$I '../../InstantDefines.inc'} + {$ELSE} + {$I '..\..\InstantDefines.inc'} + {$ENDIF} + + // Supported databases + + {$DEFINE SYBASE_SUPPORT} + {$DEFINE MSSQL_SUPPORT} + {$DEFINE IBFB_SUPPORT} + {$DEFINE ORACLE_SUPPORT} + {$DEFINE PGSQL_SUPPORT} + {$DEFINE MYSQL_SUPPORT} + {$DEFINE SQLITE_SUPPORT} + interface *************** *** 108,116 **** procedure AssignDataSetParams(DataSet: TDataSet; AParams: TParams); override; procedure AssignParam(SourceParam, TargetParam: TParam); virtual; - function InternalDataTypeToColumnType(DataType: TInstantDataType): string; virtual; abstract; function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; override; function GetDatabaseName: string; override; function GetSQLQuote: Char; override; function InternalCreateQuery: TInstantQuery; override; public function CreateDataSet(const AStatement: string; AParams: TParams = nil): TDataSet; override; --- 125,136 ---- procedure AssignDataSetParams(DataSet: TDataSet; AParams: TParams); override; procedure AssignParam(SourceParam, TargetParam: TParam); virtual; function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; override; function GetDatabaseName: string; override; + function GetSQLDelimiters: string; override; function GetSQLQuote: Char; override; function InternalCreateQuery: TInstantQuery; override; + function InternalDataTypeToColumnType(DataType: TInstantDataType): string; virtual; abstract; + function SupportsQuotedIdents: Boolean; virtual; abstract; + function UseBooleanFields: Boolean; virtual; abstract; public function CreateDataSet(const AStatement: string; AParams: TParams = nil): TDataSet; override; *************** *** 123,126 **** --- 143,147 ---- TInstantZeosDBOResolver = class(TInstantSQLResolver) + // Read an integer field and convert it to boolean expression protected function ReadBooleanField(DataSet: TDataSet; const FieldName: string): Boolean; override; *************** *** 128,131 **** --- 149,153 ---- TInstantZeosDBOTranslator = class(TInstantRelationalTranslator) + // Translate boolean expressions to '0' or '1' protected function TranslateConstant(Constant: TInstantIQLConstant; Writer: TInstantIQLWriter): Boolean; override; *************** *** 137,166 **** end; TInstantZeosDBOSybaseBroker = class(TInstantZeosDBOBroker) protected - function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; function GetDBMSName: string; override; end; TInstantZeosDBOMSSQLBroker = class(TInstantZeosDBOBroker) protected function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; override; - procedure AssignParam(SourceParam, TargetParam: TParam); override; - function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; override; - function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; function GetDBMSName: string; override; ! function InternalCreateQuery: TInstantQuery; override; ! end; ! ! TInstantZeosDBOMSSQLResolver = class(TInstantSQLResolver) end; ! TInstantZeosDBOMSSQLQuery = class(TInstantSQLQuery) ! end; TInstantZeosDBOIbFbBroker = class(TInstantZeosDBOBroker) protected - function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; override; end; --- 159,196 ---- end; + { Sybase broker } + + {$IFDEF SYBASE_SUPPORT} TInstantZeosDBOSybaseBroker = class(TInstantZeosDBOBroker) protected function GetDBMSName: string; override; + function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; end; + {$ENDIF} + { MS SQL Server broker } + + {$IFDEF MSSQL_SUPPORT} TInstantZeosDBOMSSQLBroker = class(TInstantZeosDBOBroker) protected function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; override; function GetDBMSName: string; override; ! function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; ! function SupportsQuotedIdents: Boolean; override; ! function UseBooleanFields: Boolean; override; end; + {$ENDIF} ! { Interbase and Firebird brokers } + {$IFDEF IBFB_SUPPORT} TInstantZeosDBOIbFbBroker = class(TInstantZeosDBOBroker) protected function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; override; + function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; end; *************** *** 174,189 **** function GetDBMSName: string; override; end; ! TInstantZeosDBOPGSQLBroker = class(TInstantZeosDBOBroker) protected function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; function GetDBMSName: string; override; end; TInstantZeosDBOMySQLBroker = class(TInstantZeosDBOBroker) protected function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; function GetDBMSName: string; override; end; procedure AssignZeosDBOProtocols(Strings: TStrings); --- 204,256 ---- function GetDBMSName: string; override; end; + {$ENDIF} ! { Oracle broker } ! ! {$IFDEF ORACLE_SUPPORT} ! TInstantZeosDBOOracleBroker = class(TInstantZeosDBOBroker) protected + function GetDBMSName: string; override; function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; + end; + {$ENDIF} + + { PostgreSQL broker } + + {$IFDEF PGSQL_SUPPORT} + TInstantZeosDBOPgSQLBroker = class(TInstantZeosDBOBroker) + protected function GetDBMSName: string; override; + function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; end; + {$ENDIF} + + { MySQL broker } + {$IFDEF MYSQL_SUPPORT} TInstantZeosDBOMySQLBroker = class(TInstantZeosDBOBroker) protected + function GetDBMSName: string; override; function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; + end; + {$ENDIF} + + { SQLite broker } + + {$IFDEF SQLITE_SUPPORT} + TInstantZeosDBOSQLiteBroker = class(TInstantZeosDBOBroker) + protected function GetDBMSName: string; override; + function InternalDataTypeToColumnType(DataType: TInstantDataType): string; override; + function SupportsQuotedIdents: Boolean; override; + function UseBooleanFields: Boolean; override; end; + {$ENDIF} procedure AssignZeosDBOProtocols(Strings: TStrings); *************** *** 192,198 **** uses ! SysUtils, Controls, InstantConsts, InstantClasses, InstantDBBuild, ! InstantIbFbCatalog, InstantMSSQLCatalog, InstantZeosDBOConnectionDefEdit, ! InstantUtils, ZClasses, ZCompatibility, ZDbcIntfs, ZDataset; { Global routines } --- 259,276 ---- uses ! SysUtils, ! {$IFDEF D7+}Types,{$ENDIF} ! Controls, ! InstantConsts, ! InstantClasses, ! InstantDBBuild, ! {$IFDEF IBFB_SUPPORT}InstantIbFbCatalog,{$ENDIF} ! {$IFDEF MSSQL_SUPPORT}InstantMSSQLCatalog,{$ENDIF} ! InstantZeosDBOConnectionDefEdit, ! InstantUtils, ! ZClasses, ! ZCompatibility, ! ZDbcIntfs, ! ZDataset; { Global routines } *************** *** 269,276 **** procedure TInstantZeosDBOConnector.AfterConnectionChange; begin ! { TODO : It is a good idea changes Connection properties after assignment? } if HasConnection then begin FConnection.Connected := False; FConnection.AutoCommit := False; FConnection.TransactIsolationLevel := tiReadCommitted; --- 347,356 ---- procedure TInstantZeosDBOConnector.AfterConnectionChange; begin ! { TODO : Is it a good idea changes connection properties after assignment? } if HasConnection then begin FConnection.Connected := False; + // We need to turn Auto Commit off and set ReadCommitted + // Transaction Isolation Level FConnection.AutoCommit := False; FConnection.TransactIsolationLevel := tiReadCommitted; *************** *** 313,344 **** begin CheckConnection; if SameText(Connection.Protocol, 'sybase') then ! Result := TInstantZeosDBOSybaseBroker.Create(Self) ! else if SameText(Connection.Protocol, 'mssql') then ! Result := TInstantZeosDBOMSSQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'interbase-5') then ! Result := TInstantZeosDBOInterbaseBroker.Create(Self) ! else if SameText(Connection.Protocol, 'interbase-6') then ! Result := TInstantZeosDBOInterbaseBroker.Create(Self) ! else if SameText(Connection.Protocol, 'firebird-1.0') then ! Result := TInstantZeosDBOFirebirdBroker.Create(Self) ! else if SameText(Connection.Protocol, 'firebird-1.5') then ! Result := TInstantZeosDBOFirebirdBroker.Create(Self) ! else if SameText(Connection.Protocol, 'postgresql') then ! Result := TInstantZeosDBOPGSQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'postgresql-6.5') then ! Result := TInstantZeosDBOPGSQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'postgresql-7.2') then ! Result := TInstantZeosDBOPGSQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'mysql') then ! Result := TInstantZeosDBOMySQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'mysql-3.20') then ! Result := TInstantZeosDBOMySQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'mysql-3.23') then ! Result := TInstantZeosDBOMySQLBroker.Create(Self) ! else if SameText(Connection.Protocol, 'mysql-4.0') then ! Result := TInstantZeosDBOMySQLBroker.Create(Self) ! else ! raise EInstantError.CreateFmt('ZeosDBO protocol "%s" not supported yet', [Connection.Protocol]); end; --- 393,450 ---- begin CheckConnection; + Result := nil; + + {$IFDEF SYBASE_SUPPORT} if SameText(Connection.Protocol, 'sybase') then ! Result := TInstantZeosDBOSybaseBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF MSSQL_SUPPORT} ! if SameText(Connection.Protocol, 'mssql') then ! Result := TInstantZeosDBOMSSQLBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF IBFB_SUPPORT} ! if SameText(Connection.Protocol, 'interbase-5') or ! SameText(Connection.Protocol, 'interbase-6') then ! Result := TInstantZeosDBOInterbaseBroker.Create(Self); ! ! if SameText(Connection.Protocol, 'firebird-1.0') or ! SameText(Connection.Protocol, 'firebird-1.5') then ! Result := TInstantZeosDBOFirebirdBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF ORACLE_SUPPORT} ! if SameText(Connection.Protocol, 'oracle') or ! SameText(Connection.Protocol, 'oracle-9i') then ! Result := TInstantZeosDBOOracleBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF PGSQL_SUPPORT} ! if SameText(Connection.Protocol, 'postgresql') or ! SameText(Connection.Protocol, 'postgresql-6.5') or ! SameText(Connection.Protocol, 'postgresql-7.2') or ! SameText(Connection.Protocol, 'postgresql-7.3') or ! SameText(Connection.Protocol, 'postgresql-7.4') then ! Result := TInstantZeosDBOPgSQLBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF MYSQL_SUPPORT} ! if SameText(Connection.Protocol, 'mysql') or ! SameText(Connection.Protocol, 'mysql-3.20') or ! SameText(Connection.Protocol, 'mysql-3.23') or ! SameText(Connection.Protocol, 'mysql-4.0') or ! SameText(Connection.Protocol, 'mysql-4.1') then ! Result := TInstantZeosDBOMySQLBroker.Create(Self); ! {$ENDIF} ! ! {$IFDEF SQLITE_SUPPORT} ! if SameText(Connection.Protocol, 'sqlite') or ! SameText(Connection.Protocol, 'sqlite-2.8') then ! Result := TInstantZeosDBOSQLiteBroker.Create(Self); ! {$ENDIF} ! ! if Result = nil then ! raise EInstantError.CreateFmt('ZeosDBO protocol "%s" not supported', [Connection.Protocol]); end; *************** *** 476,480 **** case SourceParam.DataType of ftBoolean: ! TargetParam.AsInteger := Integer(SourceParam.AsBoolean); (* ftDateTime: --- 582,589 ---- case SourceParam.DataType of ftBoolean: ! if UseBooleanFields then ! TargetParam.Assign(SourceParam) ! else ! TargetParam.AsInteger := Integer(SourceParam.AsBoolean); (* ftDateTime: *************** *** 533,537 **** Map: TInstantAttributeMap): TInstantSQLResolver; begin ! Result := TInstantZeosDBOResolver.Create(Self, Map); end; --- 642,649 ---- Map: TInstantAttributeMap): TInstantSQLResolver; begin ! if UseBooleanFields then ! Result := TInstantSQLResolver.Create(Self, Map) ! else ! Result := TInstantZeosDBOResolver.Create(Self, Map); end; *************** *** 568,573 **** --- 680,698 ---- end; + function TInstantZeosDBOBroker.GetSQLDelimiters: string; + begin + // This method returns the delimiter that *will be* used and we are + // changing its behavior (choosing if will be used or not), thus, + // it'll only supports double quote for the time being + { TODO : TInstantSQLBroker needs to know if I want to use Delimiters or not } + if Connector.UseDelimitedIdents and SupportsQuotedIdents then + Result := '""' + else + Result := ''; //inherited GetSQLDelimiters; + end; + function TInstantZeosDBOBroker.GetSQLQuote: Char; begin + { TODO : Check Oracle and SQLite compatibility. } Result := ''''; end; *************** *** 575,579 **** function TInstantZeosDBOBroker.InternalCreateQuery: TInstantQuery; begin ! Result := TInstantZeosDBOQuery.Create(Connector); end; --- 700,707 ---- function TInstantZeosDBOBroker.InternalCreateQuery: TInstantQuery; begin ! if UseBooleanFields then ! Result := TInstantSQLQuery.Create(Connector) ! else ! Result := TInstantZeosDBOQuery.Create(Connector); end; *************** *** 612,648 **** { TInstantZeosDBOSybaseBroker } function TInstantZeosDBOSybaseBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; - (* const - //dtInteger, dtFloat, dtCurrency, dtBoolean, dtString, dtMemo, dtDateTime, dtBlob Types: array[TInstantDataType] of string = ( ! '', ! '', ! '', ! '', ! '', ! '', ! '', ! ''); ! *) begin ! //Result := Types[DataType]; ! raise EInstantError.Create('Sybase protocol not implemented yet'); end; ! function TInstantZeosDBOSybaseBroker.GetDBMSName: string; begin ! Result := 'Sybase'; end; { TInstantZeosDBOMSSQLBroker } ! procedure TInstantZeosDBOMSSQLBroker.AssignParam(SourceParam, TargetParam: TParam); begin ! if SourceParam.DataType = ftBoolean then ! TargetParam.Assign(SourceParam) ! else ! inherited; end; --- 740,790 ---- { TInstantZeosDBOSybaseBroker } + {$IFDEF SYBASE_SUPPORT} + function TInstantZeosDBOSybaseBroker.GetDBMSName: string; + begin + Result := 'Sybase'; + end; + function TInstantZeosDBOSybaseBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; const Types: array[TInstantDataType] of string = ( ! 'INTEGER', ! 'DOUBLE PRECISION', ! 'MONEY', ! 'TINYINT', ! 'VARCHAR', ! 'TEXT', ! 'DATETIME', ! 'IMAGE'); begin ! Result := Types[DataType]; end; ! function TInstantZeosDBOSybaseBroker.SupportsQuotedIdents: Boolean; begin ! // Sybase needs a "SET quoted_identifier ON" before first statement using ! // Quoted Identifier ! Result := False; end; + function TInstantZeosDBOSybaseBroker.UseBooleanFields: Boolean; + begin + Result := False; + end; + {$ENDIF} + { TInstantZeosDBOMSSQLBroker } ! {$IFDEF MSSQL_SUPPORT} ! function TInstantZeosDBOMSSQLBroker.CreateCatalog( ! const AScheme: TInstantScheme): TInstantCatalog; begin ! Result := TInstantMSSQLCatalog.Create(AScheme, Self); ! end; ! ! function TInstantZeosDBOMSSQLBroker.GetDBMSName: string; ! begin ! Result := 'MS SQL Server'; end; *************** *** 663,690 **** end; ! function TInstantZeosDBOMSSQLBroker.CreateCatalog( ! const AScheme: TInstantScheme): TInstantCatalog; ! begin ! Result := TInstantMSSQLCatalog.Create(AScheme, Self); ! end; ! ! function TInstantZeosDBOMSSQLBroker.CreateResolver( ! Map: TInstantAttributeMap): TInstantSQLResolver; ! begin ! Result := TInstantZeosDBOMSSQLResolver.Create(Self, Map); ! end; ! ! function TInstantZeosDBOMSSQLBroker.GetDBMSName: string; begin ! Result := 'MS SQL Server'; end; ! function TInstantZeosDBOMSSQLBroker.InternalCreateQuery: TInstantQuery; begin ! Result := TInstantZeosDBOMSSQLQuery.Create(Connector); end; ! { TInstantZeosDBOIbFbBrokerBroker } function TInstantZeosDBOIbFbBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; --- 805,823 ---- end; ! function TInstantZeosDBOMSSQLBroker.SupportsQuotedIdents: Boolean; begin ! { TODO : Check } ! Result := False; end; ! function TInstantZeosDBOMSSQLBroker.UseBooleanFields: Boolean; begin ! Result := True; end; + {$ENDIF} ! { TInstantZeosDBOIbFbBroker } + {$IFDEF IBFB_SUPPORT} function TInstantZeosDBOIbFbBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; *************** *** 709,720 **** end; ! { TInstantZeosDBOInterBaseBroker } function TInstantZeosDBOInterbaseBroker.GetDBMSName: string; begin ! Result := 'InterBase'; end; ! { TInstantZeosDBOFirebirdUIBBroker } function TInstantZeosDBOFirebirdBroker.GetDBMSName: string; --- 842,863 ---- end; ! function TInstantZeosDBOIbFbBroker.SupportsQuotedIdents: Boolean; ! begin ! Result := True; ! end; ! ! function TInstantZeosDBOIbFbBroker.UseBooleanFields: Boolean; ! begin ! Result := False; ! end; ! ! { TInstantZeosDBOInterbaseBroker } function TInstantZeosDBOInterbaseBroker.GetDBMSName: string; begin ! Result := 'Interbase'; end; ! { TInstantZeosDBOFirebirdBroker } function TInstantZeosDBOFirebirdBroker.GetDBMSName: string; *************** *** 722,729 **** Result := 'Firebird'; end; ! { TInstantZeosDBOPGSQLBroker } ! function TInstantZeosDBOPGSQLBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; (* --- 865,879 ---- Result := 'Firebird'; end; + {$ENDIF} ! { TInstantZeosDBOOracleBroker } ! {$IFDEF ORACLE_SUPPORT} ! function TInstantZeosDBOOracleBroker.GetDBMSName: string; ! begin ! Result := 'Oracle'; ! end; ! ! function TInstantZeosDBOOracleBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; (* *************** *** 742,755 **** begin //Result := Types[DataType]; ! raise EInstantError.Create('PostgreeSQL protocol not implemented yet'); end; ! function TInstantZeosDBOPGSQLBroker.GetDBMSName: string; begin Result := 'PostgreSQL'; end; { TInstantZeosDBOMySQLBroker } function TInstantZeosDBOMySQLBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; --- 892,955 ---- begin //Result := Types[DataType]; ! { TODO : Implement } ! raise EInstantError.Create('Oracle protocol not implemented yet'); end; ! function TInstantZeosDBOOracleBroker.SupportsQuotedIdents: Boolean; ! begin ! { TODO : Chech } ! Result := False; ! end; ! ! function TInstantZeosDBOOracleBroker.UseBooleanFields: Boolean; ! begin ! { TODO : Check } ! Result := False; ! end; ! {$ENDIF} ! ! { TInstantZeosDBOPgSQLBroker } ! ! {$IFDEF PGSQL_SUPPORT} ! function TInstantZeosDBOPgSQLBroker.GetDBMSName: string; begin Result := 'PostgreSQL'; end; + function TInstantZeosDBOPgSQLBroker.InternalDataTypeToColumnType( + DataType: TInstantDataType): string; + const + Types: array[TInstantDataType] of string = ( + 'INTEGER', + 'FLOAT8', + 'DECIMAL(14,4)', + 'BOOLEAN', + 'VARCHAR', + 'TEXT', + 'TIMESTAMP', + 'BYTEA'); + begin + Result := Types[DataType]; + end; + + function TInstantZeosDBOPgSQLBroker.SupportsQuotedIdents: Boolean; + begin + Result := True; + end; + + function TInstantZeosDBOPgSQLBroker.UseBooleanFields: Boolean; + begin + Result := True; + end; + {$ENDIF} + { TInstantZeosDBOMySQLBroker } + {$IFDEF MYSQL_SUPPORT} + function TInstantZeosDBOMySQLBroker.GetDBMSName: string; + begin + Result := 'MySQL'; + end; + function TInstantZeosDBOMySQLBroker.InternalDataTypeToColumnType( DataType: TInstantDataType): string; *************** *** 768,776 **** end; ! function TInstantZeosDBOMySQLBroker.GetDBMSName: string; begin ! Result := 'MySQL'; end; initialization RegisterClass(TInstantZeosDBOConnectionDef); --- 968,1019 ---- end; ! function TInstantZeosDBOMySQLBroker.SupportsQuotedIdents: Boolean; begin ! { TODO : Check } ! Result := False; end; + function TInstantZeosDBOMySQLBroker.UseBooleanFields: Boolean; + begin + Result := False; + end; + {$ENDIF} + + { TInstantZeosDBOSQLiteBroker } + + {$IFDEF SQLITE_SUPPORT} + function TInstantZeosDBOSQLiteBroker.GetDBMSName: string; + begin + Result := 'SQLite'; + end; + + function TInstantZeosDBOSQLiteBroker.InternalDataTypeToColumnType( + DataType: TInstantDataType): string; + const + Types: array[TInstantDataType] of string = ( + 'INTEGER', + 'FLOAT', + 'NUMERIC(14,4)', + 'BOOLEAN', + 'VARCHAR', + 'TEXT', + 'TIMESTAMP', + 'BLOB'); + begin + Result := Types[DataType]; + end; + + function TInstantZeosDBOSQLiteBroker.SupportsQuotedIdents: Boolean; + begin + { TODO : Check } + Result := False; + end; + + function TInstantZeosDBOSQLiteBroker.UseBooleanFields: Boolean; + begin + Result := True; + end; + {$ENDIF} + initialization RegisterClass(TInstantZeosDBOConnectionDef); Index: InstantZeosDBOReg.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ZeosDBO/InstantZeosDBOReg.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InstantZeosDBOReg.pas 2 Oct 2005 01:53:02 -0000 1.1 --- InstantZeosDBOReg.pas 5 Oct 2005 03:22:22 -0000 1.2 *************** *** 17,21 **** * License. * ! * The Original Code is: Joao Morais * * The Initial Developer of the Original Code is: Joao Morais --- 17,21 ---- * License. * ! * The Original Code is: InstantObjects ZeosDBO Support * * The Initial Developer of the Original Code is: Joao Morais Index: InstantZeosDBOConnectionDefEdit.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/ZeosDBO/InstantZeosDBOConnectionDefEdit.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InstantZeosDBOConnectionDefEdit.pas 2 Oct 2005 01:53:02 -0000 1.1 --- InstantZeosDBOConnectionDefEdit.pas 5 Oct 2005 03:22:22 -0000 1.2 *************** *** 17,21 **** * License. * ! * The Original Code is: Joao Morais * * The Initial Developer of the Original Code is: Joao Morais --- 17,21 ---- * License. * ! * The Original Code is: InstantObjects ZeosDBO Support * * The Initial Developer of the Original Code is: Joao Morais *************** *** 30,33 **** --- 30,39 ---- unit InstantZeosDBOConnectionDefEdit; + {$IFDEF LINUX} + {$I '../../InstantDefines.inc'} + {$ELSE} + {$I '..\..\InstantDefines.inc'} + {$ENDIF} + interface |