Menssagem de Erro ao Insertar
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
Curtidas 0
Respostas
Deivison Melo
30/09/2013
Qual a engine de acesso a dados que está utilizando?
GOSTEI 0
Felipe Barlera
30/09/2013
fiz conexão componetes do DbExpress :
SQLTable,DataSource,DataSetProvider,ClientDataSet dentro da form coloque um SqlTable Para fica de Auxiliar para inserta codigo automatico .
SQLTable,DataSource,DataSetProvider,ClientDataSet dentro da form coloque um SqlTable Para fica de Auxiliar para inserta codigo automatico .
GOSTEI 0
Deivison Melo
30/09/2013
Insert tem que ser feito através do clientDataset.
GOSTEI 0
Deivison Melo
30/09/2013
Exemplo abaixo:
Para dar o insert depois, basta chamar o método criado da seguinte forma:
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!!
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!!
GOSTEI 0
Deivison Melo
30/09/2013
Os componentes utilizados para o insert acima foram:
- SQLConnection;
- SQLDataSet;
- SQLDataSet;
- ClientDataSet;
Abração e bons códigos!!
- SQLConnection;
- SQLDataSet;
- SQLDataSet;
- ClientDataSet;
Abração e bons códigos!!
GOSTEI 0
Felipe Barlera
30/09/2013
P
reciso troc
a sqltable pelo cliente data set?
reciso troc
a sqltable pelo cliente data set?
GOSTEI 0
Deivison Melo
30/09/2013
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!!
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!!
GOSTEI 0
Felipe Barlera
30/09/2013
Consegui tira erro mais quando inserto nao da erro mais so que nao fica editavel
GOSTEI 0
Guilherme Messias
30/09/2013
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...
GOSTEI 0
Felipe Barlera
30/09/2013
Obrigado a todos consegui fazer funciona aqui obrigado a todos
GOSTEI 0
Deivison Melo
30/09/2013
Encerrando o tópico!
GOSTEI 0