SQL-Controlar o número do item num cadastro de Exames

Delphi

08/09/2003

Arquivo Principal => CadExeB.DB => Cadastro de exames
Arquivo de detalhes / Itens de Exames => DetExeB.DB. No arquivo de detalhes tenho um campo chamado Item, que armazena o item do exame.
Com o código abaixo o sistema não me retorna o numero do maior item de exame (sempre dá 1), nem em MaxItem (Maximo de Itens) nem em recorcount.
Será que alguém pode me ajudar....

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´Select Max(A.Item) As MaxItem From DetExeb A , CadExeB B ´);
Query1.SQL.Add(´Where A.Exe_Cod = B.Exe_Cod´);
Query1.Open ;

M_Itens := query1.recordcount;
if M_Itens > 0 then
M_Itens := M_Itens + 1
else
M_itens := 1;

DtmDados.ItExameB.FieldByName(´Exe_cod´).Asstring := DtmDados.ExamesB.FieldValues[´Exe_Cod´];
DtmDados.ItExameB.FieldByName(´Item´).Asinteger := M_itens;
DtmDados.ItExameB.Post;
Query1.Close;

Obrigado.
Neto


Neto

Neto

Curtidas 0

Respostas

Motta

Motta

08/09/2003

recordcount retorna qts records tem a sua query,
no seu caso max(...) será sempre 1 !!

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´Select Max(A.Item) As MaxItem From DetExeb A , CadExeB B ´);
Query1.SQL.Add(´Where A.Exe_Cod = B.Exe_Cod´);
Query1.Open ;
if not (query1.eof) then
M_Itens := query1.fields[0].asfloat
else
M_itens := 1;

+ou-


GOSTEI 0
Neto

Neto

08/09/2003

Muito obrigado.
Estou tentando, com a ajuda do forum conseguirei...
Abraços...
Neto


GOSTEI 0
Neto

Neto

08/09/2003

Com a dica, ele rodou mas não considerou o numero do pedido, ele pegou o maior numero de itens existente na tabela = 75.
Como posso compor a expressão para ela considerar por exemplo u valor de um DBEdit, ou algo do tipo...
Obrigado


Arquivo Principal => CadExeB.DB => Cadastro de exames Arquivo de detalhes / Itens de Exames => DetExeB.DB. No arquivo de detalhes tenho um campo chamado Item, que armazena o item do exame. Com o código abaixo o sistema não me retorna o numero do maior item de exame (sempre dá 1), nem em MaxItem (Maximo de Itens) nem em recorcount. Será que alguém pode me ajudar.... Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(´Select Max(A.Item) As MaxItem From DetExeb A , CadExeB B ´); Query1.SQL.Add(´Where A.Exe_Cod = B.Exe_Cod´); Query1.Open ; M_Itens := query1.recordcount; if M_Itens > 0 then M_Itens := M_Itens + 1 else M_itens := 1; DtmDados.ItExameB.FieldByName(´Exe_cod´).Asstring := DtmDados.ExamesB.FieldValues[´Exe_Cod´]; DtmDados.ItExameB.FieldByName(´Item´).Asinteger := M_itens; DtmDados.ItExameB.Post; Query1.Close; Obrigado. Neto



GOSTEI 0
Neto

Neto

08/09/2003

Ta quase tudo pronto.
Com as dicas, ele rodou mas não considerou o numero do pedido, ele pegou o maior numero de itens existente na tabela = 75.
Como posso compor a expressão de validação para ela considerar por exemplo o valor de um DBEdit, ou algo do tipo...
Obrigado


Arquivo Principal => CadExeB.DB => Cadastro de exames Arquivo de detalhes / Itens de Exames => DetExeB.DB. No arquivo de detalhes tenho um campo chamado Item, que armazena o item do exame. Com o código abaixo o sistema não me retorna o numero do maior item de exame (sempre dá 1), nem em MaxItem (Maximo de Itens) nem em recorcount. Será que alguém pode me ajudar.... Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(´Select Max(A.Item) As MaxItem From DetExeb A , CadExeB B ´); Query1.SQL.Add(´Where A.Exe_Cod = B.Exe_Cod´); Query1.Open ; M_Itens := query1.recordcount; if M_Itens > 0 then M_Itens := M_Itens + 1 else M_itens := 1; DtmDados.ItExameB.FieldByName(´Exe_cod´).Asstring := DtmDados.ExamesB.FieldValues[´Exe_Cod´]; DtmDados.ItExameB.FieldByName(´Item´).Asinteger := M_itens; DtmDados.ItExameB.Post; Query1.Close; Obrigado. Neto



GOSTEI 0
POSTAR