SQL-Controlar o número do item num cadastro de Exames
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
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
Curtidas 0
Respostas
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-
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
08/09/2003
Muito obrigado.
Estou tentando, com a ajuda do forum conseguirei...
Abraços...
Neto
Estou tentando, com a ajuda do forum conseguirei...
Abraços...
Neto
GOSTEI 0
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
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
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
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