Fórum Parametros de procedimento, Duvida #481577
06/06/2014
0
bom, eu criei uma procedure, como exemplo esta abaixo
procedure tfrm_principal.inserirdados(nick:string; nome:string; dataentrada:string; idadedojogador:integer);
alem de cria-la, eu a codifiquei, como exemplifico abaixo
datamodule1.Query.Close;
datamodule1.Query.SQL.Clear;
datamodule1.Query.SQL.Add('INSERT INTO Jogadores(Nick,Nome do Jogador,Idade do Jogador, Data de Entrada) VALUES(:nick, :nome, :dataentrada, :idadedojogador)');
datamodule1.Query.Parameters.ParamByName('Nick').Value:=nick;
datamodule1.Query.Parameters.ParamByName('Nome do Jogador').Value:=nome;
datamodule1.Query.Parameters.ParamByName('Idade do Jogador').Value:=idadedojogador;
datamodule1.Query.Parameters.ParamByName('Data de Entrada').Value:=dataentrada;
datamodule1.Query.ExecSQL;Vise que, vou utilizar esse procedimento para enviar dados para meu Banco de Dados, vou colocar essa procedimento em um button, configurando +- dessa maneira
inserirdados(txtnick.text, textnome.text, txtdataentrada.text, txtidadedojogador.text
Mas, neste meu formulario especifico, ele nao possui um edit para transferir o que foi digitado para o parametro nome, logo, como faco para "tirar" esse parametro dentro da procedure para que fosse executado como eu quero, tipo assim
inserirdados(txtnick.text, null, txtdataentrada.text, txtidadedojogador.text
..
Será que entendem como explico? A ideia é, de forma resumida, nao usar um dos parametros dentro do procedimento, e sim apenas alguns deles, e o restante é como se "nao valesse", como se pula-se um parametro porque nao tenho aonde receber dados nele, para posteriormente, no meu caso, passa-los ao banco de dados..
Grato!
Alexandre
Curtir tópico
+ 0Post mais votado
06/06/2014
você pode inicializar o parâmetro dentro do procedimento, ex:
procedure tfrm_principal.inserirdados(nick, dataentrada:string; idadedojogador:integer;nome:string='');
e faz a chamada sem o parâmetro:
inserirdados(txtnick.text, txtdataentrada.text, strtoint(txtidadedojogador.text));
Katrym Bertotti
Gostei + 1
Mais Posts
07/06/2014
Mauricio Rodrigues
procedure tfrm_principal.inserirdados(nick:string; nome:string; dataentrada:string; idadedojogador:integer);
Quatro item em sua procedure você deve passar quatro item para ela.
Como mencionou não tem o campo nome vc pode resolver das seguintes maneiras:
Retirando o campo da declaração da procedure ou passar em branco desta forma
inserirdados(txtnick.text,'', txtdataentrada.text, strtoint(txtidadedojogador.text));
note que tem ('') no campo nome, assim totaliza os quatro parametros.
Gostei + 1
07/06/2014
Alexandre
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)