Fórum Duvida em dbexpress #301535
02/11/2005
0
DM.CdsPedidos.Close; DM.CdsPedidos.CommandText := ´SELECT * FROM PEDIDOS WHERE CODCLI = ´+IntToStr(DM.xcodcli)+´ AND DATPED BETWEEN ´+EDatini.DateText+´ AND ´+EDatini.DateText+´´; DM.CdsPedidos.Open;
Felipeiw
Curtir tópico
+ 0Posts
02/11/2005
Xisto
sqldataset->provider->clientedataset->datasource
sqldataset.close
sqldataset.adicioneoscomandossql
clientedataset.close
clientedataset.open
xcodcli:= edcodigopraprocurar.text; DM.CdsPedidos.Close; DM.CdsPedidos.CommandText := ´SELECT * FROM PEDIDOS WHERE CODCLI = ´+IntToStr(xcodcli)+´ AND DATPED BETWEEN ´+EDatini.DateText+´ AND ´+EDatini.DateText+´´; DM.CdsPedidos.Open;
Gostei + 0
02/11/2005
Felipeiw
Abs
Gostei + 0
02/11/2005
Xisto
Pra funcionar vc fecha o SQLDataSet,
inclui o comando que vc quer e abre pelo
ClienteDataSet.
O meu sistema é todo assim.
Gostei + 0
02/11/2005
Adriano Santos
[b:17822b1cec]felipeiw[/b:17822b1cec], o [b:17822b1cec]Xisto[/b:17822b1cec] está correto, vc abre pelo ClientDataSet, mas todos os comandos SQL você coloca no TSQLDataSet.
Gostei + 0
03/11/2005
Fabio Nascimento
Basta você ativar a opção ´AllowCommandText´ do DataSetProvider correspondente, que você pode trabalhar diretamente com o componente ClientDataSet. Na minha opinião facilita, pois fica mais simples trabalhar com 1 só componente =)
Para usar um campo do tipo DATE como filtro, você deve usar uma consulta parametrizada do tipo:
SELECT * FROM PEDIDOS WHERE DATAPEDIDO BETWEEN :DATAINICIO AND :DATAFINAL ORDER BY DATAPEDIDO ASC
Ou fazer um TypeCast do tipo:
SELECT * FROM PEDIDOS WHERE DATAPEDIDO BETWEEN CAST(´MM/DD/YYY´ AS DATE) AND CAST(´MM/DD/YYY´ AS DATE)
Mas procure utilizar buscas parametrizadas, que melhora a performance geral do sistema :P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)