Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

silvano_cuiaba

.. Banco de Dados ..

Recommended Posts

Galera é o seguinte:

 

Estou tendo um probleminha aqui !

 

Estou usando Banco PARADOX com DELHI 5.0

 

Um DataModule com uma QUERY e um DATASOURCE

 

Quando eu peço para EDITAR ou INSERIR ou EXCLUIR algum registro dá a seguinte mensagem.

 

"tbPecuarista: Cannot modify a read-only dataset."

 

tbPecuarista é a minha Tabela (Query)

 

 

Será que alguem poderia me dar uma dica de como resolver essa problema ?

 

Desde já .. valeu pela atenção !

Compartilhar este post


Link para o post
Compartilhar em outros sites

você mudou a propriedade "ResquestLive" dessa Query pra true? Senão ela vai ela só vai ser usada pra consulta.Se já mudou, posta o código que tá gerando o erro que fica mais fácil da galera te ajudar... (eu tava montando um programinha ontem e de vez em quando dava o mesmo erro, eu sei como isso é chato, mas pode ser erro de lógica tb, no meu caso a maioria era...) :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já mudei a propriedade REQUESTLIVE = TRUE e não resolveu !

 

O Erro acontece quando eu vou ADICIONAR um novo, EDITAR um registro ou até mesmo quando eu vou EXCLUIR ..

 

Na minha QryPecuarista a select está assim:

 

"SELECT * FROM pecuarista.DB ORDER BY matricula"

 

No botão Editar do Cadastro de Pecuarista está assim o Código:

 

procedure TfrmCadPecuarista.spEditarClick(Sender: TObject);

begin

Modulo.QryPecuarista.Edit;

 

spSalvar.Enabled := True;

spEditar.Enabled := False;

spAvancar.Enabled := False;

spRetornar.Enabled := False;

spNovo.Enabled := False;

 

dbNome.Enabled := True;

dbMunicipio.Enabled := True;

dbUF.Enabled := True;

dbCPF.Enabled := True;

dbFrigorifico.Enabled := True;

 

dbNome.SetFocus;

end;

 

Espero que pude esclarecer melho ..!

 

Um abraço e desde já obrigado pela atenção !

Compartilhar este post


Link para o post
Compartilhar em outros sites

putz cara, interessante... aparentemente sem motivos pra erro, a parte dos "Enabled" não vai ser pq num tem nada a ver com o banco, podia até ser a parte do "dbNome.SetFocus", mas isso ia dar erro se você ñ desse o ".Edit"

 

Talvez isso ñ tenha nada a ve, mas tenta usar um TDataBase no modulo de dados, conecta ele no banco e a Query nele, aí ñ precisa usar aquele .DB no SQL.

Vai ficá:

SELECT * FROM pecuarista ORDER BY matricula

Não sou o melhor pra tá resolvendo o problema, mas faço o que sei... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... na verdade não precisa de TDataBase, somente o ALIAS configurado corretamente, e então na propriedade DataBase da Query, você selecionar o Alias que criou pra esse banco.

 

Daí no sql não precisa colocar extensão de tabela, somente coloque o nome da tabela como o PiRaDu postou

 

Ahhh e já ia me esquecendo, em Querys, esqueça os comandos "Edit", "Insert" e outros usados nas Tables.

 

na query você só vai usar as propriedades, Query.ExecSQL (para inserir, atualizar ou deletar) e Query.open (Para realizar a consulta, Select)

 

ou seja,

//essa abaixo para insert, update e delete

Query1.close;

query1.sql.text:='Insert into tabela(campo1,campo2,campos) values ('valor1','valor2','valor3');

query1.execsql;

//essa só para selects

query1.close;

query1.sql.text:='SELECT * FROM pecuarista ORDER BY matricula';

query1.open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

nas coisas que eu faço eu uso insert, edit e delete nas querys e funcionam... eu faço assimDataModule.Query1.Insert;DataModule.Query1.Edit;DataModule.Query1.Post;DataModule.Query1.Delete;Eu num sei muita coisa, mas se isso é usar os comandos na query, eu uso e nunca tive problemas

Compartilhar este post


Link para o post
Compartilhar em outros sites

nas coisas que eu faço eu uso insert, edit e delete nas querys e funcionam... eu faço assimDataModule.Query1.Insert;DataModule.Query1.Edit;DataModule.Query1.Post;DataModule.Query1.Delete;Eu num sei muita coisa, mas se isso é usar os comandos na query, eu uso e nunca tive problemas

Mas aí se perde o propósito da Query (que é executar instruções em SQL), do jeito que você citou, está fazendo dela uma Table, E pra funcionar os QUery.insert , query.edit, query.post, você tem q usar componentes DB, DbEdits, DbCombos, memos, etc.E essa não é a função da query, q é uma ferramenta extremamente flexível - ao contrário das tables.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.