Provavelmente o erro está ocorrendo no SELECT.. INTO... neste caso sempre 
deverá retornar apenas um registro.

Abraços... e continue lendo a documentação.

rsrs

Rodinei Amorim
Programador Delphi
[EMAIL PROTECTED]
(11) 8208-9503 - (11) 2024-2723


From: Luciano Topolniak 
Sent: Thursday, October 02, 2008 10:05 PM
To: delphi-br@yahoogrupos.com.br 
Subject: RES: [delphi-br] ninguém tem uma opniao????


Esse erro acontece quanto a sp está retornando mais de um registro e poderia
retornar apenas um.

[]'s

Topolniak.

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de pena_rs
Enviada em: quinta-feira, 2 de outubro de 2008 19:54
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] ninguém tem uma opniao????

ERRO:
multiple rows in singleton select at procedure "MOV_PRODUTOS"

PROCEDURE MOVIMENTA
procedure TFrmProdutos.Movimenta(VTipo:String; VCodigo:Integer;
VNome:String;Vordem:Integer);
begin
D_M.MOV_produtos.ParamByName('VTIPO').AsString:=VTipo;
D_M.MOV_produtos.ParamByName('VCODIGO').AsInteger:=VCodigo;
D_M.MOV_produtos.ParamByName('VNOME').AsString:=VNome;
D_M.MOV_produtos.ParamByName('VORDEM').AsInteger:=Vordem;
D_M.MOV_produtos.ExecProc;
end;

seguinte, eu teste se o produto ja existe com este nome
VPri:=D_M.Qprodutosproduto.AsString;
if ((VPri='') or (VPri=' ')) and not Bcancela.Focused
then Begin
MessageBeep(32);
MessageDlg('Produto Inválido',mtError,[mbOk],0);
DBNome.SetFocus;
exit;
end;
Movimenta('NOME',0,D_M.Qprodutosproduto.AsString,ORDEM);
VCRetorno:=D_M.MOV_produtos.ParamByName('RCODIGO').AsInteger;
VNRetorno:=D_M.MOV_produtos.ParamByName('RNOME').AsString;
if ((VCRetorno>0) and (inclusao=1)) or ((inclusao=0) and (VCRetorno>0)
and (VCRetorno<>D_M.QprodutosCodigo.AsInteger)) and not
Bcancela.Focused then begin
MessageBeep(32);
MessageDlg('Produto com este Nome já Existente'+#10#13+#10#13+
'Código - '+IntToStr(VCRetorno)+#10#13+
'Nome - '+VNRetorno,mtError,[mbOk],0);
if messagedlg('Confirme!',mtconfirmation,[mbyes,mbno],0)=mrNO
then begin
DBNome.SetFocus;
exit;
end;
end;

QUANDO VOU TESTAR OUTRO CAMPO É QUE DA O ERRO, MAS O INTERESSANTE QUE
DA O ERRO, SE EU CONFIRMO QUE JA EXISTE
VPri:=D_M.QprodutosReffab.AsString;
if ((VPri<>'') and (VPri<and>0) and (inclusao=1)) or ((inclusao=0) and
(VCRetorno>0) and (VCRetorno<>D_M.QprodutosCodigo.AsInteger)) and not
Bcancela.Focused then begin
MessageBeep(32);
MessageDlg('Referência de Fábrica com este Código já
Existente'+#10#13+#10#13+
'Código - '+IntToStr(VCRetorno)+#10#13+
'Nome - '+VNRetorno,mtError,[mbOk],0);
if messagedlg('Confirme!',mtconfirmation,[mbyes,mbno],0)=mrNO
then begin
DBNome.SetFocus;
exit;
end;
end;

*************PROCEDURE *************************

ELSE IF (:VTIPO='NOME') THEN
BEGIN
SELECT CODIGO,PRODUTO FROM PRODUTOS WHERE PRODUTO=:VNOME ORDER
BY PRODUTO INTO :RCODIGO,:RNOME;
SUSPEND;
END
ELSE IF (:VTIPO='REFFAB') THEN
BEGIN
SELECT CODIGO,PRODUTO FROM PRODUTOS WHERE REFFAB=:VNOME ORDER
BY REFFAB INTO :RCODIGO,:RNOME;
SUSPEND;
END

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



 

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

Responder a