Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2015-10

no se activa una tabla recien creada

6 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Héctor Fiandor

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.freepascal.org/pipermail/lazarus-es/attachments/20151027/e56f65da/attachment.html>

Reply by email

Maximiliano Duarte
to Héctor Fiandor

Que motor?

Earlier message 86 lines
-----Mensaje original----- De: "H�ctor Fiandor" <hfiandor en ceniai.inf.cu> Enviado el: ?27/?10/?2015 16:00 Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> 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.freepascal.org/pipermail/lazarus-es/attachments/20151027/9f8dbaff/attachment-0001.html>

Reply by email

Héctor Fiandor
to Maximiliano Duarte

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 <mailto:hfiandor en ceniai.inf.cu> Enviado el: ?27/?10/?2015 16:00
Para: Spanish <mailto:lazarus-es en lists.lazarus.freepascal.org> 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.freepascal.org/pipermail/lazarus-es/attachments/20151027/f4ce1628/attachment.html>

Reply by email

Maximiliano Duarte
to Héctor Fiandor

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

Earlier message 105 lines
-----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.freepascal.org/pipermail/lazarus-es/attachments/20151027/29dbec4f/attachment-0001.html>

Reply by email

Maxi
to Héctor Fiandor: Estimados listeros> Tengo una aplicaci�n donde a fin de a�o es necesario revisar una…

Lo que creo y digo "creo" est� mal implementado porque usas la misma query/tabla para crearlo y usarlo.

hazlo en otra instancia la comparacion si existe y la creacion. Tambien puedes usar la sentencia "create table as select" para crear a partir de una consulta y posterior insercion de registros, a lo que te digo no hagas un for sino un "insert into tabla select .... from otratabla where ..." y
todo esto lo haces desde la conexion

SQLConnector1.ExecuteDirect();
o
desde un un objeto TSQLScript
despues lo abres para usarla.

Pero esto aconsejo lo pruebes antes desde un manejado de bases porque sqlite no es tan completo como otros motores mas grandes y puede que algunas sentencias no funcionen

El 27 de octubre de 2015, 16:05, H�ctor Fiandor <hfiandor en ceniai.inf.cu> escribi�:

Show quoted text 176 lines
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 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml Linux User #495070 http://domonetic.com/blog ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20151028/49fc7a5e/attachment.html>

Reply by email

Héctor Fiandor
to Maxi

A todos los colegas que me aconsejaron:

Resolv� el problema con un m�nimo de recursos.

Ten�a una tabla con records donde se declaraba una FechaTer y otros que estaban en blanco porque no se hab�an terminado.

A fin de a�o, de dicha tabla hay que borrar los que tienen FechaTer y dejar ?vivos? los que no se han terminado.

Sencillamente, hice un SQL.text:=?DELETE FROM NegSerAct WHERE FechaTer IS NOT NULL ORDER BY codNegSerAct?;

De todas formas, creo que vale la pena revisar que hice antes, por qu� se negaba a Activar una segunda tabla, ya que prob� por otros caminos y segu�a la negaci�n.

Saludos y mi agradecimiento,

Ing. H�ctor Fiandor

hfiandor en ceniai.inf.cu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20151028/98d49b6d/attachment.html>

Reply by email