Acess Violation Delphi e android

30/08/2017

0

Pessoal , Boa tarde.

Estou tentando inserir alguns registro em meu banco de dados atraves do meu combobox no form android
Em um botão , coloquei este comando abaixo :

procedure TForm6.Button1Click(Sender: TObject);
begin

dm.ClientDataSet1motorista_possui_epis.AsString := ComboBox1.Items.Add('').ToString;
dm.ClientDataSet1tacografo_funcionando.AsString := ComboBox2.Items.Add('').ToString;
dm.ClientDataSet1condicoes_para_brisa.AsString := ComboBox3.Items.Add('').ToString;
dm.ClientDataSet1farois_principais.AsString := ComboBox4.Items.Add('').ToString;
dm.ClientDataSet1nivel_oleo.AsString := ComboBox5.Items.Add('').ToString;
dm.ClientDataSet1nivel_agua.AsString := ComboBox6.Items.Add('').ToString;
dm.ClientDataSet1chave_roda_macaco_triangulo.AsString := ComboBox7.Items.Add('').ToString;
dm.ClientDataSet1conjunto_tanque_combustivel.AsString := ComboBox8.Items.Add('').ToString;
dm.ClientDataSet1lanterna_delimitadora.AsString := ComboBox9.Items.Add('').ToString;
dm.ClientDataSet1condicoes_assoalho.AsString := ComboBox10.Items.Add('').ToString;
dm.ClientDataSet1condicao_coluna_travessa.AsString := ComboBox11.Items.Add('').ToString;
dm.ClientDataSet1faixa_refletiva.AsString := ComboBox12.Items.Add('').ToString;
dm.ClientDataSet1condicao_sider.AsString := ComboBox13.Items.Add('').ToString;
dm.ClientDataSet1estepe_boas_condicoes.AsString := ComboBox14.Items.Add('').ToString;
dm.ClientDataSet1luz_freio_vermelhas.AsString := ComboBox15.Items.Add('').ToString;
dm.ClientDataSet1luz_marcha_re.AsString := ComboBox16.Items.Add('').ToString;
dm.ClientDataSet1lanterna_traseira_vermelhas.AsString := ComboBox17.Items.Add('').ToString;
dm.ClientDataSet1sirene_re.AsString := ComboBox18.Items.Add('').ToString;
dm.ClientDataSet1luzes_posicao_tras_diant.AsString := ComboBox19.Items.Add('').ToString;
dm.ClientDataSet1porta_traseira_sider.AsString := ComboBox20.Items.Add('').ToString;
dm.ClientDataSet1setas_traseiras_dianteiras.AsString := ComboBox21.Items.Add('').ToString;
dm.ClientDataSet1pneus_boas_cpndicoes_uso.AsString := ComboBox22.Items.Add('').ToString;
dm.ClientDataSet1placas_estado_geral_lacre.AsString := ComboBox23.Items.Add('').ToString;
dm.ClientDataSet1possui_dois_calco.AsString := ComboBox24.Items.Add('').ToString;
dm.ClientDataSet1condicao_da_catraca.AsString := ComboBox25.Items.Add('').ToString;
dm.ClientDataSet1cardan_limpeza_lubrificacao.AsString := ComboBox26.Items.Add('').ToString;
dm.ClientDataSet1verificar_calibragem_pneus.AsString := ComboBox27.Items.Add('').ToString;

dm.ClientDataSet1.Post;
dm.ClientDataSet1.ApplyUpdates(-1);




end;

Mas , ele está dando erro de Acess Violation, no form create eu já coloquei dm.clientdatset1.close; e dm.clientdataset1.open; mas mesmo assim dá o mesmo erro.
Alguém sabe me dizer o que pode ser ?

Obrigado.
Watson Rocha

Watson Rocha

Responder

Post mais votado

31/08/2017

Geralmente este erro ocorre por tentar acessar um objeto que ainda não foi criado em memória. Veja se todos os objetos estão criados antes de chama-los e se o formulário esta visível.

Jorge Silva

Jorge Silva
Responder

Mais Posts

31/08/2017

Watson Rocha

Please ! rsrs...
Responder

31/08/2017

Watson Rocha

Alguém consegue me dar uma dica ?
Responder

31/08/2017

Gutierry Pereira

Bom dia,
Uma violação de acesso ocorre quando um recurso esta sendo chamado e o mesmo ainda não existe. isso pode esat ocorrendo pq o seu dataModule ainda não esta criado ou algum outro recurso utilizado na rotina.
Faça um debug e verifique a linha que o erro ocorre, e com isso analise se o objeto em questão já foi devidamente criado. Se fosse faz essa rotina no create do formulario principal e o create do datamodule esta na sequencia, então o seu datamodule nesse momento ainda não existe.

espero ter ajudado.

att: gutierry Antonio
Responder

31/08/2017

Rafael Bosco

Manda o código do form create aí brother
Responder

01/09/2017

Watson Rocha

Rafael. Bom dia.

Por favor, segue...

unit UntCadast;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Controls.Presentation, FMX.Edit, FMX.ListBox, FMX.Objects, FMX.TabControl,
uDm, FMX.Layouts, FMX.EditBox, FMX.ComboTrackBar, FMX.ComboEdit;

type
TForm6 = class(TForm)
TabControl1: TTabControl;
TabItem1: TTabItem;
TabItem2: TTabItem;
TabItem3: TTabItem;
ListBox1: TListBox;
Rectangle1: TRectangle;
ListBoxItem1: TListBoxItem;
ListBoxItem2: TListBoxItem;
ListBoxItem3: TListBoxItem;
ListBoxItem4: TListBoxItem;
ListBoxItem5: TListBoxItem;
ListBoxItem6: TListBoxItem;
ListBoxItem7: TListBoxItem;
ListBoxItem8: TListBoxItem;
ListBoxItem9: TListBoxItem;
ListBoxItem10: TListBoxItem;
ListBoxItem11: TListBoxItem;
ListBoxItem12: TListBoxItem;
ListBoxItem13: TListBoxItem;
ListBoxItem14: TListBoxItem;
ListBoxItem15: TListBoxItem;
ListBoxItem16: TListBoxItem;
ListBoxItem17: TListBoxItem;
ListBoxItem18: TListBoxItem;
ListBoxItem19: TListBoxItem;
ListBoxItem20: TListBoxItem;
ListBoxItem21: TListBoxItem;
ListBoxItem22: TListBoxItem;
ListBoxItem23: TListBoxItem;
ListBoxItem24: TListBoxItem;
ListBoxItem25: TListBoxItem;
ListBoxItem26: TListBoxItem;
ListBoxItem27: TListBoxItem;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
ComboBox11: TComboBox;
ComboBox12: TComboBox;
ComboBox13: TComboBox;
ComboBox14: TComboBox;
ComboBox15: TComboBox;
ComboBox16: TComboBox;
ComboBox17: TComboBox;
ComboBox18: TComboBox;
ComboBox19: TComboBox;
ComboBox20: TComboBox;
ComboBox21: TComboBox;
ComboBox22: TComboBox;
ComboBox23: TComboBox;
ComboBox24: TComboBox;
ImageControl1: TImageControl;
ComboBox25: TComboBox;
ComboBox26: TComboBox;
ComboBox27: TComboBox;
ListBoxItem28: TListBoxItem;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form6: TForm6;

implementation

{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}

procedure TForm6.Button1Click(Sender: TObject);
begin

dm.ClientDataSet1motorista_possui_epis.AsString := ComboBox1.Items.Add('').ToString;
dm.ClientDataSet1tacografo_funcionando.AsString := ComboBox2.Items.Add('').ToString;
dm.ClientDataSet1condicoes_para_brisa.AsString := ComboBox3.Items.Add('').ToString;
dm.ClientDataSet1farois_principais.AsString := ComboBox4.Items.Add('').ToString;
dm.ClientDataSet1nivel_oleo.AsString := ComboBox5.Items.Add('').ToString;
dm.ClientDataSet1nivel_agua.AsString := ComboBox6.Items.Add('').ToString;
dm.ClientDataSet1chave_roda_macaco_triangulo.AsString := ComboBox7.Items.Add('').ToString;
dm.ClientDataSet1conjunto_tanque_combustivel.AsString := ComboBox8.Items.Add('').ToString;
dm.ClientDataSet1lanterna_delimitadora.AsString := ComboBox9.Items.Add('').ToString;
dm.ClientDataSet1condicoes_assoalho.AsString := ComboBox10.Items.Add('').ToString;
dm.ClientDataSet1condicao_coluna_travessa.AsString := ComboBox11.Items.Add('').ToString;
dm.ClientDataSet1faixa_refletiva.AsString := ComboBox12.Items.Add('').ToString;
dm.ClientDataSet1condicao_sider.AsString := ComboBox13.Items.Add('').ToString;
dm.ClientDataSet1estepe_boas_condicoes.AsString := ComboBox14.Items.Add('').ToString;
dm.ClientDataSet1luz_freio_vermelhas.AsString := ComboBox15.Items.Add('').ToString;
dm.ClientDataSet1luz_marcha_re.AsString := ComboBox16.Items.Add('').ToString;
dm.ClientDataSet1lanterna_traseira_vermelhas.AsString := ComboBox17.Items.Add('').ToString;
dm.ClientDataSet1sirene_re.AsString := ComboBox18.Items.Add('').ToString;
dm.ClientDataSet1luzes_posicao_tras_diant.AsString := ComboBox19.Items.Add('').ToString;
dm.ClientDataSet1porta_traseira_sider.AsString := ComboBox20.Items.Add('').ToString;
dm.ClientDataSet1setas_traseiras_dianteiras.AsString := ComboBox21.Items.Add('').ToString;
dm.ClientDataSet1pneus_boas_cpndicoes_uso.AsString := ComboBox22.Items.Add('').ToString;
dm.ClientDataSet1placas_estado_geral_lacre.AsString := ComboBox23.Items.Add('').ToString;
dm.ClientDataSet1possui_dois_calco.AsString := ComboBox24.Items.Add('').ToString;
dm.ClientDataSet1condicao_da_catraca.AsString := ComboBox25.Items.Add('').ToString;
dm.ClientDataSet1cardan_limpeza_lubrificacao.AsString := ComboBox26.Items.Add('').ToString;
dm.ClientDataSet1verificar_calibragem_pneus.AsString := ComboBox27.Items.Add('').ToString;

dm.ClientDataSet1.Post;
dm.ClientDataSet1.ApplyUpdates(-1);




end;

end.
Responder

01/09/2017

Watson Rocha

Gutierry, fiz o debug mas nao consegui identificar o erro !
Responder

02/09/2017

Paulo Cotrim

No Projeto, ele está criando primeiramente o data module ou o form?
Coloque o datamodule para ser instanciado antes do form.

Project > Options > Forms > Auto-Create forms.
Responder

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

Aceitar