Sql em tempo de execucao e dinamica
Utilizao ADO e SQL_SERVER
Gostaria de montar e sql abaixo em tempo de execução.
Faço o teste para ver se o combobox do laboratiorio esta preenchido se sim executa o codigo e assim por diante. Esse codigos vao depois de eu montar o codigo da sql.
if dblookupcombobox1.text<>´´ then
begin
dmc3.QconsultaFormacaoCurso.SQL.Add(´and MT.laboratorio=:plab´);
dmc3.QconsultaFormacaoCurso.ParamByName(´pcurso´).AsInteger:=DBLookupComboBox1.Keyvalue;
end
Outro problema - nao estou conseguindo passar parametro para a seguinte instrucao
(dataref between ´03/08/2005´ and ´03/09/2005´)
tentei
(dataref between =:pdataInicial and =:pdatafinal
Aqui todos os comandos estao dentro do Query.add(´ ´);
select
MT.codigo,
MT.descricao,
MT.apresentacao,
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref>=:pdatainicial1 order by codigo asc) as estoque_inicial,
(
(select sum(qtde) from mt_movimentacao where (tipo=´E´ or tipo=´D´) and (dataref between ´03/08/2005´ and ´03/09/2005´) and (material=MT.codigo))-(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref>=:pdatafinal21 order by codigo asc)
) entrada,
(select sum(qtde) from mt_movimentacao where (tipo=´S´ or tipo=´X´) and (dataref between ´03/08/2005´ and ´03/09/2005´) and (material=MT.codigo)) saida ,
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref<=:pdatafinal4 order by codigo desc) as estoque_final,
(select minimo from mt_materialcomp where material=MT.codigo ) as estoque_minimo
from
mt_material as MT
where
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref<=´2005-09-20´ order by codigo desc)>0
)
Se alguem puder ajudar agradeço
Gostaria de montar e sql abaixo em tempo de execução.
Faço o teste para ver se o combobox do laboratiorio esta preenchido se sim executa o codigo e assim por diante. Esse codigos vao depois de eu montar o codigo da sql.
if dblookupcombobox1.text<>´´ then
begin
dmc3.QconsultaFormacaoCurso.SQL.Add(´and MT.laboratorio=:plab´);
dmc3.QconsultaFormacaoCurso.ParamByName(´pcurso´).AsInteger:=DBLookupComboBox1.Keyvalue;
end
Outro problema - nao estou conseguindo passar parametro para a seguinte instrucao
(dataref between ´03/08/2005´ and ´03/09/2005´)
tentei
(dataref between =:pdataInicial and =:pdatafinal
Aqui todos os comandos estao dentro do Query.add(´ ´);
select
MT.codigo,
MT.descricao,
MT.apresentacao,
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref>=:pdatainicial1 order by codigo asc) as estoque_inicial,
(
(select sum(qtde) from mt_movimentacao where (tipo=´E´ or tipo=´D´) and (dataref between ´03/08/2005´ and ´03/09/2005´) and (material=MT.codigo))-(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref>=:pdatafinal21 order by codigo asc)
) entrada,
(select sum(qtde) from mt_movimentacao where (tipo=´S´ or tipo=´X´) and (dataref between ´03/08/2005´ and ´03/09/2005´) and (material=MT.codigo)) saida ,
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref<=:pdatafinal4 order by codigo desc) as estoque_final,
(select minimo from mt_materialcomp where material=MT.codigo ) as estoque_minimo
from
mt_material as MT
where
(select top 1 qtdereal from mt_movimentacao where material=MT.codigo and dataref<=´2005-09-20´ order by codigo desc)>0
)
Se alguem puder ajudar agradeço
Brahma
Curtidas 0
Respostas
Emerson Nascimento
04/10/2005
sobre o período, o correto é:
(dataref between :pdataInicial and :pdatafinal)
não ponha os sinais de igual.
(dataref between :pdataInicial and :pdatafinal)
não ponha os sinais de igual.
GOSTEI 0