Alterar registro em uma consulta com inner join
olá meus caros amigos, estou com o seguinte problema em minha aplicação que usa o trio de componentes SQLDataSet + DataSetProvider + ClientDataSet, pois eu preenchi a propriedade commandtext do SQLDataSet com a seguinte sentença SQL: [i:ebd29fe094][b:ebd29fe094]select mapa.id_mapa, delegacia.delegacia, mapa.resp_preenchimento, mapa.mes, mapa.ano, tipo_mapa.tipo, mapa.situacao from mapa inner join delegacia on mapa.id_delegacia = delegacia.id_delegacia inner join tipo_mapa on mapa.id_tipo_mapa = tipo_mapa.id_tipo_mapa where mapa.situacao = ´ABERTO´[/b:ebd29fe094][/i:ebd29fe094].
E estou tentando alterar o CAMPO SITUACAO dessa consulta da seguinte forma:
if not dados.cdsmapasabertos.IsEmpty then
begin
dados.cdsmapasabertos.Edit;
dados.cdsmapasabertos.FieldByName(´SITUACAO´).AsString:= FINALIZADO´;
dados.cdsmapasabertos.Post;
dados.cdsmapasabertos.ApplyUpdates(0);
end;
e estou obtendo o seguinte erro: table unknow MAPA
O Q SERÁ Q ESTOU FAZENDO DE ERRADO, por favor peço uma luz!!
desde já agradeço![/i]
E estou tentando alterar o CAMPO SITUACAO dessa consulta da seguinte forma:
if not dados.cdsmapasabertos.IsEmpty then
begin
dados.cdsmapasabertos.Edit;
dados.cdsmapasabertos.FieldByName(´SITUACAO´).AsString:= FINALIZADO´;
dados.cdsmapasabertos.Post;
dados.cdsmapasabertos.ApplyUpdates(0);
end;
e estou obtendo o seguinte erro: table unknow MAPA
O Q SERÁ Q ESTOU FAZENDO DE ERRADO, por favor peço uma luz!!
desde já agradeço![/i]
Brunoalexandre.ap
Curtidas 0
Respostas
Paulo
14/05/2008
Cara, refiz seu join e aparentemente está tudo certo. Não vi nada de anormal olhando de repente. vais ter que bater linha a linha do seu código e ver se o SqlDataSet está apontando mesmo pra tabela. Esse ero é de que Não Existe e/ou O SqlDataSet não acha a tabela. Aí só vendo o código.
select
mapa.id_mapa,
mapa.resp_preenchimento,
mapa.mes,
mapa.ano,
mapa.situacao
delegacia.delegacia,
tipo_mapa.tipo,
from
mapa
inner join
delegacia
on
mapa.id_delegacia = delegacia.id_delegacia
inner join
tipo_mapa
on
mapa.id_tipo_mapa = tipo_mapa.id_tipo_mapa
where
mapa.situacao = ´ABERTO´
GOSTEI 0
Joaoshi
14/05/2008
Colega, você precisa colocar no evento [b:d522cc17d3]OnGetTableName[/b:d522cc17d3] do [b:d522cc17d3]DataSetProvider[/b:d522cc17d3] o nome da tabela.
Espero ter ajudado.
Espero ter ajudado.
GOSTEI 0
Brunoalexandre.ap
14/05/2008
vc pode me dizer como eu faço isso???? como eu disse estou reiniciando minha carreira de programador!!
GOSTEI 0
Joaoshi
14/05/2008
Colega,
- Dê um click no seu DataSetProvider
- Teclando a F11 vai abrir o Object Inspector
- Vá na aba events
- Dois clicks na opção [b:3dbed22118]OnGetTableName[/b:3dbed22118] (vai abrir o código)
- Digite: [b:3dbed22118]TableName := ´MAPA´;[/b:3dbed22118]
Espero ter ajudado.
- Dê um click no seu DataSetProvider
- Teclando a F11 vai abrir o Object Inspector
- Vá na aba events
- Dois clicks na opção [b:3dbed22118]OnGetTableName[/b:3dbed22118] (vai abrir o código)
- Digite: [b:3dbed22118]TableName := ´MAPA´;[/b:3dbed22118]
Espero ter ajudado.
GOSTEI 0
Brunoalexandre.ap
14/05/2008
olá João obrigado pela ajuda mas ainda não resolveu o meu problema valeu!!
GOSTEI 0