STORED PROCEDURE EM MYSQL 5.0.22

USUARIO.EXCLUIDOS 19/12/2006 04:49:14
#190766
Tenta como se fosse SQL Server

Método1 (Usar objeto ADODB.RecordSet): é mais fácil e se aplica melhor ao seu caso

str_SQL = "Nome_da_Procedure " & param1

RS.Open str_SQL, CN, adOpenForwardOnly, adLockReadOnly
'faz algo com o Rs ...
Rs.Close
Set Rs=Nothing

Método2 (Usando objeto ADODB.Command): Não explicarei aqui por que se aplica muito mais eficientemente em caso de procedures com muitos parà¢metros e de INSERT, UPDATE e DELETE.

Tenta "martelar" em algo do tipo.
USUARIO.EXCLUIDOS 19/12/2006 12:59:07
#190862
Pra vc chamar sua Procedure pelo VB, faça assim:

  

cnBanco.Execute "Call Filtro('" & txtNome.Text & "');"



Sem mistérios

Aproveitando, vc tinha perguntado para que server o DELIMITER... Eu não sei, mas é parte da sintaxe!
USUARIO.EXCLUIDOS 19/12/2006 14:38:22
#190912
andre, e onde está o rs que ele vai utilizar no seu código ?
Esta linha seri apara procedures de insert, update ou delete não axa ?
USUARIO.EXCLUIDOS 19/12/2006 15:17:27
#190947
Emerson, concordo com vc. Passei uma procedure e exemplifiquei com outra!

Para executar uma Procedure de SELECT, vc vai usar um rs, para os comandos INSERT, UPDATE, DELETE vc vai direto na conexão. Para chamar um SELECT, por exemplo:

 
// Parte do MySQL

DELIMITER $$

DROP PROCEDURE IF EXISTS SP_CLI_CON0001 $$
CREATE PROCEDURE SP_CLI_CON0001()
BEGIN
SELECT * FROM TabCliente ORDER BY CliNome;

END $$

DELIMITER ;



 

'Agora no Visual Basic

'Abre o Recordset de Clientes
strSQL = "Call SP_CLI_CON0001();"

rsSistema.Open strSQL, cnSistema, adOpenDynamic

Text1.Text = rsSistema.Fields("Codigo")
Text2.Text = rsSistema.Fields("Nome")




OK? Acho que não tem mistério. Agora se fosse uma Procedure com parametro, é só concatenar:

  

'Abre o Recordset de Clientes
strSQL = "Call SP_CLI_CON0002(" & strID_Cliente & ");"

rsSistema.Open strSQL, cnSistema, adOpenDynamic

Text1.Text = rsSistema.Fields("Nome")
Text2.Text = rsSistema.Fields("Endereco")




// Procedure para procurar o Cliente pelo código

DELIMITER $$

DROP PROCEDURE IF EXISTS SP_CLI_CON0002 $$
CREATE PROCEDURE SP_CLI_CON0002(pID_Cliente integer)
BEGIN
SELECT * FROM TabCliente WHERE CodCliente = pID_Cliente;

END $$

DELIMITER ;


USUARIO.EXCLUIDOS 19/12/2006 15:43:40
#190963
Agora sim André, mandou bem !!!
Esley, kbow o assunto
Página 2 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas