Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Consulta SQL Erro EOleException


Geomar Canjundo

Pergunta

Olá Pessoal,

Estou tentando fazer uma consulta (AdoQuery e SQL SERVER) na qual me vai gerando a o seguinte erro:

"EOleException with Message: sp_cursoropen/sp_cursorprepare: The statement can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignements "

A consulta é a seguinte

procedure AdicionaAoStockLoja(produto:Integer);
  begin
     With ModuloDados.QryStockLoja do
   begin
     Close;
     SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
     SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+ IntToStr(produto));
     SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
     SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
     Open;
end;

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

"EOleException with Message: sp_cursoropen/sp_cursorprepare: The statement can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignements "

Erro: sp_cursoropen/sp_cursorprepare: A declaração só pode ser um lote ou um procedimento armazenado com uma única escolha, sem FOR BROWSE, COMPUTE BY, ou variável atribuida

reveja a sua declaração ... e atente para a mensagem de erro

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
"EOleException with Message: sp_cursoropen/sp_cursorprepare: The statement can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignements "

Erro: sp_cursoropen/sp_cursorprepare: A declaração só pode ser um lote ou um procedimento armazenado com uma única escolha, sem FOR BROWSE, COMPUTE BY, ou variável atribuida

reveja a sua declaração ... e atente para a mensagem de erro

abraço

Jhonas, Confesso-te sinceramente que percebi nada da sua explicação.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Geomar,

tente fazer assim:

procedure AdicionaAoStockLoja(produto:Integer);
  begin
     With ModuloDados.QryStockLoja do
   begin
     Close;
     SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
     SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+''''+IntToStr(produto)+''''+'');
     SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
     SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
     Open;
end;
ou assim:
SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
     SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = :produto');
     SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
     SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
     Parameters.ParamValues['produto'] := produto;
     Open;
end;

Abs. Progr'amador

Editado por Progr'amador
Link para o comentário
Compartilhar em outros sites

  • 0
Olá Geomar,

tente fazer assim:

procedure AdicionaAoStockLoja(produto:Integer);
  begin
     With ModuloDados.QryStockLoja do
   begin
     Close;
     SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
     SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+''''+IntToStr(produto)+''''+'');
     SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
     SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
     Open;
end;
ou assim:
SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
     SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = :produto');
     SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
     SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
     Parameters.ParamValues['produto'] := produto;
     Open;
end;

Abs. Progr'amador

Progr'amador,

Tentei as duas opções e continuo recebendo o mesmo erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Viva Amigos,

Mais uma vez devo agradecer a vossa prestabilidade.

Consegui superar o erro gerado pela consulta da seguinte forma:

Em vez de fazer a consulta no AdoQuery, fiz directamente na Base dados mediante Stored Procedure, adicionei um componente TAdoStoredProc e chamei a procedure a partir daí... Funcionou perfeitamente.

Valeu!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...