[Lazarus-es] no se activa una tabla recien creada
Héctor Fiandor
hfiandor en ceniai.inf.cu
Mar Oct 27 20:05:26 CET 2015
Estimados listeros>
Tengo una aplicación donde a fin de año es necesario revisar una BD y
obtener otra BD con algunos componentes eliminados.
La idea es copiar desde la tNegSerAct hacia la tNegSerAct1, las filas que
tengan FechaTer= (sin algo escrito).
Esto es lo que hago, pero después de crear la tNegSerAct1, se niega a
abrirla, aunque la tabla existe y está vacía.
begin //lo normal tNegSerAct no vacia
Log('tNegSerAct no está vacía.');
fdm.tNegSerAct1.FileName:=camino_actual+'\tablas.db';
if not fdm.tNegSerAct1.TableExists then
begin //lo normal
Log('Tabla NegSerAct1 no existe.');
Log('Crear tNSA1.');
fdm.tNegSerAct1.FileName:=camino_actual+'\tablas.db';
fdm.tNegSerAct1.SQL:='CREATE TABLE NegSerAct1 (codNeg VARCHAR(10),
codSer VARCHAR(10), codAct VARCHAR(10), codNegSerAct VARCHAR(10) Primary
Key, NomNeg
VARCHAR(80), NomSer VARCHAR(80), NomAct VARCHAR(80), ParamCalc VARCHAR(80),
Cantidad FLOAT(15), PrecioCalcCUP FLOAT(15), PrecioCalcCUC FLOAT(15),
TotalCUP
FLOAT(15), TotalCUC FLOAT(15), FechaIni VARCHAR(10), FechaTer VARCHAR(10),
nomAreaEjecutiva VARCHAR(30) )';
fdm.tNegSerAct1.ExecSQL;
fdm.tNegSerAct1.SaveOnClose:=true;
fdm.tNegSerAct1.Close;
Log('Terminé de crear tNegSerAct1.');
//---------------------
3:
if fdm.tNegSerAct1.IsEmpty then
begin
Log('Tabla NegSerAct1 vacía.');
Log('Copiar desde tNSA hacia tNSA1.');
//copiar desde tNSA hacia tNSA1 los que FechaTer=''
try
if fdm.tNegSerAct.Active = false then fdm.tNegSerAct.Active :=
true
else begin end;
Log('Activé tNegSerAct');
except
ShowMessagePos('No pudo activar tNSA.',10,10);
end;
//--------------------
ShowMessagePos('llegue2',10,10);
try
if fdm.tNegSerAct1.Active = true then
begin
fdm.tNegSerAct1.Active := false;
fdm.tNegSerAct1.FileName:=camino_actual+'\Clasificadores.db';
if fdm.tNegSerAct1.Active = false then
fdm.tNegSerAct1.Active := true;
end
else
begin
fdm.tNegSerAct1.FileName:=camino_actual+'\Clasificadores.db';
if fdm.tNegSerAct1.Active = false then
fdm.tNegSerAct1.Active := true;
end;
Log('Activé tNegSerAct1');
except
ShowMessagePos('No se activó tNSA1',10,10);
application.Terminate;
end;
//------------------
try
for i:=1 to fdm.tNegSerAct.RecordCount do
begin
fdm.tNegSerAct.RecNo:=i;
if fdm.tNegSerAct.FieldByName('FechaTer').AsString = '' then
begin
fdm.tNegSerAct1.Insert; //los que no tienen FechaTer
fdm.tNegSerAct1.FieldByName('codNeg').AsString:=
fdm.tNegSerAct.FieldByName('codNeg').AsString;
fdm.tNegSerAct1.FieldByName('codSer').AsString:=
fdm.tNegSerAct.FieldByName('codSer').AsString;
he probado con lo poco que sé y, como dice el dicho, no doy pie con bola.
Si me pueden ayudar, mucho lo agradeceré.
Saludos,
Ing. Héctor Fiandor
hfiandor en ceniai.inf.cu
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20151027/e56f65da/attachment-0002.html>
More information about the Lazarus-es
mailing list