[Lazarus-es] no se activa una tabla recien creada

Maximiliano Duarte maximiliano.duarte en gmail.com
Mie Oct 28 02:31:09 CET 2015


No usé mucho. Pero prueba hacer un flush y cerrar la conexión y volver a abrir la tabla.

-----Mensaje original-----
De: "Héctor Fiandor" <hfiandor en ceniai.inf.cu>
Enviado el: ‎27/‎10/‎2015 22:16
Para: "'Spanish version of Lazarus List'" <lazarus-es en lists.lazarus.freepascal.org>
Asunto: Re: [Lazarus-es] no se activa una tabla recien creada

Lazarus 1.0.4 con F.C. 2.6.0 para la aplicación y SQLite para las BD.
 
Gracias por su interés
 
hfiandor
 
De: Maximiliano Duarte [mailto:maximiliano.duarte en gmail.com] 
Enviado el: martes, 27 de octubre de 2015 07:32 p. m.
Para: Spanish version of Lazarus List
Asunto: Re: [Lazarus-es] no se activa una tabla recien creada
 
Que motor?



De: Héctor Fiandor
Enviado el: ‎27/‎10/‎2015 16:00
Para: Spanish version of Lazarus List
Asunto: [Lazarus-es] no se activa una tabla recien creada
 
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/29dbec4f/attachment-0002.html>


More information about the Lazarus-es mailing list