Ir al contenido


Foto

[RESUELTO] Merezco que me cuelguen de las orejas II


  • Por favor identifícate para responder
2 respuestas en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 02 abril 2011 - 07:25

Jóvenes, buen día...

Resulta que en éste hilo yo preguntaba sobre la creación de una tabla Paradox vía una matriz..., y ahora, requiero el complemento, es decir una vez creada la tabla, necesito crearle un índice que sea congruente con la tabla recién creada.

Sean tan amables de entenderme, que tiene MUCHOS años que no trabajo con Paradox. Agradeciendo de antemano.
  • 0

#2 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 02 abril 2011 - 08:34

Pues lo mas sencillo seria añadirle un campo "ID" donde pongas el orden de cada elemento en tu matriz, y luego crees un indice por ese campo y lo uses al hacer consultas por SQL (order by id). Como se crea un indice en paradox ya depende de los componenetes y esas cosas, la verdad, no te puedo ayudar mucho (yo tambien hace 15 años que no uso estas cosas).
  • 0

#3 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 04 abril 2011 - 10:57

Pues bueno, como parece que nadie tuvo la respuesta, me doy yo mismo la respuesta...  ;) :D



delphi
  1. procedure CrearArchivo;
  2.   var
  3.     sNmbrCmp, sHra, sNmbrTbl : string;
  4.     iIndc : integer;
  5.   begin
  6.     sHra := TimeToStr(Now);
  7.     sHra := LeftStr(sHra,2)+MidStr(sHra,4,2);
  8.     sNmbrTbl := 'lp' + IntToStr(DayOfTheYear(Now)) + sHra +'.db';
  9.  
  10.     with TTable.Create(nil) do
  11.     try
  12.       DatabaseName := 'EspecializadosTmp';
  13.       TableName := sNmbrTbl;
  14.       TableType := ttParadox;
  15.  
  16.       FieldDefs.Add('Grupo',ftString,20,True);
  17.       FieldDefs.Add('Codigo',ftString,6,True);
  18.       FieldDefs.Add('Descripcion',ftString, 50, False);
  19.       FieldDefs.Add('Longitud',ftFloat,0,False);
  20.  
  21.       for iIndc := 0 to chcklstboxAcbds.Items.Count -1 do
  22.       begin
  23.         if chcklstboxAcbds.Checked[iIndc] then
  24.         begin
  25.           sNmbrCmp := chcklstboxAcbds.Items.ValueFromIndex[iIndc];
  26.           FieldDefs.Add(sNmbrCmp,ftFloat,0,False);
  27.         end;
  28.       end;
  29.  
  30.       [b]IndexDefs.Add(sNmbrTbl,'Grupo;Codigo',[ixPrimary]);[/b]
  31.  
  32.       CreateTable;
  33.     finally
  34.       Free;
  35.     end;
  36.     tblTmprl.TableName := sNmbrTbl;
  37.     tblTmprl.Exclusive := True;
  38.     tblTmprl.Active := True;
  39.   end;



Nótese la línea IndexDefs, que es la que resuelve el hilo.
  • 0




IP.Board spam blocked by CleanTalk.