Fórum Não grava os dados no Banco Access #552894

01/05/2016

0

Tenho uma aplicação simples no delphi conectado ao access pelo ADO e os métodos de inserção, exclusao e consulta funcionam corretamente. O de alteração não da erro mas tambem nao grava na tabela de dados.

O procedimento criado abaixo
procedure alterarproduto(codigobarraPr: String; GrupoPr: Integer; CodigoPr: Integer; DescricaoPr: String; CustoPr: Currency; VendaPr: Currency; StatusPr: String; PrateleiraPr: STring);

É chamado no DelpHi:
alterarproduto(txtCodigoBarra.Text, StrToInt(txtGrupo.Text), StrToInt(txtCodigo.Text), txtDescricao.Text, StrToCurr(txtCusto.Text), StrToCurr(txtVenda.Text), statusproduto, CbPrateleira.Text);

Procedimento de Atualização

WITH Dados.TProdutos DO
begin

Close;

SQL.Clear;

SQL.Add('UPDATE Produtos SET CodigoBarra = :codigobarraPR, Grupo = :GrupoPR, Codigo = :CodigoPr, Descricao = :DescricaoPr, Custo = :CustoPr, Venda = :VendaPr, Status = :StatusPr, Prateleira = :PrateleiraPr');
SQL.Add('WHERE Grupo = :GrupoPR AND Codigo = :CodigoPr');

Parameters.ParamByName('codigobarraPr').Value := codigobarraPr;
Parameters.ParamByName('GrupoPR').Value := GrupoPR;
Parameters.ParamByName('CodigoPr').Value := CodigoPr;
Parameters.ParamByName('DescricaoPr').Value := DescricaoPr;
Parameters.ParamByName('CustoPr').Value := CustoPr;
Parameters.ParamByName('VendaPr').Value := VendaPr;
Parameters.ParamByName('StatusPr').Value := StatusPr;
Parameters.ParamByName('PrateleiraPr').Value := PrateleiraPr;

ExecSQL;

Não da erro, quando faço passo a passo, e passa a segunda linha de parametros, o parametro GRUPOPR perde o valor e recebe = Variable 'GrupoPr' inaccessible here due to optimization

Algo acontece e nao é executado.

Alguem daria alguma sugestão para acertar isso ??
Alan Pitta

Alan Pitta

Responder

Posts

02/05/2016

Raylan Zibel

Em vez de .value nos parâmetros, tenta usar .asString .asInteger e .asFloat pra ver se você consegue visualizar os valores enquanto debuga, pra validar se estão certos.
Costumo separar as cláusulas where entre parenteses, pra desencargo de consciência rs...
Responder

Gostei + 0

02/05/2016

Alan Pitta

Como eu passo por parametros nao tem como eu definir o tipo, uma vez que ele ja esta definido no escopo, se ele é Integer, String...

Enquanto a debug eu coloco o visualizador do Delphi pra trabalhar

Todos os valores são trazidos conforme pode ver na imagem abaixo, menos o valor passado do Grupo.

http://prntscr.com/azadhr
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar