From: Carlo B. <car...@us...> - 2004-08-23 09:55:36
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22153/Source/Core Modified Files: InstantPersistence.pas InstantRtti.pas Log Message: InstantRTTI bug fixing, InstantADO bug-fixing, PerformanceView changed Index: InstantRtti.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantRtti.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** InstantRtti.pas 29 Jul 2004 20:43:15 -0000 1.3 --- InstantRtti.pas 23 Aug 2004 09:55:20 -0000 1.4 *************** *** 401,418 **** end; PropInfo := PropInfos[Index]; - if GetTypeData(PropInfo^.PropType^).FloatType = ftCurr then - begin - CurrencyValue := GetFloatProp(FInstance, PropInfo); - Result := CurrencyValue; - end else if PropInfo^.PropType^^.Kind = tkFloat then begin ! Value := GetFloatProp(FInstance, PropInfo); ! if (PropInfo.PropType^ = TypeInfo(TDateTime)) ! or (PropInfo.PropType^ = TypeInfo(TDate)) ! or (PropInfo.PropType^ = TypeInfo(TTime)) then ! Result := VarFromDateTime(Value) ! else ! Result := Value; end else Result := GetPropValue(FInstance, Names[Index]); --- 401,420 ---- end; PropInfo := PropInfos[Index]; if PropInfo^.PropType^^.Kind = tkFloat then begin ! if GetTypeData(PropInfo^.PropType^).FloatType = ftCurr then ! begin ! CurrencyValue := GetFloatProp(FInstance, PropInfo); ! Result := CurrencyValue; ! end else ! begin ! Value := GetFloatProp(FInstance, PropInfo); ! if (PropInfo.PropType^ = TypeInfo(TDateTime)) ! or (PropInfo.PropType^ = TypeInfo(TDate)) ! or (PropInfo.PropType^ = TypeInfo(TTime)) then ! Result := VarFromDateTime(Value) ! else ! Result := Value; ! end end else Result := GetPropValue(FInstance, Names[Index]); Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** InstantPersistence.pas 5 Aug 2004 12:34:12 -0000 1.5 --- InstantPersistence.pas 23 Aug 2004 09:55:20 -0000 1.6 *************** *** 358,362 **** FModel: TInstantModel; FTableMetadataCollection: TInstantTableMetadatas; ! FBlobStreamFormat: TInstantStreamFormat; //CB function GetTableMetadataCollection: TInstantTableMetadatas; function GetTableMetadatas(Index: Integer): TInstantTableMetadata; --- 358,362 ---- FModel: TInstantModel; FTableMetadataCollection: TInstantTableMetadatas; ! FBlobStreamFormat: TInstantStreamFormat; function GetTableMetadataCollection: TInstantTableMetadatas; function GetTableMetadatas(Index: Integer): TInstantTableMetadata; *************** *** 375,379 **** property TableMetadataCount: Integer read GetTableMetadataCount; property TableMetadatas[Index: Integer]: TInstantTableMetadata read GetTableMetadatas; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; //CB end; --- 375,379 ---- property TableMetadataCount: Integer read GetTableMetadataCount; property TableMetadatas[Index: Integer]: TInstantTableMetadata read GetTableMetadatas; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; end; *************** *** 748,753 **** destructor Destroy; override; procedure Assign(Source: TPersistent); override; ! procedure AssignPicture(Source: TPicture); //CB ! procedure AssignToPicture(Dest: TPicture); //CB procedure Clear; procedure LoadDataFromStream(AStream: TStream); --- 748,753 ---- destructor Destroy; override; procedure Assign(Source: TPersistent); override; ! procedure AssignPicture(Source: TPicture); ! procedure AssignToPicture(Dest: TPicture); procedure Clear; procedure LoadDataFromStream(AStream: TStream); *************** *** 768,772 **** end; - //CB TInstantGraphic = class(TInstantBlob) protected --- 768,771 ---- *************** *** 1244,1248 **** private FIsBuilt: Boolean; ! FBlobStreamFormat: TInstantStreamFormat; //CB protected function GetCaption: string; virtual; --- 1243,1247 ---- private FIsBuilt: Boolean; ! FBlobStreamFormat: TInstantStreamFormat; protected function GetCaption: string; virtual; *************** *** 1256,1260 **** published property IsBuilt: Boolean read FIsBuilt write FIsBuilt; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; //CB end; --- 1255,1259 ---- published property IsBuilt: Boolean read FIsBuilt write FIsBuilt; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; end; *************** *** 1289,1293 **** FBeforeBuildDatabase: TInstantSchemeEvent; FBeforeDisconnect: TNotifyEvent; ! FBlobStreamFormat: TInstantStreamFormat; //CB FOnGenerateId: TInstantGenerateIdEvent; procedure AbandonObjects; --- 1288,1292 ---- FBeforeBuildDatabase: TInstantSchemeEvent; FBeforeDisconnect: TNotifyEvent; ! FBlobStreamFormat: TInstantStreamFormat; FOnGenerateId: TInstantGenerateIdEvent; procedure AbandonObjects; *************** *** 1375,1379 **** property BeforeConnect: TNotifyEvent read FBeforeConnect write FBeforeConnect; property BeforeDisconnect: TNotifyEvent read FBeforeDisconnect write FBeforeDisconnect; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; //CB property OnGenerateId: TInstantGenerateIdEvent read FOnGenerateId write FOnGenerateId; end; --- 1374,1378 ---- property BeforeConnect: TNotifyEvent read FBeforeConnect write FBeforeConnect; property BeforeDisconnect: TNotifyEvent read FBeforeDisconnect write FBeforeDisconnect; ! property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat write FBlobStreamFormat default sfBinary; property OnGenerateId: TInstantGenerateIdEvent read FOnGenerateId write FOnGenerateId; end; *************** *** 1531,1535 **** public constructor Create(AConnector: TInstantConnector); virtual; ! destructor destroy; override; procedure BuildDatabase(Scheme: TInstantScheme); function CreateQuery: TInstantQuery; --- 1530,1534 ---- public constructor Create(AConnector: TInstantConnector); virtual; ! destructor destroy; override; procedure BuildDatabase(Scheme: TInstantScheme); function CreateQuery: TInstantQuery; *************** *** 1813,1817 **** procedure SetLoginPrompt(const Value: boolean); protected ! procedure AssignLoginOptions; virtual;//CB procedure AfterConnectionChange; virtual; procedure BeforeConnectionChange; virtual; --- 1812,1816 ---- procedure SetLoginPrompt(const Value: boolean); protected ! procedure AssignLoginOptions; virtual; procedure AfterConnectionChange; virtual; procedure BeforeConnectionChange; virtual; *************** *** 1821,1829 **** procedure InternalDisconnect; override; procedure Notification(AComponent: TComponent; Operation: TOperation); override; - property Connection: TCustomConnection read GetConnection write SetConnection; public function HasConnection: Boolean; constructor Create(AOwner : TComponent); override; ! property LoginPrompt: boolean read FLoginPrompt write SetLoginPrompt default True; //CB end; --- 1820,1828 ---- procedure InternalDisconnect; override; procedure Notification(AComponent: TComponent; Operation: TOperation); override; public + property Connection: TCustomConnection read GetConnection write SetConnection; function HasConnection: Boolean; constructor Create(AOwner : TComponent); override; ! property LoginPrompt: boolean read FLoginPrompt write SetLoginPrompt default True; end; *************** *** 1837,1841 **** constructor Create(Collection: TCollection); override; published ! property LoginPrompt: boolean read FLoginPrompt write FLoginPrompt default True; //CB end; --- 1836,1840 ---- constructor Create(Collection: TCollection); override; published ! property LoginPrompt: boolean read FLoginPrompt write FLoginPrompt default True; end; *************** *** 2062,2066 **** FGenerator: TInstantSQLGenerator; FResolverList: TObjectList; ! FUsePreparedQuery : boolean; //CB function GetResolverList: TObjectList; function GetResolverCount: Integer; --- 2061,2065 ---- FGenerator: TInstantSQLGenerator; FResolverList: TObjectList; ! FUsePreparedQuery : boolean; function GetResolverList: TObjectList; function GetResolverCount: Integer; *************** *** 2072,2079 **** procedure InternalBuildDatabase(Scheme: TInstantScheme); override; property ResolverList: TObjectList read GetResolverList; ! procedure PrepareQuery(DataSet : TDataSet); virtual; //CB ! function ExecuteQuery(DataSet : TDataSet) : integer; virtual; //CB ! procedure UnprepareQuery(DataSet : TDataSet); virtual; //CB ! procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); virtual; //CB public destructor Destroy; override; --- 2071,2078 ---- procedure InternalBuildDatabase(Scheme: TInstantScheme); override; property ResolverList: TObjectList read GetResolverList; ! procedure PrepareQuery(DataSet : TDataSet); virtual; ! function ExecuteQuery(DataSet : TDataSet) : integer; virtual; ! procedure UnprepareQuery(DataSet : TDataSet); virtual; ! procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); virtual; public destructor Destroy; override; *************** *** 2086,2090 **** property ResolverCount: Integer read GetResolverCount; property Resolvers[Index: Integer]: TInstantSQLResolver read GetResolvers; ! property UsePreparedQuery : boolean read FUsePreparedQuery write FUsePreparedQuery; //CB end; --- 2085,2089 ---- property ResolverCount: Integer read GetResolverCount; property Resolvers[Index: Integer]: TInstantSQLResolver read GetResolvers; ! property UsePreparedQuery : boolean read FUsePreparedQuery write FUsePreparedQuery; end; *************** *** 2099,2107 **** FUpdateConcurrentSQL: string; - //CB FPreparedDataSet : TDataSet; LastStatement : string; LastConnector : TObject; ! function CreatePreparedQuery(const AStatement: string; AParams: TParams = nil): TDataSet; //CB procedure AddIntegerParam(Params: TParams; const ParamName: string; Value: Integer); --- 2098,2105 ---- FUpdateConcurrentSQL: string; FPreparedDataSet : TDataSet; LastStatement : string; LastConnector : TObject; ! function CreatePreparedQuery(const AStatement: string; AParams: TParams = nil): TDataSet; procedure AddIntegerParam(Params: TParams; const ParamName: string; Value: Integer); *************** *** 2154,2158 **** public constructor Create(ABroker: TInstantSQLBroker; AMap: TInstantAttributeMap); ! destructor Destroy; override; //CB property Broker: TInstantSQLBroker read GetBroker; property DeleteConcurrentSQL: string read GetDeleteConcurrentSQL write FDeleteConcurrentSQL; --- 2152,2156 ---- public constructor Create(ABroker: TInstantSQLBroker; AMap: TInstantAttributeMap); ! destructor Destroy; override; property Broker: TInstantSQLBroker read GetBroker; property DeleteConcurrentSQL: string read GetDeleteConcurrentSQL write FDeleteConcurrentSQL; *************** *** 2163,2167 **** property UpdateConcurrentSQL: string read GetUpdateConcurrentSQL write FUpdateConcurrentSQL; property UpdateSQL: string read GetUpdateSQL write FUpdateSQL; ! property UsePreparedQuery : boolean read GetUsePreparedQuery; //CB end; --- 2161,2165 ---- property UpdateConcurrentSQL: string read GetUpdateConcurrentSQL write FUpdateConcurrentSQL; property UpdateSQL: string read GetUpdateSQL write FUpdateSQL; ! property UsePreparedQuery : boolean read GetUsePreparedQuery; end; *************** *** 2306,2312 **** end; ! procedure AssignInstantStreamFormat(StringList : TStrings); //CB function InstantAttributeTypeToDataType(AttributeType: TInstantAttributeType; ! BlobStreamFormat: TInstantStreamFormat = sfBinary): TInstantDataType; //CB function InstantConnectorClasses: TList; procedure InstantCheckConnection(Connection: TCustomConnection); --- 2304,2310 ---- end; ! procedure AssignInstantStreamFormat(StringList : TStrings); function InstantAttributeTypeToDataType(AttributeType: TInstantAttributeType; ! BlobStreamFormat: TInstantStreamFormat = sfBinary): TInstantDataType; function InstantConnectorClasses: TList; procedure InstantCheckConnection(Connection: TCustomConnection); *************** *** 2333,2337 **** procedure InstantUnregisterClasses(AClasses: array of TInstantObjectClass); ! function InstantResolveGraphicFileType(AStream: TStream ): TInstantGraphicFileFormat; //CB procedure InstantRegisterGraphicClass(InstantGraphicFileFormat : TInstantGraphicFileFormat; AGraphicClass: TGraphicClass); --- 2331,2335 ---- procedure InstantUnregisterClasses(AClasses: array of TInstantObjectClass); ! function InstantResolveGraphicFileType(AStream: TStream ): TInstantGraphicFileFormat; procedure InstantRegisterGraphicClass(InstantGraphicFileFormat : TInstantGraphicFileFormat; AGraphicClass: TGraphicClass); *************** *** 2365,2369 **** ConnectorClasses: TList; ClassList: TList; ! GraphicClassList: array[TInstantGraphicFileFormat] OF TGraphicClass; //CB RuntimeModel: TInstantModel; ObjectNotifiers: TInstantObjectNotifiers; --- 2363,2367 ---- ConnectorClasses: TList; ClassList: TList; ! GraphicClassList: array[TInstantGraphicFileFormat] OF TGraphicClass; RuntimeModel: TInstantModel; ObjectNotifiers: TInstantObjectNotifiers; *************** *** 2408,2412 **** { Global routines } ! procedure AssignInstantStreamFormat(StringList : TStrings); //CB var i : TInstantStreamFormat; --- 2406,2410 ---- { Global routines } ! procedure AssignInstantStreamFormat(StringList : TStrings); var i : TInstantStreamFormat; *************** *** 8038,8042 **** procedure TInstantObject.SaveState; begin - //CB: bug fixing if State.PersistentId = '' then Exit; --- 8036,8039 ---- *************** *** 8205,8209 **** procedure TInstantConnectionDef.InitConnector(Connector: TInstantConnector); begin ! Connector.BlobStreamFormat := BlobStreamFormat; //CB end; --- 8202,8206 ---- procedure TInstantConnectionDef.InitConnector(Connector: TInstantConnector); begin ! Connector.BlobStreamFormat := BlobStreamFormat; end; *************** *** 10916,10921 **** try (Connector as TInstantConnectionBasedConnector).Connection := Connection; ! (Connector as TInstantConnectionBasedConnector).BlobStreamFormat := BlobStreamFormat; //CB ! (Connector as TInstantConnectionBasedConnector).LoginPrompt := LoginPrompt; //CB except Connection.Free; --- 10913,10918 ---- try (Connector as TInstantConnectionBasedConnector).Connection := Connection; ! (Connector as TInstantConnectionBasedConnector).BlobStreamFormat := BlobStreamFormat; ! (Connector as TInstantConnectionBasedConnector).LoginPrompt := LoginPrompt; except Connection.Free; *************** *** 12454,12458 **** try (Attribute as TInstantPart).SaveObjectToStream(Stream); - //CB if Broker.Connector.BlobStreamFormat = sfBinary then AddBlobParam(FieldName, Stream.DataString) --- 12451,12454 ---- *************** *** 12471,12475 **** try (Attribute as TInstantParts).SaveObjectsToStream(Stream); - //CB if Broker.Connector.BlobStreamFormat = sfBinary then AddBlobParam(FieldName, Stream.DataString) --- 12467,12470 ---- *************** *** 12498,12502 **** try (Attribute as TInstantReferences).SaveReferencesToStream(Stream); - //CB if Broker.Connector.BlobStreamFormat = sfBinary then AddBlobParam(FieldName, Stream.DataString) --- 12493,12496 ---- *************** *** 12668,12671 **** --- 12662,12666 ---- DataSet : TDataSet; begin + Result := 0; try if not UsePreparedQuery then *************** *** 12796,12800 **** try AddBaseParams(Params, AObject.ClassName, AObjectId); - //CB if not UsePreparedQuery then DataSet := Broker.CreateDataSet(SelectSQL, Params) --- 12791,12794 ---- *************** *** 12837,12841 **** RemovePersistentIdParam(Params); end; ! RowsAffected := ExecuteStatement(InsertSQL, Params, Info, ConflictAction, AObject); //CB end; --- 12831,12835 ---- RemovePersistentIdParam(Params); end; ! RowsAffected := ExecuteStatement(InsertSQL, Params, Info, ConflictAction, AObject); end; |