From: Nando D. <na...@us...> - 2005-02-11 14:38:25
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1661/Core Modified Files: InstantPersistence.pas Removed Files: iorun50.dof iorunk3.dpk Log Message: removed some obsolete files Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** InstantPersistence.pas 10 Feb 2005 23:19:45 -0000 1.19 --- InstantPersistence.pas 11 Feb 2005 14:38:15 -0000 1.20 *************** *** 2123,2127 **** function InternalGenerateCreateTableSQL(Metadata: TInstantTableMetadata): string; virtual; function InternalGenerateCreateExternalTableSQL(TableName: string): string; virtual; - function InternalGenerateCreateExternalPartTableSQL(TableName: string): string; virtual; function InternalGenerateDeleteConcurrentSQL(Map: TInstantAttributeMap): string; virtual; function InternalGenerateDeleteSQL(Map: TInstantAttributeMap): string; virtual; --- 2123,2126 ---- *************** *** 2131,2135 **** function InternalGenerateInsertSQL(Map: TInstantAttributeMap): string; virtual; function InternalGenerateInsertExternalSQL(Map: TInstantAttributeMap): string; virtual; - function InternalGenerateInsertExternalPartSQL(Map: TInstantAttributeMap): string; virtual; function InternalGenerateSelectSQL(Map: TInstantAttributeMap): string; virtual; function InternalGenerateSelectExternalLinkedSQL(Map: TInstantAttributeMap): string; virtual; --- 2130,2133 ---- *************** *** 2145,2149 **** function GenerateCreateTableSQL(Metadata: TInstantTableMetadata): string; function GenerateCreateExternalTableSQL(TableName: string): string; - function GenerateCreateExternalPartTableSQL(TableName: string): string; function GenerateDeleteConcurrentSQL(Map: TInstantAttributeMap): string; function GenerateDeleteSQL(Map: TInstantAttributeMap): string; --- 2143,2146 ---- *************** *** 2153,2157 **** function GenerateInsertSQL(Map: TInstantAttributeMap): string; function GenerateInsertExternalSQL(Map: TInstantAttributeMap): string; - function GenerateInsertExternalPartSQL(Map: TInstantAttributeMap): string; function GenerateSelectSQL(Map: TInstantAttributeMap): string; function GenerateSelectExternalLinkedSQL(Map: TInstantAttributeMap): string; --- 2150,2153 ---- *************** *** 2215,2219 **** FDeleteExternalSQL: string; FInsertExternalSQL: string; - FInsertExternalPartSQL: string; function CreatePreparedQuery(const AStatement: string; AParams: TParams = nil): TDataSet; --- 2211,2214 ---- *************** *** 2239,2243 **** function GetDeleteExternalSQL: string; function GetInsertExternalSQL: string; - function GetInsertExternalPartSQL: string; protected procedure AddAttributeParam(Attribute: TInstantAttribute; --- 2234,2237 ---- *************** *** 2282,2286 **** property InsertSQL: string read GetInsertSQL write FInsertSQL; property InsertExternalSQL: string read GetInsertExternalSQL write FInsertExternalSQL; - property InsertExternalPartSQL: string read GetInsertExternalPartSQL write FInsertExternalPartSQL; property Map: TInstantAttributeMap read FMap; property SelectSQL: string read GetSelectSQL write FSelectSQL; --- 2276,2279 ---- *************** *** 2522,2526 **** if Assigned(AParams) then begin for g := 0 to AParams.Count - 1 do begin ! S := S + sLineBreak + AParams[g].Name + ': ' + GetEnumName(TypeInfo(TFieldType), Ord(AParams[g].DataType)) + ' = ' + AParams[g].AsString; --- 2515,2519 ---- if Assigned(AParams) then begin for g := 0 to AParams.Count - 1 do begin ! S := S + sLineBreak + ' ' + AParams[g].Name + ': ' + GetEnumName(TypeInfo(TFieldType), Ord(AParams[g].DataType)) + ' = ' + AParams[g].AsString; *************** *** 10174,10182 **** FIdDataType, FIdSize, AttributeType); end ! else if AttributeType in [atPart, atParts, atReferences] then begin if IsExternal = ceNo then FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), ! Size, AttributeType, [], feNone, '', ) else if IsExternal = ceLinked then FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), --- 10167,10191 ---- FIdDataType, FIdSize, AttributeType); end ! else if AttributeType = atPart then begin if IsExternal = ceNo then FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), ! Size, AttributeType, [], feNone, '') ! else if IsExternal = ceLinked then ! FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), ! Size, AttributeType, [], feLinked, ExternalLinkedName) ! else if IsExternal = ceStored then ! begin ! FieldMetadatas.AddFieldMetadata(FieldName + InstantClassFieldName, ! AttributeTypeToDataType(atString), InstantDefaultFieldSize, AttributeType); ! FieldMetadatas.AddFieldMetadata(FieldName + InstantIdFieldName, ! FIdDataType, FIdSize, AttributeType); ! end; ! end ! else if AttributeType in [atParts, atReferences] then ! begin ! if IsExternal = ceNo then ! FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), ! Size, AttributeType, [], feNone, '') else if IsExternal = ceLinked then FieldMetadatas.AddFieldMetadata(FieldName, AttributeTypeToDataType(AttributeType), *************** *** 12441,12445 **** Additional: array of string): string; begin ! Result := BuildList(Map, Additional,EmbraceField); end; --- 12450,12454 ---- Additional: array of string): string; begin ! Result := BuildList(Map, Additional, EmbraceField); end; *************** *** 12492,12496 **** Result := Result + SpaceDelimiter; end ! else if AttributeMetadata.AttributeType in [atPart, atParts, atReferences] then begin if AttributeMetadata.IsExternal = ceNo then --- 12501,12521 ---- Result := Result + SpaceDelimiter; end ! else if AttributeMetadata.AttributeType = atPart then ! begin ! if AttributeMetadata.IsExternal = ceStored then ! begin ! RefClassFieldName := FieldName + InstantClassFieldName; ! RefIdFieldName := FieldName + InstantIdFieldName; ! Result := Result + StringFunc(RefClassFieldName) + ', ' + ! StringFunc(RefIdFieldName); ! Result := Result + SpaceDelimiter; ! end ! else if AttributeMetadata.IsExternal = ceNo then ! begin ! Result := Result + StringFunc(FieldName); ! Result := Result + SpaceDelimiter; ! end; ! end ! else if AttributeMetadata.AttributeType in [atParts, atReferences] then begin if AttributeMetadata.IsExternal = ceNo then *************** *** 12549,12558 **** end; - function TInstantSQLGenerator.GenerateCreateExternalPartTableSQL( - TableName: string): string; - begin - Result := InternalGenerateCreateExternalPartTableSQL(TableName); - end; - function TInstantSQLGenerator.GenerateCreateExternalTableSQL( TableName: string): string; --- 12574,12577 ---- *************** *** 12603,12612 **** end; - function TInstantSQLGenerator.GenerateInsertExternalPartSQL( - Map: TInstantAttributeMap): string; - begin - Result := InternalGenerateInsertExternalPartSQL(Map) - end; - function TInstantSQLGenerator.GenerateInsertExternalSQL( Map: TInstantAttributeMap): string; --- 12622,12625 ---- *************** *** 12662,12686 **** end; - function TInstantSQLGenerator.InternalGenerateCreateExternalPartTableSQL( - TableName: string): string; - var - Columns: string; - begin - Columns := EmbraceField(InstantIdFieldName) + ' ' + - Broker.DataTypeToColumnType(Broker.Connector.IdDataType, Broker.Connector.IdSize) + ' NOT NULL'; - Columns := Columns + ', ' + EmbraceField(InstantParentClassFieldName) + ' ' + - Broker.DataTypeToColumnType(dtString, InstantDefaultFieldSize); - Columns := Columns + ', ' + EmbraceField(InstantParentIdFieldName) + ' ' + - Broker.DataTypeToColumnType(Broker.Connector.IdDataType, Broker.Connector.IdSize); - Columns := Columns + ', ' + EmbraceField(InstantParentAttributeFieldName) + ' ' + - Broker.DataTypeToColumnType(dtString, InstantDefaultFieldSize); - Columns := Columns + ', ' + EmbraceField(InstantChildClassFieldName) + ' ' + - Broker.DataTypeToColumnType(dtString, InstantDefaultFieldSize); - Columns := Columns + ', ' + EmbraceField(InstantChildIdFieldName) + ' ' + - Broker.DataTypeToColumnType(Broker.Connector.IdDataType, Broker.Connector.IdSize); - Columns := Columns + ', PRIMARY KEY (' + EmbraceField(InstantIdFieldName) + ')'; - Result := Format('CREATE TABLE %s (%s)', [EmbraceTable(TableName), Columns]); - end; - function TInstantSQLGenerator.InternalGenerateCreateExternalTableSQL( TableName: string): string; --- 12675,12678 ---- *************** *** 12799,12823 **** end; - function TInstantSQLGenerator.InternalGenerateInsertExternalPartSQL( - Map: TInstantAttributeMap): string; - var - FieldStr, ParamStr: string; - begin - FieldStr := Format('%s, %s, %s, %s, %s, %s', - [EmbraceField(InstantIdFieldName), - EmbraceField(InstantParentClassFieldName), - EmbraceField(InstantParentIdFieldName), - EmbraceField(InstantParentAttributeFieldName), - EmbraceField(InstantChildClassFieldName), - EmbraceField(InstantChildIdFieldName)]); - ParamStr := Format(':%s, :%s, :%s, :%s, :%s, :%s', - [InstantIdFieldName, - InstantParentClassFieldName, InstantParentIdFieldName, - InstantParentAttributeFieldName, - InstantChildClassFieldName, InstantChildIdFieldName]); - Result := Format('INSERT INTO %s (%s) VALUES (%s)', - [EmbraceTable('%s'), FieldStr, ParamStr]); - end; - function TInstantSQLGenerator.InternalGenerateInsertExternalSQL( Map: TInstantAttributeMap): string; --- 12791,12794 ---- *************** *** 12875,12885 **** FieldStr, WhereStr: string; begin ! FieldStr := Format('%s, %s', [EmbraceField(InstantChildClassFieldName), ! EmbraceField(InstantChildIdFieldName)]); ! WhereStr := Format('%s = :%s AND %s = :%s AND %s = :%s AND %s = :%s', ! [EmbraceField(InstantParentClassFieldName), InstantParentClassFieldName, ! EmbraceField(InstantParentIdFieldName), InstantParentIdFieldName, ! EmbraceField(InstantParentAttributeFieldName), InstantParentAttributeFieldName, ! EmbraceField(InstantChildClassFieldName), InstantChildClassFieldName]); Result := Format('SELECT %s FROM %s WHERE %s', [FieldStr, EmbraceTable('%s'), WhereStr]); --- 12846,12853 ---- FieldStr, WhereStr: string; begin ! FieldStr := '%s, %s'; ! WhereStr := Format('%s = :%s AND %s = :%s', ! [EmbraceField(InstantClassFieldName), InstantClassFieldName, ! EmbraceField(InstantIdFieldName), InstantIdFieldName]); Result := Format('SELECT %s FROM %s WHERE %s', [FieldStr, EmbraceTable('%s'), WhereStr]); *************** *** 13073,13079 **** if FieldMetadata.ExternalOption = feStored then begin ! if FieldMetadata.OriginalAttributeType = atPart then ! Execute(Generator.GenerateCreateExternalPartTableSQL(FieldMetadata.ExternalName)) ! else Execute(Generator.GenerateCreateExternalTableSQL(FieldMetadata.ExternalName)); end; --- 13041,13045 ---- if FieldMetadata.ExternalOption = feStored then begin ! if FieldMetadata.OriginalAttributeType <> atPart then Execute(Generator.GenerateCreateExternalTableSQL(FieldMetadata.ExternalName)); end; *************** *** 13180,13193 **** var Stream: TInstantStringStream; begin ! Stream := TInstantStringStream.Create(''); ! try ! (Attribute as TInstantPart).SaveObjectToStream(Stream); ! if Broker.Connector.BlobStreamFormat = sfBinary then ! AddBlobParam(FieldName, Stream.DataString) ! else ! AddMemoParam(FieldName, Stream.DataString); ! finally ! Stream.Free; end; end; --- 13146,13173 ---- var Stream: TInstantStringStream; + Part: TInstantPart; begin ! if Attribute.Metadata.IsExternal = ceStored then ! begin ! Part := Attribute as TInstantPart; ! if Part.HasValue then ! begin ! AddStringParam(Params, FieldName + InstantClassFieldName, Part.Value.ClassName); ! Part.Value.CheckId; ! AddIdParam(Params, FieldName + InstantIdFieldName, Part.Value.Id); ! end; ! end ! else ! begin ! Stream := TInstantStringStream.Create(''); ! try ! (Attribute as TInstantPart).SaveObjectToStream(Stream); ! if Broker.Connector.BlobStreamFormat = sfBinary then ! AddBlobParam(FieldName, Stream.DataString) ! else ! AddMemoParam(FieldName, Stream.DataString); ! finally ! Stream.Free; ! end; end; end; *************** *** 13280,13284 **** begin Attribute := AObject.AttributeByName(Map[I].Name); ! if Attribute.Metadata.IsExternal = ceNo then AddAttributeParam(Attribute, Params); end; --- 13260,13265 ---- begin Attribute := AObject.AttributeByName(Map[I].Name); ! if (Attribute.Metadata.IsExternal = ceNo) or ! ((Attribute.Metadata.IsExternal = ceStored) and (Attribute.Metadata.AttributeType = atPart)) then AddAttributeParam(Attribute, Params); end; *************** *** 13537,13542 **** i: Integer; PartObject: TInstantObject; ! SelectParams, DeleteParams: TParams; ! SelectStatement, DeleteStatement: string; AttributeMetadata: TInstantAttributeMetadata; DataSet: TDataSet; --- 13518,13523 ---- i: Integer; PartObject: TInstantObject; ! SelectParams: TParams; ! SelectStatement: string; AttributeMetadata: TInstantAttributeMetadata; DataSet: TDataSet; *************** *** 13589,13597 **** SelectParams := TParams.Create; try ! SelectStatement := Format(SelectExternalPartStoredSQL, [AttributeMetadata.ExternalStoredName]); ! AddIdParam(SelectParams, InstantParentIdFieldName, AObject.Id); ! AddStringParam(SelectParams, InstantParentClassFieldName, AObject.ClassName); ! AddStringParam(SelectParams, InstantParentAttributeFieldName, AttributeMetadata.Name); ! AddStringParam(SelectParams, InstantChildClassFieldName, AttributeMetadata.ObjectClassName); DataSet := Broker.AcquireDataSet(SelectStatement, SelectParams); try --- 13570,13579 ---- SelectParams := TParams.Create; try ! SelectStatement := Format(SelectExternalPartStoredSQL, ! [AttributeMetadata.FieldName + InstantClassFieldName, ! AttributeMetadata.FieldName + InstantIdFieldName, ! AObject.Metadata.TableName]); ! AddStringParam(SelectParams, InstantClassFieldName, AObject.ClassName); ! AddIdParam(SelectParams, InstantIdFieldName, AObject.Id); DataSet := Broker.AcquireDataSet(SelectStatement, SelectParams); try *************** *** 13619,13637 **** end; - // Delete link - DeleteParams := TParams.Create; - try - DeleteStatement := Format(DeleteExternalSQL, - [AttributeMetadata.ExternalStoredName, - InstantParentClassFieldName, - InstantParentIdFieldName, - InstantParentAttributeFieldName]); - AddStringParam(DeleteParams, InstantParentClassFieldName, AObject.ClassName); - AddIdParam(DeleteParams, InstantParentIdFieldName, AObject.Id); - AddStringParam(DeleteParams, InstantParentAttributeFieldName, AttributeMetadata.Name); - Broker.Execute(DeleteStatement, DeleteParams); - finally - DeleteParams.Free; - end; end; end; --- 13601,13604 ---- *************** *** 13938,13943 **** PartAttribute: TInstantPart; AttributeMetadata: TInstantAttributeMetadata; ! SelectParams, DeleteParams, InsertParams: TParams; ! SelectStatement, DeleteStatement, InsertStatement: string; DataSet: TDataSet; begin --- 13905,13910 ---- PartAttribute: TInstantPart; AttributeMetadata: TInstantAttributeMetadata; ! SelectParams: TParams; ! SelectStatement: string; DataSet: TDataSet; begin *************** *** 13997,14005 **** SelectParams := TParams.Create; try ! SelectStatement := Format(SelectExternalPartStoredSQL, [AttributeMetadata.ExternalStoredName]); ! AddIdParam(SelectParams, InstantParentIdFieldName, AObject.Id); ! AddStringParam(SelectParams, InstantParentClassFieldName, AObject.ClassName); ! AddStringParam(SelectParams, InstantParentAttributeFieldName, AttributeMetadata.Name); ! AddStringParam(SelectParams, InstantChildClassFieldName, AttributeMetadata.ObjectClassName); DataSet := Broker.AcquireDataSet(SelectStatement, SelectParams); try --- 13964,13973 ---- SelectParams := TParams.Create; try ! SelectStatement := Format(SelectExternalPartStoredSQL, ! [AttributeMetadata.FieldName + InstantClassFieldName, ! AttributeMetadata.FieldName + InstantIdFieldName, ! AObject.Metadata.TableName]); ! AddStringParam(SelectParams, InstantClassFieldName, AObject.ClassName); ! AddIdParam(SelectParams, InstantIdFieldName, AObject.Id); DataSet := Broker.AcquireDataSet(SelectStatement, SelectParams); try *************** *** 14027,14045 **** end; - // Delete link - DeleteParams := TParams.Create; - try - DeleteStatement := Format(DeleteExternalSQL, - [AttributeMetadata.ExternalStoredName, - InstantParentClassFieldName, - InstantParentAttributeFieldName]); - AddStringParam(DeleteParams, InstantParentClassFieldName, AObject.ClassName); - AddIdParam(DeleteParams, InstantParentIdFieldName, AObject.Id); - AddStringParam(DeleteParams, InstantParentAttributeFieldName, AttributeMetadata.Name); - Broker.Execute(DeleteStatement, DeleteParams); - finally - DeleteParams.Free; - end; - // Store object PartObject := PartAttribute.Value; --- 13995,13998 ---- *************** *** 14047,14067 **** PartObject.ObjectStore.StoreObject(PartObject, caIgnore); - // Insert link - InsertParams := TParams.Create; - try - InsertStatement := Format(InsertExternalPartSQL, - [AttributeMetadata.ExternalStoredName]); - AddIdParam(InsertParams, InstantIdFieldName, AObject.GenerateId); - AddStringParam(InsertParams, InstantParentClassFieldName, AObject.ClassName); - AddIdParam(InsertParams, InstantParentIdFieldName, AObject.Id); - AddStringParam(InsertParams, InstantParentAttributeFieldName, AttributeMetadata.Name); - AddStringParam(InsertParams, InstantChildClassFieldName, - PartAttribute.Value.ClassName); - AddIdParam(InsertParams, InstantChildIdFieldName, - PartAttribute.Value.Id); - Broker.Execute(InsertStatement, InsertParams); - finally - InsertParams.Free; - end; end; end; --- 14000,14003 ---- *************** *** 14350,14353 **** --- 14286,14290 ---- AddBaseParams(Params, AObject.ClassName, AObject.Id, NewUpdateCount); AddAttributeParams(Params, AObject, Map); + UpdateExternalPartMap; if AObject.IsPersistent then UpdateMap *************** *** 14357,14361 **** Broker.SetObjectUpdateCount(AObject, NewUpdateCount); - UpdateExternalPartMap; UpdateExternalPartsMap; UpdateExternalReferencesMap; --- 14294,14297 ---- *************** *** 14415,14418 **** --- 14351,14355 ---- Params: TParams; Statement: string; + PartDataSet: TDataSet; begin if AttributeMetadata.IsExternal = ceLinked then *************** *** 14428,14444 **** AddIdParam(Params, InstantIdFieldName, AObjectId); AddStringParam(Params, InstantClassFieldName, AObject.ClassName); ! DataSet := Broker.AcquireDataSet(Statement, Params); try ! DataSet.Open; try Value := nil; ! if not DataSet.IsEmpty then Value := AttributeMetadata.ObjectClass.Retrieve( ! DataSet.Fields[1].AsString, False, False, AObject.Connector); finally ! DataSet.Close; end; finally ! Broker.ReleaseDataSet(DataSet); end; finally --- 14365,14381 ---- AddIdParam(Params, InstantIdFieldName, AObjectId); AddStringParam(Params, InstantClassFieldName, AObject.ClassName); ! PartDataSet := Broker.AcquireDataSet(Statement, Params); try ! PartDataSet.Open; try Value := nil; ! if not PartDataSet.IsEmpty then Value := AttributeMetadata.ObjectClass.Retrieve( ! PartDataSet.Fields[1].AsString, False, False, AObject.Connector); finally ! PartDataSet.Close; end; finally ! Broker.ReleaseDataSet(PartDataSet); end; finally *************** *** 14450,14479 **** begin with (Attribute as TInstantPart) do ! begin ! Params := TParams.Create; ! try ! Statement := Format(SelectExternalPartStoredSQL, [AttributeMetadata.ExternalStoredName]); ! AddIdParam(Params, InstantParentIdFieldName, AObjectId); ! AddStringParam(Params, InstantParentClassFieldName, AObject.ClassName); ! AddStringParam(Params, InstantParentAttributeFieldName, Attribute.Name); ! AddStringParam(Params, InstantChildClassFieldName, AttributeMetadata.ObjectClassName); ! DataSet := Broker.AcquireDataSet(Statement, Params); ! try ! DataSet.Open; ! try ! Value := nil; ! if not DataSet.IsEmpty then ! Value := AttributeMetadata.ObjectClass.Retrieve( ! DataSet.Fields[1].AsString, False, False, AObject.Connector); ! finally ! DataSet.Close; ! end; ! finally ! Broker.ReleaseDataSet(DataSet); ! end; ! finally ! Params.Free; ! end; ! end; end else --- 14387,14392 ---- begin with (Attribute as TInstantPart) do ! Value := InstantFindClass(ReadStringField(DataSet, AFieldName + InstantClassFieldName)).Retrieve( ! ReadStringField(DataSet, AFieldName + InstantIdFieldName), False, False, AObject.Connector); end else *************** *** 14812,14822 **** end; - function TInstantSQLResolver.GetInsertExternalPartSQL: string; - begin - if FInsertExternalPartSQL = '' then - FInsertExternalPartSQL := Broker.Generator.GenerateInsertExternalPartSQL(Map); - Result := FInsertExternalPartSQL; - end; - { TInstantSQLQuery } --- 14725,14728 ---- --- iorun50.dof DELETED --- --- iorunk3.dpk DELETED --- |