Alterar registro [resultado select join] no IBexpert
Amigos
Gostaria de poder alterar um registro de um resultado de um [select join] entre duas tabelas diretamente no IBexpert.
Não quero usar o update pois tenho q analisar os resultados retornados antes da modificação.
Há algum parâmetro que eu possa passar no meu SQL select?
Obrigado.
Gostaria de poder alterar um registro de um resultado de um [select join] entre duas tabelas diretamente no IBexpert.
Não quero usar o update pois tenho q analisar os resultados retornados antes da modificação.
Há algum parâmetro que eu possa passar no meu SQL select?
Obrigado.
Fightsurf
Curtidas 0
Respostas
Alex Lekao
21/02/2014
Oi Fight, bom dia!!!
Nao sei se mudou, mas qdo eu usava o IBExpert eu conseguia alterar no proprio grid que eu estava analisando o resultado e so clicava no botao commit e o resultado na era gravado na tela.
Ja fiz isso varias vezes, se nao me engano eh um ticado verde o comit e um ticado vermelhor o rollback.
Nao me lembro exatamente.
Desculpe por nao ajudar mais.
Abraco.
Alex - Lekao
Nao sei se mudou, mas qdo eu usava o IBExpert eu conseguia alterar no proprio grid que eu estava analisando o resultado e so clicava no botao commit e o resultado na era gravado na tela.
Ja fiz isso varias vezes, se nao me engano eh um ticado verde o comit e um ticado vermelhor o rollback.
Nao me lembro exatamente.
Desculpe por nao ajudar mais.
Abraco.
Alex - Lekao
GOSTEI 0
Marisiana Battistella
21/02/2014
Bom dia!
Você poderia postar o código para nos ajudar a entender a tua dificuldade?
Você poderia postar o código para nos ajudar a entender a tua dificuldade?
GOSTEI 0
Fightsurf
21/02/2014
O que eu quero é simples, talvez não tenha conseguido explicar direito. Mas agradeço a todos que leram minha dúvida.
Meu SQL é tão somente este:
select
i.descricao,
i.referencia,
p.preco
from
produtospreco p join itens i
on p.item = i.item
where
i.descricao like 'PANELA%16%'
order by
i.referencia
Por ser um [select join], o resultado retornado é [somente leitura] no IBExpert.
Gostaria poder alterar os dados retornados nele e depois comitar.
Meu SQL é tão somente este:
select
i.descricao,
i.referencia,
p.preco
from
produtospreco p join itens i
on p.item = i.item
where
i.descricao like 'PANELA%16%'
order by
i.referencia
Por ser um [select join], o resultado retornado é [somente leitura] no IBExpert.
Gostaria poder alterar os dados retornados nele e depois comitar.
GOSTEI 0
Alex Lekao
21/02/2014
Experimente sem o Join.
faca o link sem usar o join e testa para ver se da certo.
Acredito que sim.
eu fazia normalmente.
como disse faz muito tempo que nao uso, se nao me engano nao usava join.
Experimenta assim
ve ai se da certo e nos fala.
Abraco.
Alex - Lekao
faca o link sem usar o join e testa para ver se da certo.
Acredito que sim.
eu fazia normalmente.
como disse faz muito tempo que nao uso, se nao me engano nao usava join.
Experimenta assim
select i.descricao, i.referencia, p.preco from produtospreco p, itens i where p.item = i.item i.descricao like 'PANELA%16%' order by i.referencia
ve ai se da certo e nos fala.
Abraco.
Alex - Lekao
GOSTEI 0
Fightsurf
21/02/2014
Olá Alex. Obrigado pela sua resposta. Não deu certo.
No oracle eu faço o mesmo incluindo o termo "for update" no final do comando.
No oracle eu faço o mesmo incluindo o termo "for update" no final do comando.
GOSTEI 0
Alex Lekao
21/02/2014
OI Bom dia!!!
Estranho, eu sempre usei no IBExpert e dava certo as alteracao, so tinha que clicar no botao commit ou executar o comando comit mesmo.
Infelizmente nao poderei ajudar, desculpe.
Abraco.
Alex - Lekao
Estranho, eu sempre usei no IBExpert e dava certo as alteracao, so tinha que clicar no botao commit ou executar o comando comit mesmo.
Infelizmente nao poderei ajudar, desculpe.
Abraco.
Alex - Lekao
GOSTEI 0
Hermeson Gonçalves
21/02/2014
vc conseguiu resolver isso? eu estou com o mesmo problema
GOSTEI 0
Fightsurf
21/02/2014
Não consegui.
Ainda hoje não consigo alterar estes dados.
Mas, também, não mais pesquisei.
Ainda hoje não consigo alterar estes dados.
Mas, também, não mais pesquisei.
GOSTEI 0
Huidemar Costa
21/02/2014
Qual a estrutura da tabela?
E qual das duas tabelas você quer fazer o update?
E qual das duas tabelas você quer fazer o update?
GOSTEI 0
Rafael Bosco
21/02/2014
Utilize o Execute Block amigos...
EXECUTE BLOCK
AS
DECLARE VARIABLE DESCRICAO VARCHAR (50);
DECLARE VARIABLE REFERENCIA VARCHAR (20);
DECLARE VARIABLE PRECO NUMERIC (18,4);
BEGIN
FOR
SELECT
I.DESCRICAO,
I.REFERENCIA,
P.PRECO
FROM PRODUTOSPRECO P
JOIN INTES I
ON P.ITEM = I.ITEM
WHERE I.DESCRICAO LIKE 'PANELA%16%' INTO :DESCRICAO, :REFERENCIA, :PRECO
DO
BEGIN
-- FAÇA O UPDATE AQUI
UPDATE PRODUTOSPRECO T SET T.PRECO = :PRECO;
END
END
GOSTEI 0
Huidemar Costa
21/02/2014
Acredito que não precisa fazer um execute block para essa situação, pelo que parece o IBExpert, não está conseguindo montar o update pois está faltando a chave primária da tabela que ele quer fazer o update:
SELECT
I.ID, // suponhamos que ele quer alterar a tabela item e o campo ID seja chave primaria
I.DESCRICAO,
I.REFERENCIA,
P.PRECO
FROM PRODUTOSPRECO P
JOIN INTES I
ON P.ITEM = I.ITEM
WHERE I.DESCRICAO LIKE 'PANELA%16%'
GOSTEI 0
Rafael Bosco
21/02/2014
Na verdade, ele nunca conseguirá executar um update usando JOIN ou INNER JOIN, pelo fato da conexão entre as duas tabelas... tem que usar o execute block
GOSTEI 0
Huidemar Costa
21/02/2014
Na verdade, ele nunca conseguirá executar um update usando JOIN ou INNER JOIN, pelo fato da conexão entre as duas tabelas... tem que usar o execute block
Entendi
GOSTEI 0