Postada em 21/05/2012 19:38 hs
É colega vou explicar de forma superficial, pois existem 'n' metodos
Comparação:
A SP(stored procedure) é como se fosse uma função do Visual Basic, veja um exemplo de função.
Public Function MostrarNome(nome As String) msgbox nome End Sub
chamandoa função acima
Call MotrarNome("Marcelo")
e o resultado será meu nome aparecendo na tela,a STORED PROCEDURE funciona basicamente da mesma maneira
Podemos usar 3 tipos de parametros existentes em uma SP no mysql
IN – Para entrada de dados. OUT – Para saida de dados. INOUT – Para entrada e saida de dados.
Criaremos umas procedures com as funcoes de INSERIR e MOSTRAR dados de uma tabela com entrada de parametros.
——————————- Criando Stored procedure para inserir dados em nossa tabela tbl_cliente Isso deve ser feito diretamente no prompt do MYSQL
create procedure add_cliente ( IN p_nome varchar(50), IN p_cpf varchar(20) )
Begin
insert into tbl_cliente ( cli_nome, cli_cpf )values( p_nome, p_cpf );
end;
acima criamos uma procedure de nome add_cliente, que receberá os seguintes parametros p_nome, e p_cpf
bom criada a procedure, basta chama-la no visual basic no caso acima seria assim
cnn.Execute("CALL add_cliente('" & txtNome.Text &"','" & txtCPF.Text & ")
com o código acima o nome e o cpf digitados em txtnome e txtCPF seriam inseridos na tbl_clientes.
ou seja o código acima seria a mesma coisa que:
INSERT INTO tbl_clientes(p_nome, p_cpf) values ('marcelo','66666')
porém com uma vantagem a codigo fica a cargo do mysql o que aumenta o desempenho do código, imagine uma tabela com 60 campos por exemplo.
para consulta seria quase a mesma coisa veja
create procedure mostra_cliente()
Begin
select * from tbl_cliente;
end;
bom para chamar
cnn.Execute("CALL mostra_clientes()")
e pronto a query seria executa exibindo todos os clientes com um desempenho melhor que:
cnn.Execute("select * from tbl_clientes")
entendeu mais ou menos como fucniona, você terá de fazer uma pesquisa mais a fundo e verá que existem mil manerias de se usar stored procedures, boa sorte
espero que eu tenha te dado o caminho das águas.
|