STORE PROCEDURES
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...
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...
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
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
CARA.. NUM TEM JEITO.. PERSISTE O ERRO...
Q BANCO VC USA?
SE ALGUEM SOUBER COMO FAZE FUNCIONA NO FIREBIRD... PLEASE...
Q BANCO VC USA?
SE ALGUEM SOUBER COMO FAZE FUNCIONA NO FIREBIRD... PLEASE...
please... ninguem sabe como faze funciona a store no fire?
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+
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