Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con filtro (https://www.clubdelphi.com/foros/showthread.php?t=41209)

vroa74 09-03-2007 16:49:25

problemas con filtro
 
Tengo problemas con los filtros pues los estoy usando constantemente.
en ciclos y la verdad no me da los resultados que yo espero.

Código Delphi [-]
var
    i,j:integer;
      x1,x2,x3,x4:integer;
      fe1,fe2:integer;
      Sfecha:string;
      Dfecha:Tdate;
begin
      i:=0;                 x1:=0;
      x2:=0;                x3:=0;
      x4:=0;                j:=0;
      fe1:=0;               fe2:=0;
    j:=Random(10);
    fe1:=Random(31);
    fe2:=Random(3);
    Sfecha:=IntToStr(fe1)+'/'+IntToStr(fe2)+'/'+'2007';
   Label12.Caption:=IntToStr(j);
for i:= 1 to j do
  begin
  //========================================================
  //   Llennado de la base de datos
  //========================================================
     fe1:=Random(30);
     fe2:=Random(3);
     if(fe1 = 0) then
      fe1:=1;
     if(fe2 = 0) then
      fe2:=1;
     if((fe2 = 2)and(fe1>=28)) then
      begin
      fe1:=1;
      fe2:=3;
      end;
     Sfecha:=IntToStr(fe1)+'/'+IntToStr(fe2)+'/'+'2007';
     Dfecha:=StrToDate(Sfecha);
     DateTimePicker1.Date:=Dfecha;//////////////////////////////////////////////
     can1:= Random(2147483647);
     can2:= Random(2147483647);
     can3:= Random(2147483647);/////////////////////////////////////////////////
     x1:= Random(24);
     x2:= Random(24);
     x3:= Random(24);
     x4:= Random(24);///////////////////////////////////////////////////////////
     ComboBox1.Text:=nombress[x1];
     ComboBox2.Text:=apellidos[x2];
     ComboBox3.Text:=apellidos[x3];
     ComboBox4.Text:=ciudadd[Random(24)];
     ComboBox5.Text:=ciudadd[x4];///////////////////////////////////////////////
     Edit6.Text:=IntToStr(can1);
     Edit7.Text:=IntToStr(can2);
     Edit8.Text:=IntToStr(can3);
//----------------------------------------------------------------------
    ComboBox1.Text := strupper(Pchar(ComboBox1.Text));
    ComboBox2.Text := strupper(Pchar(ComboBox2.Text));
    ComboBox3.Text := strupper(Pchar(ComboBox3.Text));
    ComboBox4.Text := strupper(Pchar(ComboBox4.Text));
    ComboBox5.Text := strupper(Pchar(ComboBox5.Text));
    Edit6.Text := strupper(Pchar(Edit6.Text));
    Edit7.Text := strupper(Pchar(Edit7.Text));
    Edit8.Text := strupper(Pchar(Edit8.Text));
    Memo1.Text := strupper(Pchar(Memo1.Text));
    Form1.Table1.Insert;
    Form1.table1.fieldbyname('Nombre').asstring := ComboBox1.Text;
    Form1.table1.fieldbyname('Apellidop').asstring := ComboBox2.Text;
    Form1.table1.fieldbyname('Apellidom').asstring := ComboBox3.Text;
    Form1.table1.fieldbyname('Domicilio').asstring := ComboBox4.Text;
    Form1.table1.fieldbyname('Entidad').asstring := ComboBox5.Text;
    Form1.table1.fieldbyname('Ife').asstring := Edit6.Text;
    Form1.table1.fieldbyname('Referencia').asstring := Edit7.Text;
    Form1.table1.fieldbyname('Concepto').asstring := Memo1.Text;
    Form1.table1.fieldbyname('Fecha').AsDateTime := Dfecha;//DateTimePicker1.Date;
    Form1.table1.fieldbyname('Monto').asstring := Edit8.Text;
    Form1.Table1.Post; {guardar cambios}
    Label11.Caption:=IntToStr(i);
    Application.ProcessMessages;
//----------------------------------------------------------------------
  end;// fin del ciclo for

end;

lo probe con una tabla duplique la tabla y a la tbla dos le agregue 5 campos que no fueran posibles que estuvieran en la tabla 1 y cuando terminaba, me decia que tenia 10 registros insertados.

de una tabla de 10 registros repetidos y 5 registro nuevos de la tabla dos, asi que a lo mucho deberia tener 5 registro y pareciere tenia un 33%.

//Lo Edite para agregar las etiquetas Delphi
//Nota: Por favor usenlas...

poliburro 09-03-2007 19:13:29

Mas que ayudarte quisiera darte un consejo.

En lugar de usar filtros en los datasets usa Querys, por que es muchisimo más costoso para la aplicación utilizar filtros que ejecutar una consulta.


suerte

Caral 09-03-2007 19:16:11

Hola
Te doy la razon poliburro, lo que pasa es que aveces se puede complicar sobre todo para los aprendices como yo, cuando se trata de varias tablas.
Pero de que tienes razon la tienes, es mucho mas eficiente con sql.
Saludos

Lepe 09-03-2007 20:09:27

Código Delphi [-]
    Label21.Caption := IntToStr(con4);
    Application.ProcessMessages;
    Form1.Table2.Next;

Sustituye el Application.ProcessMessages por label21.Update. No estoy seguro de que funcione, porque los mensajes de dibujado tienen poca prioridad, pero el processmessages consume mucho tiempo en un bucle.

Edito:
Además incluye un table1.DisableControls antes del bucle y un Table1.EnableControls al final del bucle, eso disminuye el tiempo del bucle 10 veces. Lo mismo para table2.

Saludos.

vtdeleon 10-03-2007 00:33:07

Y Dónde está el código del primer mensaje? Por qué lo quitaste?vroa74

Saludos

vroa74 10-03-2007 04:49:08

No conosco el Leguaje delphi, sus sustilezas.
Como ven tengo muchas dudas y pregunto mucho antes de preguntar busco unformacion con las preguntas anteriores y si no me queda claro pregunto.

Ahora.

solo conosco como se usan los componentes TTable con TDataSource me gustaria saber como implementar los Querys asi como la relacion de los componentes, su sintanxis.

Estoy biendo unos ejemplos mas no me es muy clara la idea. (por el momento uso bases de datos locales no se si seguir usando db o iniciar a buscar la forma de usa dbf o gdb en forma local)
porque no tengo la nocion de como usarla no se su es:

TTable -->> TDatasource -->> TQuery

Estoy buscando informacion al respecto de los query's y tambien como implementas bases de datos .dbf y deja de usa *.db pues lei que son un poco inestables y sulelen generar problemas con muchos registros.

De antemano le doy las gracias por Toda su ayuda.

Lepe 10-03-2007 11:31:15

En La Cara oculta de delphi 4 (descarga gratuita) puedes ver todos esos detalles

Saludos

vroa74 12-03-2007 02:16:32

Hola:
muchas gracias he estado leyendo La Cara Oculta de Delphi, Mas sin embargo siento que en mi caso no me da la informacion rapida, necesito leer mucho para poder entender como usar los componentes para pode usar sentencias sql en una base de datos locales sin usar el interbase server. estoy usando tablas paradox 7

Si alguien sabe donde encontrar la informacion mas depurada o un ejemplo se los agradeceria.

en este momento estoy leyendo y practicando

EXCEPCIONES, TIPOS DE DATOS DE DELPHI, yTÉCNICAS DE GESTIÓN DE VENTANAS

Como les mencione el libro es muy bueno lastima que no he conseguido la version 6 solo la 4.


La franja horaria es GMT +2. Ahora son las 22:46:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi