Fórum Menssagem de Erro ao Insertar #457055

30/09/2013

0

estou com problema ao inserta apareçe essa mensagem de erro tbl_clientes cannot modify a read-only dataset o que devo fazer?
Felipe Barlera

Felipe Barlera

Responder

Posts

30/09/2013

Deivison Melo

Qual a engine de acesso a dados que está utilizando?

Responder

Gostei + 0

30/09/2013

Felipe Barlera

fiz conexão componetes do DbExpress :
SQLTable,DataSource,DataSetProvider,ClientDataSet dentro da form coloque um SqlTable Para fica de Auxiliar para inserta codigo automatico .
Responder

Gostei + 0

30/09/2013

Deivison Melo

Insert tem que ser feito através do clientDataset.
Responder

Gostei + 0

30/09/2013

Deivison Melo

Exemplo abaixo:

procedure TDM.CadastroEmpresa(RazaoSocial, Logradouro, Bairro,
  Cidade, Fone, Fax, Documento: String);
var
  strSQL: String;
begin
  strSQL:='';
  strSQL:='insert into empresas (razao_social_empresa, logradouro_empresa, bairro_empresa, cidade_empresa, fone_empresa, fax_empresa, documento_empresa) '+
          'values (:razao_social_empresa, :logradouro_empresa, :bairro_empresa, :cidade_empresa, :fone_empresa, :fax_empresa, :documento_empresa)';

  cdsEmpresas.Close;
  cdsEmpresas.CommandText:=strSQL;
  cdsEmpresas.CreateDataSet;
  cdsEmpresas.Insert;
  cdsEmpresas.Params.ParamByName('razao_social_empresa').AsString:=RazaoSocial;
  cdsEmpresas.Params.ParamByName('logradouro_empresa').AsString:=Logradouro;
  cdsEmpresas.Params.ParamByName('bairro_empresa').AsString:=Bairro;
  cdsEmpresas.Params.ParamByName('cidade_empresa').AsString:=Cidade;
  cdsEmpresas.Params.ParamByName('fone_empresa').AsString:=Fone;
  cdsEmpresas.Params.ParamByName('fax_empresa').AsString:=fax;
  cdsEmpresas.Params.ParamByName('documento_empresa').AsString:=Documento;
  cdsEmpresas.Execute;
  cdsEmpresas.ApplyUpdates(0);
  cdsEmpresas.Close;
end;



Para dar o insert depois, basta chamar o método criado da seguinte forma:
begin
    DM.CadastroEmpresa(edtRazaoSocial.Text, edtLogradouro.Text, edtCidade.Text, edtCidade.Text, EdtFone.Text, edtFax.Text, edtCNPJ.Text);end;
end;


Obs. Para conseguir usar a instrução sql direto no clientdataset, deverá habilitar a property: poAllowCommandText para: True do DataSetProvider

Abração e bons códigos!!

Responder

Gostei + 0

30/09/2013

Deivison Melo

Os componentes utilizados para o insert acima foram:

- SQLConnection;
- SQLDataSet;
- SQLDataSet;
- ClientDataSet;

Abração e bons códigos!!
Responder

Gostei + 0

30/09/2013

Felipe Barlera

P

reciso troc
a sqltable pelo cliente data set?
Responder

Gostei + 0

30/09/2013

Deivison Melo

Retificando:

Os componentes utilizados para o insert acima foram:

- SQLConnection;
- SQLDataSet; // esse seria o equivalente ao que vc está usando, recomendo que utilize o SQLDataSet mesmo!
- DataSetProvider
- ClientDataSet.

Depois que fizer as ligações proceda com os devidos testes!!!



Abração e bons códigos!!
Responder

Gostei + 0

01/10/2013

Felipe Barlera

Consegui tira erro mais quando inserto nao da erro mais so que nao fica editavel
Responder

Gostei + 0

01/10/2013

Guilherme Messias

Se persistiu o erro "tbl_clientes: cannot modify a read-only dataset" procure o componente e que está dando o erro, vá nas propriedades (Object Inspector) dele e mude a propriedade RequestLive de False para True...
Responder

Gostei + 0

01/10/2013

Felipe Barlera

Obrigado a todos consegui fazer funciona aqui obrigado a todos
Responder

Gostei + 0

01/10/2013

Deivison Melo

Encerrando o tópico!
Responder

Gostei + 0

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

Aceitar