kaadgar Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 Olá pessoal,Estou com um problema que é o seguninte:Tenho a SP de um sistema desktop e estou usando o mesmo serviço para uma interface web./****** Object: StoredProcedure [dbo].[sA473NOV01] Script Date: 02/18/2013 14:23:45 ******/SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGOALTER PROCEDURE [dbo].[sA473NOV01] ( @pnEmpresa smallint, @psNumGuia varchar(10), @psTipoGuia varchar(1), @pnNumContrato int, @psPlano varchar(2), @pnIdUsuario int, @pnControle smallint, @pnIdSolicitante int, @pnIdLocalSolicitante smallint, @pnIdMedico int, @pnIdMedicoLocal smallint, @pnIdPrestadorlRealizacao int, @pnIdLocalidadeRealizacao smallint, @psComentario varchar(7000), @pnTabelaReferencia smallint, @psProcedimento varchar(8), @pnTipoAcomodacao smallint, @pdSessoesPedida smallint, @pdDataValidadeInicio datetime, @pdDataValidadeFinal datetime, @pnTipoInternacao smallint, @pnSituacaoInternacao smallint, @pdDataSolicitacao datetime, @psSituacao varchar(1), @pdDataSituacao datetime, @pnTpEvento Varchar(1), @pnGuiaRef Varchar(10), @psFlagRecemNascido varchar(1), @pnId_Anestesista int, @pnId_Local_Anestesista smallint, @psId_Porte_An varchar(3), @pnQtd_porte_An decimal(25,4), @psFlag_Video varchar(1), @psTpAtendimento varchar(2), @psNrGuiaAns varchar(20), @psNrGuiaAnsRef varchar(20), @psProcedimentoS1 varchar(8), @psProcedimentoS2 varchar(8), @psProcedimentoS3 varchar(8), @psProcedimentoS4 varchar(8), @pnCid varchar(10), @pnCid_2 varchar(10), @pnCid_3 varchar(10), @pnCid_4 varchar(10), @pnUsa_Log smallint = 0, @pnID_Transacao int = 0 ) AsDeclare @Return varchar(13)Declare @sChave varchar(14) -- Para gravar logDeclare @nMesGuia varchar(2)Declare @nAnoGuia varchar(4) Declare @nSeqGuia varchar(6)-- *******************************************************************************************-- *** Sistema: SAUDE ***-- *** Tela: SA470 - Cadastro de Guia para SADT / Consulta ***-- *******************************************************************************************Begin Select @Return = '' -- Sucesso Select @nAnoGuia = YEAR(GETDATE()) Select @nSeqGuia = ( SELECT CONVERT(VARCHAR, ISNULL(MAX(SEQ_GUIA)+1,1)) FROM SA_GUIA WHERE EMPRESA = @pnEmpresa AND ANO_GUIA = @nAnoGuia) Select @nSeqGuia = REPLICATE('0', 6 - LEN(@nSeqGuia)) + @nSeqGuia Select @psNumGuia = @nAnoGuia + @nSeqGuia Select @psNrGuiaAns = REPLICATE('0', 7 - LEN(@pnIdMedico)) + CONVERT(VARCHAR(7), @pnIdMedico) + REPLICATE('0', 2 - LEN(DATEPART(M, @pdDataSolicitacao))) + CONVERT(VARCHAR(2), DATEPART(M, @pdDataSolicitacao)) + CONVERT(VARCHAR(2), RIGHT(YEAR(GETDATE()), 2) ) + CASE @psTipoGuia WHEN '1' THEN 'C' WHEN '2' THEN 'S' WHEN '3' THEN 'H' END + REPLICATE('0', 8 - LEN(@nSeqGuia)) + CONVERT(VARCHAR(8), @nSeqGuia) BEGIN TRANSACTION INSERT INTO SA_GUIA ( EMPRESA, NR_GUIA, TP_GUIA, NR_CONTRATO, PLANO, ID_USUARIO, CONTROLE, ANO_GUIA, SEQ_GUIA, ID_SOLICITANTE, ID_LOCAL_SOLICITANTE, ID_MEDICO, ID_MEDICO_LOCAL, ID_LOCAL_REALIZACAO, ID_LOCAL_REALIZACAO_L, COMENTARIO, ID_TABELA_REF, PROCEDIMENTO_P, TP_ACOMODACAO, SESSOES_PEDIDA, DT_VALIDADE_INICIAL, DT_VALIDADE_FINAL, TP_INTERNACAO, SITUACAO_ATENDIMENTO, DT_SOLICITACAO, SITUACAO, DT_SITUACAO, TP_EVENTO, NR_GUIA_REFERENCIA, FLAG_RN, ID_ANESTESISTA , ID_LOCAL_ANESTESISTA , ID_PORTE_AN , QTD_PORTE_AN , FLAG_VIDEO, TP_ATENDIMENTO, NR_GUIA_ANS, NR_GUIA_ANS_REF, PROCEDIMENTO_S1, PROCEDIMENTO_S2, PROCEDIMENTO_S3, PROCEDIMENTO_S4, CID, CID_2, CID_3, CID_4, DT_CADASTRO, USR_CADASTRO ) VALUES ( @pnEmpresa, @psNumGuia, @psTipoGuia, @pnNumContrato, @psPlano, @pnIdUsuario, @pnControle, Convert(smallint,@nAnoGuia), Convert(int,@nSeqGuia), @pnIdSolicitante, @pnIdLocalSolicitante, @pnIdMedico, @pnIdMedicoLocal, @pnIdPrestadorlRealizacao, @pnIdLocalidadeRealizacao, @psComentario, @pnTabelaReferencia, @psProcedimento, @pnTipoAcomodacao, @pdSessoesPedida, @pdDataValidadeInicio, @pdDataValidadeFinal, @pnTipoInternacao, @pnSituacaoInternacao, @pdDataSolicitacao, @psSituacao, @pdDataSituacao, @pnTpEvento, CASE WHEN @pnGuiaRef IS NULL THEN @psNumGuia ELSE @pnGuiaRef END, @psFlagRecemNascido, @pnId_Anestesista, @pnId_Local_Anestesista, @psId_Porte_An, @pnQtd_porte_An, @psFlag_Video, @psTpAtendimento, @psNrGuiaAns, @psNrGuiaAnsRef, @psProcedimentoS1, @psProcedimentoS2, @psProcedimentoS3, @psProcedimentoS4, @pnCid, @pnCid_2, @pnCid_3, @pnCid_4, GETDATE(), USER_NAME() ) Select @Return = CONVERT(VARCHAR(13), @@ERROR) If (@Return <> '0' And @Return IS NOT NULL) Begin Goto ERRO_SQL End If @pnUsa_Log = 1 Begin Select @sChave = 'EMPRESA= + CONVERT(VARCHAR,@pnEmpresa) + ' AND NR_GUIA=' + @psNumGuia Execute PB100LOG01 '', @pnID_Transacao, @sChave, @Return If (@Return <> '0' And @Return IS NOT NULL) Begin Goto ERRO_SQL End End COMMIT TRANSACTION Goto FIM ERRO_SQL: ROLLBACK TRANSACTION Goto FIM FIM: Select @Return , @psNumGuia, @psNrGuiaAnsEndMeu código está em C# e estou fazendo o retorno da seguinte forma:con = new SqlConnection(ConnectionString); con.Open(); #region paramReturn SqlParameter paramReturnValue = new SqlParameter(); paramReturnValue.ParameterName = "@psNumGuia"; paramReturnValue.SqlDbType = SqlDbType.VarChar; paramReturnValue.SourceColumn = null; paramReturnValue.Direction = ParameterDirection.ReturnValue; #endregion #region ParamProc SqlCommand storedProcCommand = new SqlCommand("SA473NOV01", con); storedProcCommand.CommandType = CommandType.StoredProcedure; storedProcCommand.Parameters.AddWithValue("@pnEmpresa", entity.pnEmpresa); storedProcCommand.Parameters.AddWithValue("@psNumGuia", entity.psNumGuia); storedProcCommand.Parameters.AddWithValue("@psTipoGuia", entity.psTipoGuia); storedProcCommand.Parameters.AddWithValue("@pnNumContrato", entity.pnNumContrato); storedProcCommand.Parameters.AddWithValue("@psPlano", entity.psPlano); storedProcCommand.Parameters.AddWithValue("@pnIdUsuario", entity.pnIdUsuario); storedProcCommand.Parameters.AddWithValue("@pnControle", entity.pnControle); storedProcCommand.Parameters.AddWithValue("@pnIdSolicitante", entity.pnIdSolicitante); if (String.IsNullOrEmpty(entity.pnIdLocalSolicitante.ToString())) storedProcCommand.Parameters.AddWithValue("@pnIdLocalSolicitante", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@pnIdLocalSolicitante", entity.pnIdLocalSolicitante); storedProcCommand.Parameters.AddWithValue("@pnIdMedico", entity.pnIdMedico); storedProcCommand.Parameters.AddWithValue("@pnIdMedicoLocal", entity.pnIdMedicoLocal); storedProcCommand.Parameters.AddWithValue("@pnIdPrestadorlRealizacao", entity.pnIdPrestadorlRealizacao); storedProcCommand.Parameters.AddWithValue("@pnIdLocalidadeRealizacao", entity.pnIdLocalidadeRealizacao); storedProcCommand.Parameters.AddWithValue("@psComentario", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnTabelaReferencia", entity.pnTabelaReferencia); storedProcCommand.Parameters.AddWithValue("@psProcedimento", entity.psProcedimento); storedProcCommand.Parameters.AddWithValue("@pnTipoAcomodacao", entity.pnTipoAcomodacao); storedProcCommand.Parameters.AddWithValue("@pdSessoesPedida", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pdDataValidadeInicio", entity.pdDataValidadeInicio); storedProcCommand.Parameters.AddWithValue("@pdDataValidadeFinal", entity.pdDataValidadeFinal); storedProcCommand.Parameters.AddWithValue("@pnTipoInternacao", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnSituacaoInternacao", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pdDataSolicitacao", entity.pdDataSolicitacao); storedProcCommand.Parameters.AddWithValue("@psSituacao", "0"); storedProcCommand.Parameters.AddWithValue("@pdDataSituacao", entity.pdDataSituacao); storedProcCommand.Parameters.AddWithValue("@pnTpEvento", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnGuiaRef", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psFlagRecemNascido", entity.psFlagRecemNascido); storedProcCommand.Parameters.AddWithValue("@pnId_Anestesista", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnId_Local_Anestesista", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psId_Porte_An", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnQtd_porte_An", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psFlag_Video", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psTpAtendimento", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psNrGuiaAns", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@psNrGuiaAnsRef", DBNull.Value); if (String.IsNullOrEmpty(entity.psProcedimentoS1)) storedProcCommand.Parameters.AddWithValue("@psProcedimentoS1", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@psProcedimentoS1", entity.psProcedimentoS1); if (String.IsNullOrEmpty(entity.psProcedimentoS2)) storedProcCommand.Parameters.AddWithValue("@psProcedimentoS2", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@psProcedimentoS2", entity.psProcedimentoS2); if (String.IsNullOrEmpty(entity.psProcedimentoS3)) storedProcCommand.Parameters.AddWithValue("@psProcedimentoS3", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@psProcedimentoS3", entity.psProcedimentoS3); if (String.IsNullOrEmpty(entity.psProcedimentoS4)) storedProcCommand.Parameters.AddWithValue("@psProcedimentoS4", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@psProcedimentoS4", entity.psProcedimentoS4); storedProcCommand.Parameters.AddWithValue("@pnCid", entity.pnCid); if (String.IsNullOrEmpty(entity.pnCid_2)) storedProcCommand.Parameters.AddWithValue("@pnCid_2", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@pnCid_2", entity.pnCid_2); if (String.IsNullOrEmpty(entity.pnCid_3)) storedProcCommand.Parameters.AddWithValue("@pnCid_3", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@pnCid_3", entity.pnCid_3); if (String.IsNullOrEmpty(entity.pnCid_4)) storedProcCommand.Parameters.AddWithValue("@pnCid_4", DBNull.Value); else storedProcCommand.Parameters.AddWithValue("@pnCid_4", entity.pnCid_4); storedProcCommand.Parameters.AddWithValue("@pnUsa_Log", DBNull.Value); storedProcCommand.Parameters.AddWithValue("@pnID_Transacao", DBNull.Value); storedProcCommand.Parameters.Add(paramReturnValue); #endregion var result = storedProcCommand.ExecuteNonQuery(); var returnValue = storedProcCommand.Parameters["@psNumGuia].Value; SqlDataReader _rsData; con.Close();Não consigo fazer retornar os valores da SP! Tentei criar 3 variáveis de retorno, uma para cada parâmetro e consegui somente resgatar o primeiro... o restante vindo nulo!Obrigado desde já!Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 Salve,Veja se te ajuda (não sei bem se vai funcionar porque estou só usando EF4)script.sqlUSE TESTE GO ALTER PROCEDURE RETORNAVALORES AS BEGIN; SET NOCOUNT ON SELECT RAND() END; GO Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Executar" onclick="Button1_Click" Width="140px" /> <br /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> </div> </form> </body> </html> Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Web.Configuration; using System.Configuration; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { ConnectionStringSettings strCon = WebConfigurationManager.ConnectionStrings["local"] as ConnectionStringSettings; using (SqlConnection con = new SqlConnection(strCon.ConnectionString)) { con.Open(); SqlCommand cmd = new SqlCommand("EXEC RETORNAVALORES", con); var valor = cmd.ExecuteScalar(); Label1.Text = valor.ToString(); } } }[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 Novo exemplo:ALTER PROCEDURE RETORNA_VALOR @SAIDA FLOAT OUTPUT AS BEGIN SET @SAIDA = RAND(); END GO using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Configuration; using System.Web.Configuration; using System.Data; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { ConnectionStringSettings strCon = WebConfigurationManager.ConnectionStrings["local"] as ConnectionStringSettings; using (SqlConnection con = new SqlConnection(strCon.ConnectionString)) { con.Open(); SqlCommand cmd = new SqlCommand("RETORNA_VALOR", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@saida", SqlDbType.Float).Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); Label1.Text = cmd.Parameters["@saida"].Value.ToString(); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 Exemplo 3USE TESTE GO CREATE PROCEDURE DEMO AS BEGIN SET NOCOUNT ON DECLARE @NOME VARCHAR(100); SET @NOME = 'WELLINGTON RODRIGUES'; SELECT @NOME; END GO EXEC DEMO Default3.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data.SqlClient; using System.Web.Configuration; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { ConnectionStringSettings strCon = WebConfigurationManager.ConnectionStrings["local"] as ConnectionStringSettings; using (SqlConnection con = new SqlConnection(strCon.ConnectionString)) { con.Open(); SqlCommand cmd = new SqlCommand("DEMO", con); var nome = cmd.ExecuteScalar(); Label1.Text = nome.ToString(); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
kaadgar
Olá pessoal,
Estou com um problema que é o seguninte:
Tenho a SP de um sistema desktop e estou usando o mesmo serviço para uma interface web.
Meu código está em C# e estou fazendo o retorno da seguinte forma:
Não consigo fazer retornar os valores da SP!
Tentei criar 3 variáveis de retorno, uma para cada parâmetro e consegui somente resgatar o primeiro... o restante vindo nulo!
Obrigado desde já!
Abraços.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.