Fórum Registro no FB com IBQuery #368023

29/01/2009

0

Tenho as seguintes linhas:

 
 with dados.IBQuery1 do   //Dados é um data module
 begin
    insert;
    FieldByname(´Registro´).Value:=VariavelNumerica;
    FieldByname(´Nome´).value:=Edit1.Text;
    FieldByname(´Enderco´).value:=Edit2.Text;
    Post;
 end;


Dá erro: ´Canot modify a readonly dataset´

Obrigado.


Abelha

Abelha

Responder

Posts

29/01/2009

Abelha

sobe....


Responder

Gostei + 0

30/01/2009

Woinch

Experimente vincular essa Query a um DataSetProvider e vincular um ClientDataSet e este DataSetProvider. Verifique se executando os comandos nesse ClientDataSet não resolve seu problema.


Responder

Gostei + 0

30/01/2009

Abelha

Obriogado pela dica.

funcionou só usando o clientdataset, setando ele para o IBQuery: [b:aae5f7adb7]Assign Data From[/b:aae5f7adb7] = IBQuery1.

Vou ter que colocar um ClientDataSet para cada tabela? São 10 tabelas.

Por enquanto está rodando em máquina local, depois vou passar para servidor, aê acho que vou ter que usar o DataSetProvider?

Valeu.


Responder

Gostei + 0

30/01/2009

Abelha

Ops!
Falei que rodou, mas os dados não foram enviados para a tabela no banco de dados. Só eram visulizados na aplicação. Quando abri o projeto novamente, os dados já haviam sumido. :?


Responder

Gostei + 0

30/01/2009

Woinch

Utilize os seguintes eventos para enviar os dados para o banco:

procedure TDM1.cdsPadraoAfterCancel(DataSet: TDataSet);
begin
  if (DataSet as TClientDataSet).ChangeCount > 0 then
    (DataSet as TClientDataSet).CancelUpdates;
end;

procedure TDM1.cdsPadraoAfterDelete(DataSet: TDataSet);
begin
  if (DataSet as TClientDataSet).ApplyUpdates(-1) > 0 then
    (DataSet as TClientDataSet).CancelUpdates;
end;

procedure TDM1.cdsPadraoAfterPost(DataSet: TDataSet);
begin
  if (DataSet as TClientDataSet).ApplyUpdates(-1) > 0 then
    DataSet.Edit;
end;



Responder

Gostei + 0

30/01/2009

Abelha

Desculpe a ignorância, mas esses eventos estão associados a qual objeto?

Outra dúvida: Por enquanto está em localhost, mas depois irei usar o mesmo sistema in client/server. vou ter problemas na migração?

Obrigado pela paciência.


Responder

Gostei + 0

02/02/2009

Woinch

Desculpe utilizo uma nomenclatura padrão acho que nem todos conhecem... hehehe

cds = TClientDataSet
Vincule esses eventos a todos os ClientDataSet´s.

Referente a outra pergunta. Se você manter o mesmo ambiente de banco de dados não vai haver problema algum na migração.


Abraços...


Responder

Gostei + 0

02/02/2009

Abelha

Obrigado.


Responder

Gostei + 0

03/02/2009

Abelha

Woinch, obrigado pelas dicas, mas ainda tenho problemas:

Agora dá erro: ´CDS Missing dataprovider or datapackge´.

O arquivo que uso é um ´bancodedados.fdb´ e estou o fbclient.


Responder

Gostei + 0

03/02/2009

Woinch

Primeiro vincule a propriedade DataSet do DataSetProvider ao Query. Depois vincule a propriedade ProviderName do ClientDataSet ao DataSetProvider.

PS.: O Query já está vinculado a um componente de conexão, correto?
Isso irá resolver...


Responder

Gostei + 0

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

Aceitar