STORED PROCEDURE EM MYSQL 5.0.22
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.
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.
Pra vc chamar sua Procedure pelo VB, faça assim:
Sem mistérios
Aproveitando, vc tinha perguntado para que server o DELIMITER... Eu não sei, mas é parte da sintaxe!
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!
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 ?
Esta linha seri apara procedures de insert, update ou delete não axa ?
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:
OK? Acho que não tem mistério. Agora se fosse uma Procedure com parametro, é só concatenar:
// 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 ;
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 ;
Agora sim André, mandou bem !!!
Esley, kbow o assunto
Esley, kbow o assunto
Tópico encerrado , respostas não são mais permitidas