Isso é verdade, muito bem lembrado, não havia lembrado desta hipótese, 
quantas vezes, durante o projeto a gente as vezes altera a ordem dos campos, ou 
acrescenta um calculado no meio, pronto já ferra com tudo no fields[xx]....  


Luiz Escobar



------------- Segue mensagem original! -------------

De: Valfrid-Ly Silva Couto <[EMAIL PROTECTED]>
Data: Sat, 9 Dec 2006 08:28:22 -0300 (ART)
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Verdade sobre fieldbyname

Luiz,

gostaria só de acrescentar algo.

Não só o FieldByName facilita a leitura do código como se, no caso de uma 
query, se você precisar alterar o result set e seus campos mudarem de ordem, o 
FieldByName continua funcionando, o Fields[01] já vai te dar problemas!

Luiz Escobar escreveu: o trafeco ? bom depende, se for de droga e for passar 
pela alfandega pode demorar um pouco sim, agora se for o trafego, bem não vai 
influenciar muito não... o que fica " lento " é o seguinte... (lento esta entre 
"" pois não acho significativo não....)

quando vc usa "table1.fieldbyname('blablabla').asstring" ao invez de 
"table1.fields[ 01 ].asstring"
é que o primeiro vai ter que procurar na tabela dos campos da table1 qual a 
posição dele para depois retornar o seu valor o segundo já retorna na hora, 
ficando assim a EXECUÇÃO bem mais rápida, MAS, EU!!!... particularmente uso o 
fieldbyname... fica mais facil a leitura/compreenção do programa...

agora faz um teste ai vc, o meu teste deu isso ai abaixo.... 1.000.000x dá +/- 
1 segundo de diferença... isso em um P4-1.7Ghz, 748MB-ram, windows-XP-PRO.... 
mas lembre-se 1 milhão de vezes....

var
t1, t2 : tdatetime;
x : integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption := '';
t1 := now;
for x := 1 to 1000000 do 
label1.caption := VT1.Fieldbyname('field0').asstring;
t2 := now;
label1.caption := timetostr( t2 - t1 ); // 00:00:04
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
label2.caption := '';
t1 := now;
for x := 1 to 1000000 do 
label2.caption := VT1.Fields[0].asstring;
t2 := now;
label2.caption := timetostr( t2 - t1 ); // 00:00:03
end;

e veja a diferença de tempo entre eles em micros mais modestos.......

Luiz Escobar
Analista/Desenvolvedor:
WEB - HTML/JavaScript/PHP/MySQL 
WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase
DOS - Clipper/Assembler xBase
SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k
LINUX - LAZARUS/Kylix/MySQL;
http://www.megasistema.com.br

----- Original Message ----- 
From: Marcelo 
To: delphi-br@yahoogrupos.com.br 
Sent: Friday, December 08, 2006 2:48 PM
Subject: [delphi-br] Verdade sobre fieldbyname

AMigos da lista, gostaria de saber da experiencia de vcs

Vi em uma lista de discussão que o FieldByName deixa o tráfeco mais 
lento. Isso é verdade?

Desde já agradeço a todos

[As partes desta mensagem que não continham texto foram removidas]

-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Links do Yahoo! Grupos

Valfrid-Ly Silva Couto
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
ICQ 15114646

---------------------------------
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora!

[As partes desta mensagem que não continham texto foram removidas]


Responder a