none
Problema para executar SP no Sybase RRS feed

  • Pergunta

  • Boas senhores, estou usando vs2010 c#

    Tenho que rodar um sp dentro de um banco sybase....

    Com sp onde não ha parâmetro de retorno roda sem erro....

    Mas quando tenho parâmetro retorno recebo erro....

    segue fragmento do código...

    using (System.Data.Odbc.OdbcConnection Conn = new System.Data.Odbc.OdbcConnection(Sc.ConnectionString)) { try { Conn.Open(); OdbcCommand command = new OdbcCommand("{CALL sp_con ?,? ", Conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@param1", OdbcType.Char,12); command.Parameters["@param1"].Value = "1020"; command.Parameters.Add("@param2", OdbcType.Char); command.Parameters["@wparam2"].Direction = ParameterDirection.Output; OdbcDataReader drx = command.ExecuteReader(); while (drx.Read()) Console.WriteLine(drx.GetString(0)); }

    .....

    no executereader trava...não da erro não prossegue....

    Obrigado


    • Editado DET1 terça-feira, 30 de setembro de 2014 20:07 ajuste da msg
    terça-feira, 30 de setembro de 2014 18:55

Respostas

  • Resolvido da seguinte forma....

    passei o command.CommandType = text

    e CommandText = " call sp_x ?";

    • Marcado como Resposta DET1 quinta-feira, 16 de outubro de 2014 13:31
    quinta-feira, 2 de outubro de 2014 14:42

Todas as Respostas

  • Como esta seu retorno de valor ?

    quarta-feira, 1 de outubro de 2014 01:46
  • Obrigado pelo retorno....

    então esta travando no OdbcDataReader drx = command.ExecuteReader();

    dai não acontece nada, não passa para próxima linha....

    Vc usa sybase?

    Se executo em ferramente de banco, com exec....roda normal...

    Tem como eu executar a proc com a sintaxe de exec.?

    ex. exec sp p1,p2 

    • Editado DET1 quarta-feira, 1 de outubro de 2014 14:46 ajsute
    quarta-feira, 1 de outubro de 2014 12:00
  • Na internet achei uma sintaxe diferente para o sybase...onde tenho que adicionar o o banco na chamada da sp e jogar isso no command.text...

    ex.  cmd.CommandText = "banco.dbo sp_x?,?";

    Muda o erro que recebo...

    user api layer: external error: An illegal value of 1024 was placed in the status field of the CS_DATAFMT structure.


    • Editado DET1 quinta-feira, 2 de outubro de 2014 14:42 ajuste
    quarta-feira, 1 de outubro de 2014 17:23
  • Resolvido da seguinte forma....

    passei o command.CommandType = text

    e CommandText = " call sp_x ?";

    • Marcado como Resposta DET1 quinta-feira, 16 de outubro de 2014 13:31
    quinta-feira, 2 de outubro de 2014 14:42