Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
216
Assunto : Visual Basic
Titulo: Receber RecordSet e variável de Output da mesma procedure

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Um grande dilema entre programadores VB sempre foi como fazer para receber um recordset e uma variável de OUTPUT de uma mesma procedure.

Quem já tentou ficou frustrado ao descobrir que a variável de OUTPUT não era acessível, voltava com valor nulo.

Porém existe uma solução para este mistério e o truque é até bem simples : Variáveis de OUTPUT são retornadas para o client apenas após todos os recordsets terem sido enviados para o client.

Assim sendo, a forma de acesso a variáveis de output estará ligada ao cursorlocation : Se o cursor estiver no servidor a variável só poderá ser acessada após o recordset ser fechado, porém se o cursor estiver no client a variável poderá ser acessada imediatamente após a execução da procedure.

Veja um exemplo de uma procedure no banco PUBS :

CREATE PROCEDURE teste @t varchar(10) output AS
select @t='teste'
select * from authors

Esta procedure devolve uma variável e um recordset. Veja agora o código para acessa-la :

Private Sub Command1_Click()
Dim cn As New Connection
Dim cmd As New Command
Dim rs As Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=."
cmd.CommandText = "teste"
cmd.CommandType = adCmdStoredProc
Set cmd.ActiveConnection = cn
cmd.Parameters.Refresh
Set rs = cmd.Execute
MsgBox "Resultado : " & cmd.Parameters("@t").Value
rs.Close
cn.Close
End Sub

Observe a linha cn.CursorLocation = adUseClient . Esta linha faz com que todos os registros sejam levados para o client e desta forma a variável @t se torna acessível. Caso contrário a variável @t só seria acessível após o rs.close e não antes do rs.close como no exemplo acima.

Ref. : http://support.microsoft.com/support/kb/articles/Q256/2/34.ASP

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 1/31/2017 11:04:00 AM
nome: SFxEjywecoRhBnXNYNk
email: derby451@hotmail.com
comentário:
yZf9wJ http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:20:00 AM
nome: nOBTwWoWqEI
email: jogcbfn@hotmail.com
comentário:
eoUqc0 http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:15:00 AM
nome: tBdeDWOydNT
email: derby451@hotmail.com
comentário:
T2CWgh http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 12/28/2016 11:15:00 PM
nome: QAWPAayeFUb
email: jfvynms4281rt@hotmail.com
comentário:
m2cU5x http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

data: 10/14/2016 11:59:00 AM
nome: YvPoFcBuLQDYmXTS
email: jimos4581rzt@hotmail.com
comentário:
OFJOPy http://www.FyLitCl7Pf7kjQdDUOLQOuaxTXbj5iNG.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br