PROBLEMAS NA PASSAGEM DE PARAMETROS- SQL SERVER
Bom dia a todos Colegas!!!
Estou com um pequeno problema na passagem Ado com o objeto Command para uma SP no Sql Server, quando os parametros retornados pela SP são data ou numerico consigo fazer numa boa mas agora precisei fazer um parametro que é String(Texto) e não está dando certo. Desde já antecipadamente agradeço a quem der um luz.Vejam só o Codigo que estou usando e a SP:
Dim Cnn as Adodb.connection
Dim Cmd as Adodb.command
Dim Rs As Adodb.recordset
If IsNull(Me.txtNome) Or Me.txtNome = "" Then
MsgBox "Preecha o campo nome.", vbInformation, "ERRO"
Me.txtNome.SetFocus
Exit Sub
End If
If IsNull(Me.TxtSenha) Or Me.TxtSenha = "" Then
MsgBox "Preecha o campo senha!", vbInformation, "ERRO"
Me.TxtSenha.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Cnn.Provider = "SqlOledb"
Cnn.Properties("Data Source") = CaminhoBd
Cnn.Properties("Initial Catalog") = BancoInicial
Cnn.Properties("User Id") = UsuarioBd
Cnn.Properties("Password") = SenhaBd
Cnn.CursorLocation = adUseClient
Cnn.CommandTimeout = 15
Cnn.Open
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
.CommandType = adCmdStoredProc
.Parameters(1).Direction = adParamInput
.Parameters(1).Type = adVarChar
.Parameters(1).Size = Len(txtNome)
.Parameters(1).Value = txtNome
.Parameters(2).Direction = adParamInput
.Parameters(2).Type = adVarChar
.Parameters(2).Size = Len(TxtSenha)
.Parameters(2).Value = TxtSenha
Set Rs = .Execute
End With
With Rs
If .BOF = True Or .EOF = True Then
MsgBox "Nome o senha usuario invalido!", vbCritical, "Erro de acesso"
txtNome.SetFocus
Rs.Close
Cnn.Close
Exit Sub
End If
Minha Stored Procedure
Create proc Sp_Acesso
@User Varchar,
@Password Varchar
As
Select * From Logon Where NomeUsuario Like @User
and SenhaUsuario like @Password
GO
Estou com um pequeno problema na passagem Ado com o objeto Command para uma SP no Sql Server, quando os parametros retornados pela SP são data ou numerico consigo fazer numa boa mas agora precisei fazer um parametro que é String(Texto) e não está dando certo. Desde já antecipadamente agradeço a quem der um luz.Vejam só o Codigo que estou usando e a SP:
Dim Cnn as Adodb.connection
Dim Cmd as Adodb.command
Dim Rs As Adodb.recordset
If IsNull(Me.txtNome) Or Me.txtNome = "" Then
MsgBox "Preecha o campo nome.", vbInformation, "ERRO"
Me.txtNome.SetFocus
Exit Sub
End If
If IsNull(Me.TxtSenha) Or Me.TxtSenha = "" Then
MsgBox "Preecha o campo senha!", vbInformation, "ERRO"
Me.TxtSenha.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Cnn.Provider = "SqlOledb"
Cnn.Properties("Data Source") = CaminhoBd
Cnn.Properties("Initial Catalog") = BancoInicial
Cnn.Properties("User Id") = UsuarioBd
Cnn.Properties("Password") = SenhaBd
Cnn.CursorLocation = adUseClient
Cnn.CommandTimeout = 15
Cnn.Open
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
.CommandType = adCmdStoredProc
.Parameters(1).Direction = adParamInput
.Parameters(1).Type = adVarChar
.Parameters(1).Size = Len(txtNome)
.Parameters(1).Value = txtNome
.Parameters(2).Direction = adParamInput
.Parameters(2).Type = adVarChar
.Parameters(2).Size = Len(TxtSenha)
.Parameters(2).Value = TxtSenha
Set Rs = .Execute
End With
With Rs
If .BOF = True Or .EOF = True Then
MsgBox "Nome o senha usuario invalido!", vbCritical, "Erro de acesso"
txtNome.SetFocus
Rs.Close
Cnn.Close
Exit Sub
End If
Minha Stored Procedure
Create proc Sp_Acesso
@User Varchar,
@Password Varchar
As
Select * From Logon Where NomeUsuario Like @User
and SenhaUsuario like @Password
GO
Q erro dá, e onde dá o erro ?
Abraços,
Abraços,
Qual é o tipo q tu tá declarando para os parà ¢metros na Stored Procedure ?
Abraços,
Abraços,
With Cmd
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
.CommandType = adCmdStoredProc
.Parameters(1).Value = txtNome
.Parameters(2).Value = TxtSenha
End With
Set RS = NEW ADODB.RecordSet
Set Rs = Cmd.Execute
Tenta assim,
Abraços,
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
.CommandType = adCmdStoredProc
.Parameters(1).Value = txtNome
.Parameters(2).Value = TxtSenha
End With
Set RS = NEW ADODB.RecordSet
Set Rs = Cmd.Execute
Tenta assim,
Abraços,
tenta assim entao:
Create proc Sp_Acesso
@User Varchar(100), */ Coloca o tamanho máximo do campo */
@Password Varchar(100) */ Coloca o tamanho máximo do campo */
As
Select * From Logon Where NomeUsuario Like @User
and SenhaUsuario like @Password
GO
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
Set Rs = .Execute(,[txtNome.text,txtSenha.text],adCmdStoredProc)
End With
Abraços,
Create proc Sp_Acesso
@User Varchar(100), */ Coloca o tamanho máximo do campo */
@Password Varchar(100) */ Coloca o tamanho máximo do campo */
As
Select * From Logon Where NomeUsuario Like @User
and SenhaUsuario like @Password
GO
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Cnn
.CommandText = "Sp_Acesso"
Set Rs = .Execute(,[txtNome.text,txtSenha.text],adCmdStoredProc)
End With
Abraços,
Vou testar em casa e depois falo contigo.
SQL Server ?
Abraços,
SQL Server ?
Abraços,
Tópico encerrado , respostas não são mais permitidas