Delphi (como capturar o count(*) dentro de um campo chamado

11/01/2006

0

Ola Pessoal necessito de ajuda nisto:
Quero capturar o count(*) dentro de um campo chamado quantidade e
trabalhar com este campo quantidade fazendo um IF abaixo do sqlexec.
preciso trabalhar com o campo quantidade,e como definiar esta variavel
para comportar o count(*) ex:( eu nao sei se o count é integer ou double ).
Estou usando Delphi 4 x InterBase 6...
segue meu código abaixo para que vc possa analisar melhor....Obrigado pela força..

procedure TfrmPrincipal.importaMulPar; //MULTAS PARCELADAS
var F: TextFile;
S,placa,num_aut,cod_mul,tip_com,tip_aut,num_gui,dat_inf,val_mul,
dat_par,qtde_parc,val_par,val_tot,dat_pri_par,dat_ult_par,sit_cont: string;
quantidade: integer;
QCons:TZQuery;
// data_pg : String;
begin
AssignFile(F,´c:\arquivos\´+arquivo);
Reset(F);
QCons := TZQuery.Create(Nil);
QCons.Connection := db;
try
while not Eof(F) do begin
quantidade:=0;
Readln(F, S);
placa := copy(s,1,7);
num_aut := copy(s,8,10);
cod_mul := copy(s,18,4);
tip_com := copy(s,22,1);
tip_aut := copy(s,23,1);
num_gui := copy(s,24,11);
dat_inf := copy(s,35,8);
val_mul := copy(s,43,8);
dat_par := copy(s,51,8);
qtde_parc := copy(s,59,2);
val_par := copy(s,61,15);
val_tot := copy(s,76,8);
dat_pri_par := copy(s,84,8);
dat_ult_par := copy(s,92,8);
sit_cont := copy(s,100,17);
// data_pg := copy(dat_pag,1,4)+´/´+copy(dat_pag,5,2)+´/´+copy(dat_pag,7,2);
Qcons.Sql.Clear;
QCons.SQL.Add(´select count(*) as quantidade from AGE_MULTAS_PARCELADAS,´);
QCons.SQL.Add(´where MPAR_NR_AUTO = ´+´´´´+num_aut+´´´´+´AND MPAR_COD_MULTA =´+´´´´+cod_mul+´´´´+´,´);
QCons.SQL.Add(´AND MPAR_DT_ULT_PARC>dat_ult_par AND MPAR_DT_PARCELAMENTO>dat_par´);
Qcons.ExecSQL;
IF QCONS.FIELDBYNAME(´quantidade´).ASINTEGER = 0 THEN
ELSE
// if quantidade>0 then
//messagedlg(´rejeitado´+´ ´+num_aut+´ ´+cod_mul,mtwarning,[mBOK],0)
// else
begin
//messagedlg(´inserido´+´ ´+num_aut+´ ´+cod_mul,mtwarning,[mBOK],0);
QCons.SQL.Add(´delete AGE_MULTAS_PARCELADAS where MPAR_NR_AUTO =´+´´´´+num_aut+´´´´+´AND MPAR_COD_MULTA =´+´´´´+cod_mul+´´´´+´,´);
Qcons.ExecSQL;
Qcons.Sql.Clear;
QCons.sql.Add(´insert into AGE_MULTAS_PARCELADAS (MPAR_PLACA,MPAR_NR_AUTO,´);
QCons.sql.Add(´MPAR_COD_MULTA,MPAR_TIPO_COMP,MPAR_NR_GUIA,MPAR_DT_INFRACAO,MPAR_VLR_MULTA,MPAR_DT_PARCELAMENTO,´);
QCons.sql.Add(´MPAR_QTDE_PARC,MPAR_VLR_PARCELA,MPAR_VLR_TOTAL,MPAR_DT_PRIM_PARC,MPAR_DT_ULT_PARC,MPAR_SIT_CONTRATO)´);
QCons.sql.Add(´VALUES (´ +´´´´+placa+´´´,´);
QCons.sql.Add(´ +´´´+num_aut+´´´,´´´+cod_mul+´´´,´);
QCons.sql.Add(´ +´´´+tip_com+´´´,´´´+tip_aut+´´´,´´´+num_gui+´´´,´);
QCons.sql.Add(´ +´´´+copy(dat_inf,1,4)+´/´+copy(dat_inf,5,2)+´/´+copy(dat_inf,7,2)+´´´,´);
QCons.sql.Add(´ +´´´+val_mul+´´´/100,´);
QCons.sql.Add(´ +´´´+copy(dat_par,1,4)+´/´+copy(dat_par,5,2)+´/´+copy(dat_par,7,2)+´´´,´);
QCons.sql.Add(´ +´´´+qtde_parc+´´´,´);
QCons.sql.Add(´ +´´´+val_par+´´´,´);
QCons.sql.Add(´ +´´´+val_tot+´´´/100,´);
QCons.sql.Add(´ +´´´+copy(dat_pri_par,1,4)+´/´+copy(dat_pri_par,5,2)+´/´+copy(dat_pri_par,7,2)+´´´,´);
QCons.sql.Add(´ +´´´+copy(dat_ult_par,1,4)+´/´+copy(dat_ult_par,5,2)+´/´+copy(dat_ult_par,7,2)+´´´,´);
QCons.sql.Add(´ +´´´+sit_cont+´´´,´);
Qcons.ExecSQL;
Qcons.Sql.Clear;
//Qcons.Sql.Clear;
//QCons.SQL.Add(´commit´);
//Qcons.ExecSQL;
// messagedlg(frmPrincipal.arquivo+´ ´+placa,mtwarning,[mBOK],0);
end;
end;
CloseFile(F);
except
Qcons.free;
end;
Qcons.free;

end;


Edsonf

Edsonf

Responder

Posts

11/01/2006

Aerreira

Acho que Fields[0].AsInteger retorna o valor do count.

Mas o erro deve ser:

IF QCONS.FIELDBYNAME(´quantidade´).ASINTEGER = 0 THEN
ELSE
// if [b:1f3c7b86e8]quantidade[/b:1f3c7b86e8]>0 then


O correto não seria:

IF QCONS.FIELDBYNAME(´quantidade´).ASINTEGER = 0 THEN
ELSE
// if [b:1f3c7b86e8]QCONS.FIELDBYNAME(´quantidade´).ASINTEGER[/b:1f3c7b86e8] > 0 then


Responder

25/01/2006

Edsonf

Amigão aerreira

Exatamente agora testei e ficou desta forma mesmo Obrigado pela dica.

segue código correto:

[b:09c89b642f]if Qcons.fields[0].asinteger = 0 then[/b:09c89b642f]


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar