Erro:cannot modify a read-only dataset

15/03/2013

0

Bom dia Pessoa!

Seguinte, estou entrando no Delphi agora e estou tendo algumas dificuldades.
Primeiramente fiz a conexão com o banco corretamente e criei um modulo com uma Grid que atraves dela eu faço (Faria)
alterações na Tabela.
Revisei todas as conexoes e os componentes estao correto,inclusive a opção "read-only" esta como False.
Mas mesmo assim ocorre o erro.

"cannot modify a read-only dataset"

Meu banco é feito em MySQL.

Alguem pode me ajudar?
Christiano Treib

Christiano Treib

Responder

Posts

15/03/2013

Francisco Macário

Olá.

Essa mensagem está um tanto "genérica".

passe um trecho do codigo onde é levantado o erro.

At.
Responder

15/03/2013

Christiano Treib

Entao, acredido ser isso:

No meu DataModule eu uso:

SQLTable; DataSetProvider; ClientDataSet; DataSource


O erro ocorre logo apos que eu clico no Botao que tem o sequinte codigo:

T_Unidades.SQLTable1.append;

{T_Unidades é o meu data Module}

È isso, mas sequinte, no momento estou no trabalho e nao estou com meu projeto aqui.
Mas logo apos eu vou revisa-lo e informo todo o procedimento.

Mas se tiver ja alguma informação como o que eu passei.

Valeu!
Responder

15/03/2013

Francisco Macário

Como você faz uso do Clientdataset, o correto é efetuar o Append ou Insert no Clientdataset e não diretamente no seu Table.



Responder

15/03/2013

Christiano Treib

Mas como eu faço isso? rsrsrs
Responder

15/03/2013

Christiano Treib

Vamos ver se eu entendi:

O codigo devera ser esse entao

T_Unidades.ClientDataSet1.append;

Seria isso?
Responder

15/03/2013

Francisco Macário

Vamos ver se eu entendi:

O codigo devera ser esse entao

T_Unidades.ClientDataSet1.append;

Seria isso?


Sim.

Mas para isso o Clientdataset já deve estar aberto.
Responder

15/03/2013

Christiano Treib

Certo.

Vou verificar em casa.
Amanha te digo como ficou.

Valeu mesmo eim...
Responder

16/03/2013

Christiano Treib

Bom dia.

Deu certo o que vc me passou.
Era isso mesmo.
Estava informando o procedimento errado.


Valeu!!
Responder

16/03/2013

Christiano Treib

Agora estou tendo outro problema:

O que estou fazendo:

A mesma DBGrid que esta conectada a Tabela Unidades ( Cadastro de Unidades de Medida), que contem dois campos. Codigo e Descrição.
O Campo codigo é auto-incremento, porem quando eu insiro uma nova descrição e seto para baixo ou para cima para confirmar o cadastro o campo codigo nao esta se auto-incrementando. Ou seja a numeração automatica nao esta ocorrendo.
Existe mais algum parametro que deve ter para isso ocorrer ou só o fato da tabela ser auto-incremento ja esta certo?


Segue o codigo:
Botao inserir:

F_Dados.ClientDataSet1.append;
DBGrid1.SelectedIndex := 1;

Responder

16/03/2013

Christiano Treib

Agora estou tendo outro problema:

O que estou fazendo:

A mesma DBGrid que esta conectada a Tabela Unidades ( Cadastro de Unidades de Medida), que contem dois campos. Codigo e Descrição.
O Campo codigo é auto-incremento, porem quando eu insiro uma nova descrição e seto para baixo ou para cima para confirmar o cadastro o campo codigo nao esta se auto-incrementando. Ou seja a numeração automatica nao esta ocorrendo.
Existe mais algum parametro que deve ter para isso ocorrer ou só o fato da tabela ser auto-incremento ja esta certo?


Segue o codigo:
Botao inserir:

F_Dados.ClientDataSet1.append;
DBGrid1.SelectedIndex := 1;
Responder

16/03/2013

Perivaldo Martins

Agora estou tendo outro problema:

O que estou fazendo:

A mesma DBGrid que esta conectada a Tabela Unidades ( Cadastro de Unidades de Medida), que contem dois campos. Codigo e Descrição.
O Campo codigo é auto-incremento, porem quando eu insiro uma nova descrição e seto para baixo ou para cima para confirmar o cadastro o campo codigo nao esta se auto-incrementando. Ou seja a numeração automatica nao esta ocorrendo.
Existe mais algum parametro que deve ter para isso ocorrer ou só o fato da tabela ser auto-incremento ja esta certo?


Segue o codigo:
Botao inserir:

F_Dados.ClientDataSet1.append;
DBGrid1.SelectedIndex := 1;


O autoincremento está escrito em seu banco de dados ou é no ClientDataSet? Se for no seu banco vc só verá o valor após salvar os dados ou se conseguir recuperar de uma tabela do sistma dentro do BD.


Boa sorte e bons códigos!
Responder

18/03/2013

Christiano Treib

Entao.
O problema é que esta no meu banco de Dados.
Só que quando eu salvo me diz a mensagem que o valor é obrigatorio, ou seja,o valor do campo Codigo tem que se auto-numerar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar