Registro no FB com IBQuery
Tenho as seguintes linhas:
Dá erro: ´Canot modify a readonly dataset´
Obrigado.
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
Curtidas 0
Respostas
Abelha
29/01/2009
sobe....
GOSTEI 0
Woinch
29/01/2009
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.
GOSTEI 0
Abelha
29/01/2009
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.
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.
GOSTEI 0
Abelha
29/01/2009
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. :?
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. :?
GOSTEI 0
Woinch
29/01/2009
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;
GOSTEI 0
Abelha
29/01/2009
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.
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.
GOSTEI 0
Woinch
29/01/2009
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...
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...
GOSTEI 0
Abelha
29/01/2009
Obrigado.
GOSTEI 0
Abelha
29/01/2009
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.
Agora dá erro: ´CDS Missing dataprovider or datapackge´.
O arquivo que uso é um ´bancodedados.fdb´ e estou o fbclient.
GOSTEI 0
Woinch
29/01/2009
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...
PS.: O Query já está vinculado a um componente de conexão, correto?
Isso irá resolver...
GOSTEI 0