value never used?? como assim?

Delphi

27/07/2016

Não to entendendo pq ta dando erro ao compilar: Value assigned 'id_envolvido' never used.
não to conseguindo incluir a variavel id_envolvido, que é integer(e o campo no bd´é numero)
Pode me ajudar, Pf?
grato.

procedure Tf_incluirenvolvidos.Button1Click(Sender: TObject);
var id_envolvido:integer;
begin
id_envolvido:=dmdados.querypesquisarenvolvidos.fieldbyname('id_envolvido').AsInteger;

with dmdados.queryInserirEnvolvido do
  begin
      close;
      sql.clear;
      sql.Text:='insert into envolvimento (id_envolvido,codigoIP,envolvimento)' +
                'values (id_envolvido, codigoIP , envolvimento )';
      execsql;
      showmessage('Incluido com sucesso!');

  end;
end;
Ivo Nascimento

Ivo Nascimento

Curtidas 1

Respostas

Marco Antônio

Marco Antônio

27/07/2016

Não to entendendo pq ta dando erro ao compilar: Value assigned ''id_envolvido'' never used.
não to conseguindo incluir a variavel id_envolvido, que é integer(e o campo no bd´é numero)
Pode me ajudar, Pf?
grato.

procedure Tf_incluirenvolvidos.Button1Click(Sender: TObject);
var id_envolvido:integer;
begin
id_envolvido:=dmdados.querypesquisarenvolvidos.fieldbyname(''id_envolvido'').AsInteger;

with dmdados.queryInserirEnvolvido do
  begin
      close;
      sql.clear;
      sql.Text:=''insert into envolvimento (id_envolvido,codigoIP,envolvimento)'' +
                ''values (id_envolvido, codigoIP , envolvimento )'';
      execsql;
      showmessage(''Incluido com sucesso!'');

  end;
end;






procedure Tf_incluirenvolvidos.Button1Click(Sender: TObject);
var id_envolvido:integer;
begin
id_envolvido:=dmdados.querypesquisarenvolvidos.fieldbyname(''id_envolvido'').AsInteger;

with dmdados.queryInserirEnvolvido do
  begin
      close;
      sql.clear;
      sql.Text:=''insert into envolvimento (id_envolvido,codigoIP,envolvimento)'' +
                ''values ('' + id_envolvido + '','' + codigoIP + '','' + envolvimento )'';
      execsql;
      showmessage(''Incluido com sucesso!'');

  end;
end;



nos parametros do ''VALUES'' vc simplesmente fixo string enquanto deveria concatenar as variáveis envolvidas na rotina
procure dar nomes de variáveis diferentes dos nomes das colunas das suas tabelas. Fica mais fácil a diferenciação.
Acredito que da mesma forma que vc tem a variável ''id_envolvido'' recebendo valores de dmdados.querypesquisarenvolvidos
vc tb deverá ter variáveis para: ''codigoIP'' e ''envolvimento''.

Espero que ajude.
Abcs.
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

27/07/2016

Mais uma alternativa, espero que ajude.

var
id_envolvido: integer;
var
codigoIP: string;
var
envolvimento: string;
begin
//Rotina para pegar o proximo ID_Envolvido
dm.querypesquisarenvolvidos.open;
// Abro a tabela com o select abaixo
// Select ID_ENVOLVIDO from ENVOLVIMENTO order by ID_ENVOLVIDO

// Carrego todos os registros
dm.querypesquisarenvolvidos.FetchAll;
// Seto para o ultimo registro
dm.querypesquisarenvolvidos.Last;

// Então o proximo Registro será igual o valor do ultimo registro + 1
id_envolvido := dm.querypesquisarenvolvidos.FieldByName('ID_ENVOLVIDO')
.AsInteger + 1;
// Fecho a Tabela de pesquisa
dm.querypesquisarenvolvidos.close;

// É preenchido as variáveis
codigoIP := '192.168.1.1';
envolvimento := 'Teste'; //

//Preparo o insert
with dm.queryInserirEnvolvido do
begin
close;
sql.clear;
sql.Text :=
'insert into envolvimento (id_envolvido,codigoIP,ENVOLVIMENTO)values (' +
'''' + IntToStr(id_envolvido) + ''',' + '''' + codigoIP + ''',' + '''' +
envolvimento + ''')';

try

ExecSQL;
showmessage('Incluido com sucesso!');
except
showmessage('Falha na inclusão, verifique a estrutura');
end;
end;
end;
GOSTEI 0
Ivo Nascimento

Ivo Nascimento

27/07/2016

P2, gostei do seu "intToStr", foi o detalhe que me tocou. Na verdade eu tinha tentado "intToString". hehehe
Quando a cabeça esquenta a gente nao consegue pensar e enxergar os erros.
Valeu.
Ficou assim:
sql.Text:='insert into envolvimento (id_envolvido,codigoIP,envolvimento)' +
                'values (' + inttostr(id_envolvido) + ',' + inttostr(codigoIP) + ',' + quotedstr(envolvimento) + ')';


Vlw tb Marco Antonio.
Obrigado pelas respostas.
GOSTEI 0
POSTAR