Davis 0 Denunciar post Postado Dezembro 12, 2006 Estou fazendo uma pesquisa no BD e ela deveria retornar os campos (naturalmente http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif ) e um valor de retorno. O campo direct_debit, dentro da tbCustomers, é um campo booleano. Eu preciso verificá-lo para ver se eu preciso fazer um INNER JOIN na em tbDDebit ou não. Vejam: ALTER PROCEDURE dbo.spSelectOneCustomer @id intAS DECLARE @dd as bit SET @dd = (SELECT direct_debit FROM tbCustomers WHERE id = @id AND del = '0') if (@dd = '0') begin SELECT id, name_cust FROM tbCustomers WHERE id = @id AND del = '0' end if (@dd = '1') begin SELECT C.id, C.name_cust, DD.id as id_dd, DD.bank_acc_number FROM tbCustomers as C INNER JOIN tbDDebit as DD on C.id = DD.id_cust WHERE C.id = @id AND C.del = '0' end RETURN @ddEm seguida eu tenho o código que recebe os valores da Stored Procedure. Vou colocar só o mais importante pois é gigantesco http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif : Dim myCommand As SqlCommand = New SqlCommand("spSelectOneCustomer", MyConn) With myCommand .CommandType = CommandType.StoredProcedure .Parameters.Clear() .Parameters.Add("@id", SqlDbType.Int).Value = Request.QueryString("id") .Parameters.AddWithValue("@RETURN_VALUE", 0).Direction = ParameterDirection.ReturnValue End With Try MyConn.Open() Dim result As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection) If result.Read Then hfID.Value = result("id") txtName.Text = result("name_cust") If Convert.ToBoolean(myCommand.Parameters("@RETURN_VALUE").Value) Then cbDirectDebit.Checked = result("direct_debit") hfID_DD.Value = result("id_dd") txtBankAccNumber.Text = result("bank_acc_number") txtBankAccNumber.Enabled = True End If result.Close() Catch ex as Exception Response.Write(ex.Message) Exit Sub Finally MyConn.Close() btnCancel.Visible = True btnSave.Text = "Save" End TryO problema todo é que o @RETURN_VALUE está retornando o valor passado pelo código e não pela Stored Procedure. Fiz o teste: se eu colocar .AddWithValue("@RETURN_VALUE", vbNull) na passagem de parâmetros ele vai me retornar um valor nulo. Alguma sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
Davis 0 Denunciar post Postado Dezembro 14, 2006 Bem, como ninguém respondeu eu vou mostrar a gambiarra que eu fiz http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Usei um bloco try: Try 'using try because i have no idea why it doesnt return any value 'If CType(myCommand.Parameters("@RETURN_VALUE").Value, Boolean) Then cbDirectDebit.Checked = result("direct_debit") hfID_DD.Value = result("id_dd") txtBankAccNumber.Text = result("bank_acc_number") txtBankAccNumber.Enabled = True 'End If Catch End Try Bem, tá funcionando... hehehe.. Valeu... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif Compartilhar este post Link para o post Compartilhar em outros sites