uDataTableUtils.pas: Arreglo de la función CopyDataTableDA5 para que funcione correctamente y se empiece a usar.
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@378 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
8750e65053
commit
cde55cdfcd
@ -58,12 +58,11 @@ uses
|
|||||||
Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer;
|
Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer;
|
||||||
|
|
||||||
|
|
||||||
procedure CopyDataTableDA5(ASource : TDADataTable;
|
procedure CopyDataTableDA5(ASource : TDADataTable; ATarget: TDADataTable;
|
||||||
ATarget: TDADataTable;
|
const OnlySelectedRows : Boolean = False);
|
||||||
const OnlySelectedRows : Boolean);
|
|
||||||
var
|
var
|
||||||
AStream : Binary;
|
DABin: Binary;
|
||||||
AStream2 : Binary;
|
DADataStreamer : TDABin2DataStreamer;
|
||||||
AFilter : String;
|
AFilter : String;
|
||||||
AFiltered : Boolean;
|
AFiltered : Boolean;
|
||||||
AObj : ISeleccionable;
|
AObj : ISeleccionable;
|
||||||
@ -72,15 +71,6 @@ begin
|
|||||||
AFilter := '';
|
AFilter := '';
|
||||||
AFiltered := False;
|
AFiltered := False;
|
||||||
|
|
||||||
if not Assigned(ASource) then
|
|
||||||
raise Exception.Create ('No se ha asignado la tabla de origen (CopyDataTable)');
|
|
||||||
|
|
||||||
if not Assigned(ATarget) then
|
|
||||||
raise Exception.Create ('No se ha asignado la tabla de destino (CopyDataTable)');
|
|
||||||
|
|
||||||
if not ATarget.Active then
|
|
||||||
ATarget.Active := True;
|
|
||||||
|
|
||||||
if OnlySelectedRows then
|
if OnlySelectedRows then
|
||||||
begin
|
begin
|
||||||
if not Supports(ASource, ISeleccionable, aObj) then
|
if not Supports(ASource, ISeleccionable, aObj) then
|
||||||
@ -107,20 +97,26 @@ begin
|
|||||||
ASource.Filtered := True;
|
ASource.Filtered := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not ASource.Active then
|
DABin := Binary.Create;
|
||||||
ASource.Open;
|
DADataStreamer := TDABin2DataStreamer.Create(nil);
|
||||||
|
|
||||||
AStream := Binary.Create;
|
ShowHourglassCursor;
|
||||||
DesconectarTabla(ATarget);
|
ASource.DisableControls;
|
||||||
|
ATarget.DisableControls;
|
||||||
try
|
try
|
||||||
ASource.SaveToStream(AStream);
|
ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName
|
||||||
AStream2 := AStream.Clone;
|
ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor
|
||||||
|
|
||||||
|
if not ASource.Active then
|
||||||
|
ASource.Open;
|
||||||
|
ASource.First;
|
||||||
|
|
||||||
|
DADataStreamer.WriteDataset(DABin, ASource, [woRows, woSchema], -1);
|
||||||
|
DADataStreamer.ReadDataset(DABin, ATarget, True);
|
||||||
|
DADataStreamer.Finalize;
|
||||||
|
|
||||||
|
ATarget.RemoteFetchEnabled := True; // "Conectamos" la tabla del servidor otra vez
|
||||||
|
|
||||||
// ShowMessage(AStream.ToReadableString);
|
|
||||||
ATarget.LoadFromStream(AStream2); ///->>>>>>>>>>>>>>>>>>>>>>>>>>ERRORRRR
|
|
||||||
finally
|
|
||||||
FreeAndNil(AStream);
|
|
||||||
ConectarTabla(ATarget);
|
|
||||||
// Dejar el filtro de la tabla origen como estaba
|
// Dejar el filtro de la tabla origen como estaba
|
||||||
if OnlySelectedRows then
|
if OnlySelectedRows then
|
||||||
begin
|
begin
|
||||||
@ -129,11 +125,17 @@ begin
|
|||||||
if AFiltered then
|
if AFiltered then
|
||||||
ASource.Filtered := True;
|
ASource.Filtered := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
finally
|
||||||
|
FreeAndNil(DABin);
|
||||||
|
FreeAndNil(DADataStreamer);
|
||||||
|
ASource.EnableControls;
|
||||||
|
ATarget.EnableControls;
|
||||||
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean;
|
function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
@ -149,34 +151,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{procedure EliminarNoSeleccionados(const ASource : IDADataset;
|
|
||||||
var ATarget : TDADataTable);
|
|
||||||
var
|
|
||||||
AObj : ISelectedRowList;
|
|
||||||
i : Integer;
|
|
||||||
begin
|
|
||||||
if not Supports(ASource, ISelectedRowList, aObj) then
|
|
||||||
Exit;
|
|
||||||
|
|
||||||
// ATarget.DisableControls;
|
|
||||||
// ATarget.DisableEventHandlers;
|
|
||||||
ShowHourglassCursor;
|
|
||||||
try
|
|
||||||
ATarget.Open;
|
|
||||||
ATarget.Last;
|
|
||||||
while ATarget.RecordCount > AObj.SelectedRows.Count do
|
|
||||||
begin
|
|
||||||
if AObj.SelectedRows.IndexOf(ATarget.RecIDValue) < 0 then
|
|
||||||
ATarget.Delete
|
|
||||||
else
|
|
||||||
ATarget.Prior;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
// ATarget.EnableControls;
|
|
||||||
// ATarget.EnableControls;
|
|
||||||
HideHourglassCursor;
|
|
||||||
end;
|
|
||||||
end;}
|
|
||||||
|
|
||||||
function DataTableModified (const ADataTable : TDADataTable): Boolean;
|
function DataTableModified (const ADataTable : TDADataTable): Boolean;
|
||||||
var
|
var
|
||||||
@ -296,15 +270,11 @@ var
|
|||||||
begin
|
begin
|
||||||
with ATarget do
|
with ATarget do
|
||||||
begin
|
begin
|
||||||
// ****** Inicio migración DA 5
|
|
||||||
{RemoteService := ASource.GetRemoteService;
|
|
||||||
Adapter := ASource.GetAdapter;}
|
|
||||||
|
|
||||||
if not Assigned(ASource.RemoteDataAdapter) then
|
if not Assigned(ASource.RemoteDataAdapter) then
|
||||||
raise Exception.Create('No está asignado RemoteDataAdapter (' + ASource.Name + ')');
|
raise Exception.Create('No está asignado RemoteDataAdapter (' + ASource.Name + ')');
|
||||||
|
|
||||||
RemoteDataAdapter.Assign(ASource.RemoteDataAdapter);
|
RemoteDataAdapter.Assign(ASource.RemoteDataAdapter);
|
||||||
// ****** Fin migración DA 5
|
|
||||||
|
|
||||||
BusinessRulesID := ASource.BusinessRulesID;
|
BusinessRulesID := ASource.BusinessRulesID;
|
||||||
Randomize;
|
Randomize;
|
||||||
@ -316,78 +286,9 @@ begin
|
|||||||
if Assigned(ASource.LocalSchema) then
|
if Assigned(ASource.LocalSchema) then
|
||||||
LocalSchema := ASource.LocalSchema
|
LocalSchema := ASource.LocalSchema
|
||||||
else begin
|
else begin
|
||||||
// ****** Inicio migración DA 5
|
|
||||||
{
|
|
||||||
with SchemaCall do
|
|
||||||
begin
|
|
||||||
MethodName := ASource.SchemaCall.MethodName;
|
|
||||||
for i := 0 to ASource.SchemaCall.Params.Count - 1 do
|
|
||||||
begin
|
|
||||||
with Params.Add do begin
|
|
||||||
Name := ASource.SchemaCall.Params[i].Name;
|
|
||||||
ParamType := ASource.SchemaCall.Params[i].ParamType;
|
|
||||||
DataType := ASource.SchemaCall.Params[i].DataType;
|
|
||||||
Value := ASource.SchemaCall.Params[i].Value;
|
|
||||||
UserClassName := ASource.SchemaCall.Params[i].UserClassName;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
// ****** Fin migración DA 5
|
|
||||||
ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema;
|
ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// ****** Inicio migración DA 5
|
|
||||||
{
|
|
||||||
with DataUpdateCall do
|
|
||||||
begin
|
|
||||||
MethodName := ASource.DataUpdateCall.MethodName;
|
|
||||||
for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do
|
|
||||||
begin
|
|
||||||
with Params.Add do begin
|
|
||||||
Name := ASource.DataUpdateCall.Params[i].Name;
|
|
||||||
ParamType := ASource.DataUpdateCall.Params[i].ParamType;
|
|
||||||
DataType := ASource.DataUpdateCall.Params[i].DataType;
|
|
||||||
Value := ASource.DataUpdateCall.Params[i].Value;
|
|
||||||
UserClassName := ASource.DataUpdateCall.Params[i].UserClassName;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
with ScriptCall do
|
|
||||||
begin
|
|
||||||
MethodName := ASource.ScriptCall.MethodName;
|
|
||||||
for i := 0 to ASource.ScriptCall.Params.Count - 1 do
|
|
||||||
begin
|
|
||||||
with Params.Add do begin
|
|
||||||
Name := ASource.ScriptCall.Params[i].Name;
|
|
||||||
ParamType := ASource.ScriptCall.Params[i].ParamType;
|
|
||||||
DataType := ASource.ScriptCall.Params[i].DataType;
|
|
||||||
Value := ASource.ScriptCall.Params[i].Value;
|
|
||||||
UserClassName := ASource.ScriptCall.Params[i].UserClassName;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
with DataRequestCall do
|
|
||||||
begin
|
|
||||||
MethodName := ASource.DataRequestCall.MethodName;
|
|
||||||
for i := 0 to ASource.DataRequestCall.Params.Count - 1 do
|
|
||||||
begin
|
|
||||||
with Params.Add do begin
|
|
||||||
begin
|
|
||||||
Name := ASource.DataRequestCall.Params[i].Name;
|
|
||||||
ParamType := ASource.DataRequestCall.Params[i].ParamType;
|
|
||||||
DataType := ASource.DataRequestCall.Params[i].DataType;
|
|
||||||
Value := ASource.DataRequestCall.Params[i].Value;
|
|
||||||
UserClassName := ASource.DataRequestCall.Params[i].UserClassName;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
// ****** Fin migración DA 5
|
|
||||||
|
|
||||||
with MasterParamsMappings do
|
with MasterParamsMappings do
|
||||||
for i := 0 to ASource.MasterParamsMappings.Count - 1 do
|
for i := 0 to ASource.MasterParamsMappings.Count - 1 do
|
||||||
Add(ASource.MasterParamsMappings.Strings[i]);
|
Add(ASource.MasterParamsMappings.Strings[i]);
|
||||||
@ -481,6 +382,9 @@ begin
|
|||||||
DABin := Binary.Create;
|
DABin := Binary.Create;
|
||||||
DAAdapter := TDABINAdapter.Create(nil);
|
DAAdapter := TDABINAdapter.Create(nil);
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
|
ASource.DisableControls;
|
||||||
|
ATarget.DisableControls;
|
||||||
try
|
try
|
||||||
ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName
|
ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName
|
||||||
ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor
|
ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor
|
||||||
@ -508,6 +412,9 @@ begin
|
|||||||
finally
|
finally
|
||||||
FreeAndNil(DABin);
|
FreeAndNil(DABin);
|
||||||
FreeAndNil(DAAdapter);
|
FreeAndNil(DAAdapter);
|
||||||
|
ASource.EnableControls;
|
||||||
|
ATarget.EnableControls;
|
||||||
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user