Criei a seguinte Stored Procedure para inserção de dados:
ALTER PROCEDURE [dbo].[sp_InsercaoEPI_Requisicao]
(
@id_EPI_EmpregadoRequisicao int output,
@id_Empregado int,
@dataRequisicao DateTime,
@id_tipoDeFornecimentoEPI int
)
AS
INSERT INTO EPI_EmpregadoRequisicao ( id_Empregado, dataRequisicao, id_tipoDeFornecimentoEPI )
VALUES (@id_Empregado, @dataRequisicao, @id_tipoDeFornecimentoEPI)
Set @id_EPI_EmpregadoRequisicao = SCOPE_IDENTITY()
E o código para executa-la:
Set cmd = New ADODB.Command
Dim ret
Dim ParRetorno As ADODB.Parameter
'Criar Requisição
With cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.Parameters.Append cmd.CreateParameter("@id_Empregado", adBigInt, adParamInput, , lng_idEmpregado)
.Parameters.Append cmd.CreateParameter("@dataRequisicao", adDate, adParamInput, , FormatDateTime(Now, vbShortDate))
.Parameters.Append cmd.CreateParameter("@id_tipoDeFornecimentoEPI", adBigInt, adParamInput, , Me.cbo_tipoDeFornecimento.Value)
.CommandText = "sp_InsercaoEPI_Requisicao"
End With
Set ParRetorno = cmd.CreateParameter("@id_EPI_EmpregadoRequisicao", adBigInt, adParamOutput)
cmd.Parameters.Append ParRetorno
cmd.Execute
ret = ParRetorno.Value
O meu problema está em recuperar o valor do parâmetro (@id_EPI_EmpregadoRequisicao) que contem o valor do id do registro incluído. Ao executar o comando (.execute) aparece a mensagem:
"Conversão implícita de tipo de dados para int não é permitido. Use a função CONVERT para executar esta consulta"
[b]Ivanenko[/b]