Array
(
)

Executar Store Procedure

Sroque
   - 06 set 2005

Bom dia pessoal, :)

Se puderem ame ajudar...

Não consigo executar uma SP, dá uma mensagem: could not find store procedure sp_grupo. Não tenho experiência, com SP, fiz assim:
Tenho uma classe chamada ccjust rno VB para conectar e setar o rs que já testei e funciona.

Public Function conectar()
On Error GoTo erroConectar
conectar = False
Set cn = New adodb.Connection
With cn
.Provider = ´SQLOLEDB.1´
.ConnectionString = ´Network Library=DBMSSOCN; Initial Catalog=teste; Data Source=geral; User ID= sa; Password=sa´
.Open
End With

Public Function Setars(sqlstr As String) As Boolean
Set rs = New adodb.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open sqlstr, cn
End With
End Function

no form load:
Set strJust = New ccjust

A minha SP é:
CREATE PROCEDURE [sp_grupo]
(@grcodigo_1 [char](6) output,
@grnome_2 [varchar](50))

AS Select [teste].[dbo].[Grupo]
( [grcodigo],
[grnome])
from [teste].[dbo].[Grupo]

where
grcodigo = ´ADM´
GO

No VB em um botão para testar:
Dim comando As New adodb.Command

Dim cmd As ADODB.Command

Set cmd = New ADODB.Command

With cmd
Set .ActiveConnection = strJust.cn
.CommandText = cmdStoredProc
.CommandText = ´sp_grupo´
End With
cmd.Execute

Sroque
   - 06 set 2005

:lol:
Gente já consegui resolver, o problema é que qdo eu chamo a SP tenho que colocar o ´nome do proprietario.nome da SP´, ai funciona.
Alguém sabe como faze para não ter que colocar o nome do proprietário?

Sandra

Emersonn
   - 19 out 2005

Olá,

Para você não ter que passar o nome do proprietário na frente de uma procedure a mesma deve ser criada no SQL Server tendo como proprietário o usuário DBO, assim vc só utiliza o nome da procedure dentro dos seus programas.

Para criar uma procedure tendo como proprietário o usuário DBO ou você utiliza o usuário SA (administrador) ou põe na frente do nome da procedure o usuário DBO na hora da criação.

Ex: create procedure dbo.nome_da_procedure as ......

Espero ter ajudado.
Emerson