query mysql com erro
Estou com problemas na seguinte query abaixo:
DataMavar1.QryMarcas.close;
DataMavar1.QryMarcas.SQL.Clear;
DataMavar1.QryMarcas.SQL.Add(´select t1.descricao, t2.descricao from tb_modelos T1, tb_marcas T2´);
DataMavar1.QryMarcas.sql.add(´where T1.cod_marca = T2.cod_marca ´);
DataMavar1.QryMarcas.open;
DataMavar1.QryMarcas.UpdateCursorPos;
showmessage(DataMavar1.QryMarcas.fieldbyname(´descricao´).asstring);
if not DataMavar1.QryMarcas.RowsAffected <> 0 then
begin
CmbMarca.TEXT:=´´;
// CmbMarca.Text:= DataMavar1.QryMarcas.fields[1].asstring;
CmbMarca.Text:= DataMavar1.QryMarcas.fieldbyname(´descricao´).asstring;
//CmbMarca.Enabled:=FALSE;
end;
há princípio ela executa a query, mas como executamos a query com duas tabelas no data module temos que fazer um join.. o lance é que ele retorna um valor totalmente diferente do que esta gravado na tabela.. ou seja... acho que a query esta se perdendo (ainda nao consegui enchergar o erro)
Se alguem puder ajudar agradeço
obs: datamavar1 = datamodule..
DataMavar1.QryMarcas.close;
DataMavar1.QryMarcas.SQL.Clear;
DataMavar1.QryMarcas.SQL.Add(´select t1.descricao, t2.descricao from tb_modelos T1, tb_marcas T2´);
DataMavar1.QryMarcas.sql.add(´where T1.cod_marca = T2.cod_marca ´);
DataMavar1.QryMarcas.open;
DataMavar1.QryMarcas.UpdateCursorPos;
showmessage(DataMavar1.QryMarcas.fieldbyname(´descricao´).asstring);
if not DataMavar1.QryMarcas.RowsAffected <> 0 then
begin
CmbMarca.TEXT:=´´;
// CmbMarca.Text:= DataMavar1.QryMarcas.fields[1].asstring;
CmbMarca.Text:= DataMavar1.QryMarcas.fieldbyname(´descricao´).asstring;
//CmbMarca.Enabled:=FALSE;
end;
há princípio ela executa a query, mas como executamos a query com duas tabelas no data module temos que fazer um join.. o lance é que ele retorna um valor totalmente diferente do que esta gravado na tabela.. ou seja... acho que a query esta se perdendo (ainda nao consegui enchergar o erro)
Se alguem puder ajudar agradeço
obs: datamavar1 = datamodule..
Andersonfrr
Curtidas 0
Respostas
Henry Lima
11/07/2005
Amigo o problema é o seguinte, você tem que tomar o hábito de criar os nomes dos campos das tabelas de maneira diferente, por exemplo faça o teste da mudando somente os nomes dos campos para o seguinte:
tb_modelos:
modedescricao
tb_marcas:
marcdescricao
Sendo assim a SQL ficaria da seguinte maneira:
select t1.modedescricao, t2.marcdescricao from tb_modelos t1, tbmarcas t2 where t1.cod_marca = t2.cod_marca
depois...
cmbMarca.Text := DataMavar1.QryMarcas.fieldbyname(´marcdescricao´).asstring;
Dessa maneira deve funcionar... O problema é que quando os campos descrição são iguais fica meio complicado fazer estas instruções, recomendo que renomeie os campos descricao para que fique mais facilitado a sua busca... qualquer coisa entre em contato...flw t+
tb_modelos:
modedescricao
tb_marcas:
marcdescricao
Sendo assim a SQL ficaria da seguinte maneira:
select t1.modedescricao, t2.marcdescricao from tb_modelos t1, tbmarcas t2 where t1.cod_marca = t2.cod_marca
depois...
cmbMarca.Text := DataMavar1.QryMarcas.fieldbyname(´marcdescricao´).asstring;
Dessa maneira deve funcionar... O problema é que quando os campos descrição são iguais fica meio complicado fazer estas instruções, recomendo que renomeie os campos descricao para que fique mais facilitado a sua busca... qualquer coisa entre em contato...flw t+
GOSTEI 0