Boa tarde,
Trabalho pouco com SP e tenho alguma dúvidas?
Executando uma SP através do VB com ADO.
Minha conexão está sendo feita da seguinte forma:
“”
Public Cmddll As New ADODB.Command, Cnndll As New ADODB.Connection
Set Cnndll = New ADODB.Connection
Cnndll.Open "provider=sqloledb;data source=" & fServidor & " " _
& ";user id=sa;password=;initial catalog=" & fBanco
Set Cmddll.ActiveConnection = Cnndll
Cmddll.Parameters.Refresh
Cmddll.CommandType = adCmdText
""
Dúvidas:
1 - Qual a diferença se o COMMANDTYPE do meu COMMAND estiver com ADCMDTEXT ou ADCMDSTOREDPROC.
2 - Executo a sp da seguinte forma:
vsSql = "PNX_CALCULAITEM @NIA=0,@APL=0,@CODAMB =" & rsItem!codamb & "," _
& "@PAC=" & dllRa & ",@MPS=" & dllMedico & ",@OP=1,@USR=" & dllUsuario & "," _
& "@REC=" & rsPac!Loc & ",@DT ='" & vsData & "',@EXC=" & dllExecutante & "," _
& "@QTD=" & CInt(dllQtd) & ",@NCT=" & viNct & ",@CDP=" & rsPac!esp & "," _
& "@FTP=" & viConv & ",@COD=" & rsItem!COD & ""
Cmddll.CommandText = vsSql
Set rsAux = New ADODB.Recordset
rsAux.Open Cmddll, , 3
A SP rodando sem erro o que deve ser retornado para o RSAUX ? Exemplo: O que vem para RSAUX.RECORDCOUNT ? Hoje o retorno que tenho é –1, está correto ? (Obs. Dentro de SP tem uma serie de variáveis internas, mas que não são de retorno)
3 - Como posso obter o valor de uma variável interna da SP, exemplo:
Dentro da SP tenho a informação abaixo entre outras
DECLARE @PRO_VALOR VARCHAR (100)
SET @PROB_VALOR=(SELECT 'ITEM '+ SUBSTRING(S.NOME,1,30) + ' SEM
PREÇO FROM TABELA_SEM_PRECOS T,PRODUTOS P
WHERE
T.CODIGO=@CODIGO AND AND T.CODIGO=P.CODIGO)
4 – Quando executo com .CommandType = ADCMDSTOREDPROC, da o seguinte erro: “Syntax error or access violation”. Mas se rodar com CommandType = adcmdtext, não dar o erro. O que ocorre ?
Se alguém poder ajudar,
t+