STORE PROCEDURES

JACKSONVB 12/12/2006 09:32:41
#189457
gurisada..
alguem pode me ajuda...
preciso sabe como usar Store Procedures do FireBird no VB... num to conseguindo... ja tentei assim:

Dim CX As New ADODB.Connection, rc As New ADODB.Recordset, CM As New ADODB.Command
cx.Open "Provider......" etc..
CM.CommandType = adCmdStoredProc
CM.CommandText = "TESTE_SP"
CM.Parameters.Append CM.CreateParameter("CP_EMPRESA", adDouble, adParamInput)
CM.Parameters.Append CM.CreateParameter("NOME", adVarWChar, adParamOutput, 255)
CM.Parameters("CP_EMPRESA").Value = "1"
CM.ActiveConnection = cx
Set rc = CM.Execute

so q da erro... diz assim...
Bind parameter errors:
[0]:[code:0x80040E55] Bad IN-parametrer ordinal:1 - range [1..0]

tem jeito?
vlws...
USUARIO.EXCLUIDOS 12/12/2006 12:25:56
#189497
Resposta escolhida
Amigo, mão sei te explicar certo porque do erro, no entando
uso desta maneira.

With cmd
cnx.Open
.ActiveConnection = cnx
.CommandText = "MY_PROCEDURE"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , "Valor para este campo")
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , Valor para este campo)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , Valor para este campo)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , Valor para este campo)
.Parameters.Append .CreateParameter(, adVarChar, adParamInput, 100, Valor para este campo)
.Parameters.Append .CreateParameter(, adDate, adParamInput, , Valor para este campo)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , Valor para este campo)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, , Valor para este campo)
.Execute
End With
JACKSONVB 12/12/2006 16:11:57
#189540
CARA.. NUM TEM JEITO.. PERSISTE O ERRO...
Q BANCO VC USA?
SE ALGUEM SOUBER COMO FAZE FUNCIONA NO FIREBIRD... PLEASE...
JACKSONVB 13/12/2006 10:07:38
#189646
please... ninguem sabe como faze funciona a store no fire?
SILVIO.GARCIA 13/12/2006 10:44:14
#189662
Vamos lá uma procedure simples de listagem de clientes;

CREATE PROCEDURE LISTAR_CLIENTES (
PO_SITITEM CHAR(1))
RETURNS (
CODCLI INTEGER,
NOMCLI VARCHAR(50),
CPF VARCHAR(20))
AS
begin
FOR SELECT CodCli,NomCli,CPF
From tabcliente
WHERE SITCLIENTE = :po_sititem ORDER BY NOMCLI
INTO :codcli,:Nomcli,:cpf
DO
suspend;
end

Agora no vb eu uso ela de seguinte maneira:

SqlCliente$ = "Select * from LISTAR_CLIENTES('" & "A" & "')"

Set CCliente = CreateObject("adodb.recordset")
CCliente.CursorLocation = adUseClient
CCliente.Open SqlCliente, ConexaoGeral, adOpenDynamic, adLockBatchOptimistic

estou passando "A" para a variável "PO_SITITEM" definida na procedure.
é isso. qualquer coisa poste novamente. t+


Tópico encerrado , respostas não são mais permitidas