Problema com dataset e datas e inclusão com query
Bom dia, estou precisando da ajuda de voces.
Sempre usei o componente query para consultas, para cadastro sempre usei o componente Table, mas agora nesse sistema de caixa a coisa complicou.
Mas se eu faço inserção:
da a seguinte mensagem de erro.
´qy_lancamento: Cannot modify a read-only dataset´.
Preciso fazer seleção com datas, como faço inclusao, alteração, exclusão com querys?
Sempre usei o componente query para consultas, para cadastro sempre usei o componente Table, mas agora nesse sistema de caixa a coisa complicou.
Mas se eu faço inserção:
qy_lancamento.Append;
da a seguinte mensagem de erro.
´qy_lancamento: Cannot modify a read-only dataset´.
Preciso fazer seleção com datas, como faço inclusao, alteração, exclusão com querys?
Crawler
Curtidas 0
Respostas
Lightshine
02/07/2009
Crawler,
Pelo erro não acredito que a falha tenha haver com as datas, mas sim pela forma que você configurou os componentes de acesso aos dados.
Quais componentes você está utilizando?
Com essa informação fica mais fácil ajudá-lo.
Lightshine.
Pelo erro não acredito que a falha tenha haver com as datas, mas sim pela forma que você configurou os componentes de acesso aos dados.
Quais componentes você está utilizando?
Com essa informação fica mais fácil ajudá-lo.
Lightshine.
GOSTEI 0
Crawler
02/07/2009
Entao Lightshine, estou utilizando o componente TIBQuery da paleta interbase como dataset.
Fiquei sabendo que o uso da query é apenas para consulta e para utiliza-la para outro fim seria necessario colocar um componente TIBUpdateSQL, entao eu fiz isso.
Mas não sei como aplicar isso no formulario, eu tentei usar no botao salvar:
qy_lancamento.ApplyUpdates e travou o programa.
Fiquei sabendo que o uso da query é apenas para consulta e para utiliza-la para outro fim seria necessario colocar um componente TIBUpdateSQL, entao eu fiz isso.
Mas não sei como aplicar isso no formulario, eu tentei usar no botao salvar:
qy_lancamento.ApplyUpdates e travou o programa.
GOSTEI 0
Lightshine
02/07/2009
Crawler,
Como você utiliza a paleta Interbase eu lhe aconselho a usar o componente TIBDataSet. Este componente é uma ´junção´ dos componentes TIBUpdateSQL e TIBQuery.
Com ele você vai fazer o seguinte:
Coloca o TIBDataset no formulario (ou data module) e altera as seguintes propriedades:
-> DataBaseName: Seta para o componente TIBDataBase
-> SelectSQL: Clica na reticencias e insere o código SQL (para consulta), exemplo: Select * from SuaTabela
A parte de consultas está pronta, agora vem o grande diferencial desse componentes sobre o TIBQuery.
Clique com o botão direito sobre o TIBDataset e clique em Dataset Editor.
Estará definido na opção TableName a tabela referente a esse dataset conforme você codificou na propriedade selectSQL.
Em Key Fields deixe selecionado apenas o campo que é chave primária na sua tabela.
Em Update Fields todos os campos devem ficar selecionados.
Clique agora no botão ´Generate SQL´. Neste momento será codificado automaticamente os codigos Insert Into, Update, Edit e Delete no seu dataset.
Clique em OK.
Agora para incluir, salvar, deletar, cancelar uma alteração ou editar um registro basta usar os comandos:
Dataset.append ou Dataset.insert;
Dataset.edit;
Dataset.post;
Dataset.delete;
Dataset.cancel;
Espero ter ajudado.
Lightshine
Como você utiliza a paleta Interbase eu lhe aconselho a usar o componente TIBDataSet. Este componente é uma ´junção´ dos componentes TIBUpdateSQL e TIBQuery.
Com ele você vai fazer o seguinte:
Coloca o TIBDataset no formulario (ou data module) e altera as seguintes propriedades:
-> DataBaseName: Seta para o componente TIBDataBase
-> SelectSQL: Clica na reticencias e insere o código SQL (para consulta), exemplo: Select * from SuaTabela
A parte de consultas está pronta, agora vem o grande diferencial desse componentes sobre o TIBQuery.
Clique com o botão direito sobre o TIBDataset e clique em Dataset Editor.
Estará definido na opção TableName a tabela referente a esse dataset conforme você codificou na propriedade selectSQL.
Em Key Fields deixe selecionado apenas o campo que é chave primária na sua tabela.
Em Update Fields todos os campos devem ficar selecionados.
Clique agora no botão ´Generate SQL´. Neste momento será codificado automaticamente os codigos Insert Into, Update, Edit e Delete no seu dataset.
Clique em OK.
Agora para incluir, salvar, deletar, cancelar uma alteração ou editar um registro basta usar os comandos:
Dataset.append ou Dataset.insert;
Dataset.edit;
Dataset.post;
Dataset.delete;
Dataset.cancel;
Espero ter ajudado.
Lightshine
GOSTEI 0
Lightshine
02/07/2009
Há, esqueci de mencionar.
Ao trabalhar com os componentes Interbase você deve utilizar sempre um componente TIBTransaction que será responsável por controlar as transações no seu banco de dados.
Assim, todas as vezes que salvar uma alteração na sua tabela você devera commitar a transação
TIBTransaction.commit ou TIBTranscation.CommitRetaining
e após cancelar uma possivel alteração você deve fazê-la tambem na transação
TIBTRansaction.Rollback ou TIBTransaction.RollbackRetaining
Algumas considerações:
commit e Rollback salvam ou cancelam a alteração no banco, encerra a transação e não atualiza os dados na estação.
CommitRetaining e RollbackRetaining salvam ou cancelam a alteração no banco, atualiza os dados da estação e encerra a transação.
Lembrando que utilizar CommitRetaining e RollbackRetaining pode acarretar em perda de performance no seu sistema se as tabelas tiverem muitos registros.
Lightshine.
Ao trabalhar com os componentes Interbase você deve utilizar sempre um componente TIBTransaction que será responsável por controlar as transações no seu banco de dados.
Assim, todas as vezes que salvar uma alteração na sua tabela você devera commitar a transação
TIBTransaction.commit ou TIBTranscation.CommitRetaining
e após cancelar uma possivel alteração você deve fazê-la tambem na transação
TIBTRansaction.Rollback ou TIBTransaction.RollbackRetaining
Algumas considerações:
commit e Rollback salvam ou cancelam a alteração no banco, encerra a transação e não atualiza os dados na estação.
CommitRetaining e RollbackRetaining salvam ou cancelam a alteração no banco, atualiza os dados da estação e encerra a transação.
Lembrando que utilizar CommitRetaining e RollbackRetaining pode acarretar em perda de performance no seu sistema se as tabelas tiverem muitos registros.
Lightshine.
GOSTEI 0
Crawler
02/07/2009
Dica fantastica voce me passou Lightshine. Ficou muito bom, valeu..
GOSTEI 0