Parametros de procedimento, Duvida

Delphi

06/06/2014

Ola,
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

Alexandre

Curtidas 0

Melhor post

Katrym Bertotti

Katrym Bertotti

06/06/2014

Bom dia,
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));
GOSTEI 1

Mais Respostas

Mauricio Rodrigues

Mauricio Rodrigues

06/06/2014

Como você criou

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
Alexandre

Alexandre

06/06/2014

Agradeço! Resolvido da maneira que aqui foi apresentada, pelos dois colegas.
GOSTEI 0
POSTAR