Error Banco de Dados Urgentíssimo

Delphi

26/06/2003

Caros Amigos

Se puderem me ajudar, estou desesperado, por que preciso disto urgente..
Eu trabalho com uma query, dou um select em uma determinada tabela, e quando vou inserir eu faço da seguinte maneira

Query.Insert no evento Click do botão Novo


mas quando faço isso ele retorna o seguinte erro

Query: Cannot modify a read-only dataset

Não entendo o pq?

Sendo que o Request Live está TRUE

Se puderem me ajudar

Agradeço antecipadamente.

Cabelo.


Cabelo

Cabelo

Curtidas 0

Respostas

Carnette

Carnette

26/06/2003

Voce poderia colocar a frase SQL que tem dentro desta Query ??


GOSTEI 0
Midas

Midas

26/06/2003

no final vc dá um open ?
se é isso não esta correto pois quando se pede para inserir se diz respeito a outra classe ai vc deve em vez de open deve execsql
assim dever
close;
informações ...
execsql;


GOSTEI 0
Cabelo

Cabelo

26/06/2003

Sim

faço

Query.close;
Query.SQL.add(´select´);
Query.ExecSql;

A query retorna os registros selecionados do banco

Mas quando eu dou um insert ele dá erro

Eu só não entendo o pq. pois faço isso no meu projeto inteiro, e só neste form estou tendo problemas
obrigado pela colaboração, mas se puder me ajudar eu agradeço

Cabelo


GOSTEI 0
Midas

Midas

26/06/2003

mas qual sua intenção se for dar um select vc tem que usar o open mesmo agora se for um update já seria o execsql


GOSTEI 0
Cabelo

Cabelo

26/06/2003

Não me expliquei direito, eu utilizo da seguinte maneira

Quando eu vou consultar somente faço a seguinte instrução
Query.Close;
Query.SQL.Add(´select .......´);
Query.Open;

para inserir, alterar ou Excluir

Utilizo a instrução

Query.SQL.add(´insert into ....´);
Query.ExecSql;

Não sei se consegui explicar, mas o problema é que no meu sistema inteiro isto funciona muito bem desta forma, só nesta Unit é que da pau e eu não faço idéia do por quê...

Obrigado

Cabelo.


GOSTEI 0
Midas

Midas

26/06/2003

Não entendi o porque vc precisa de um select antes de dar um into...
faça o comando update setando os campos que pretende inserir ... não seria a saida ... mais rápida com menos codigo ?


GOSTEI 0
Cabelo

Cabelo

26/06/2003

O problema não está em quando eu vou enviar a instrução para o banco de dados, está quando eu mudo o state da query

assim

Query.Insert;

Neste momento o delphi da o erro

Cannot modify a read-only dataset


GOSTEI 0
Cabelo

Cabelo

26/06/2003

Será que alguém pode me ajudar??


GOSTEI 0
Rodrigo Lima

Rodrigo Lima

26/06/2003

Cara, voce utiliza a clausula ORDER BY?

As vezes dá uma louca na Query e ela nao aceita edicao por causa disso. Se voce utilizar e precisar muito do ORDER BY, tente o seguinte:

1) Retire a linha correspondente a ORDER BY

2) Crie um indice para a sua tabela com o order, porque se existir um indice daquilo que voce procura, a Query utiliza ele.

Exemplo:

SELECT * FROM Tabela_Vendedor
WHERE CODIGO > 100

Se existir um indice da tabela de vendedores por CODIGO a query o utilizara e voce nao precisara utilizar um ORDER BY


GOSTEI 0
POSTAR