NÃO CARREGA PESQUISA

NICKOSOFT 07/11/2015 12:46:06
#453599
depende de cada caso....costumo tentar deixar o mais a prova de usuário....
MOUSER 07/11/2015 18:22:34
#453608
Obrigado, fiz o teste do comando no SQL:
Citação:


Public Function ListarData(ByVal DataInicio As String, DataFim As String) As SqlDataReader
Dim strQuery As String
strQuery = [Ô]Select cod from t_TotalDia where cod between [ô][Ô] & DataInicio & [Ô][ô]and[ô][Ô] & DataFim & [Ô][ô][Ô]
[ô]between DataInicio and fim
Dim _cldBancoDados As New cldBancoDados
Return _cldBancoDados.RetornaDataReader(strQuery)
End Function



Agora vou fazer o teste no VB.Net para pesquisar por período, só falta a parte do mês fechado!
NICKOSOFT 07/11/2015 20:52:00
#453612
  
[ô]Devolve o ultimo dia do mes
Function ULTIMO_DIA_MES(ano, mes) As Integer
ULTIMO_DIA_MES = Day(DateSerial(ano, mes + 1, 1) - 1)
End Function
MOUSER 09/11/2015 09:47:02
#453629
Com essa função posso gerar a pesquisa para puxar o mês inteiro, na função postada:

Citação:


Public Function ListarData(ByVal DataInicio As String, DataFim As String) As SqlDataReader
Dim strQuery As String
strQuery = [Ô]Select cod from t_TotalDia where cod between [ô][Ô] & DataInicio & [Ô][ô]and[ô][Ô] & DataFim & [Ô][ô][Ô]
[ô]between DataInicio and fim
Dim _cldBancoDados As New cldBancoDados
Return _cldBancoDados.RetornaDataReader(strQuery)
End Function


DataFim = Ultimo_Dia_Mes
NICKOSOFT 09/11/2015 14:36:27
#453648
veja q COD precisa ser um campo Date na tabela....

a função ali retorna apenas um inteiro e não uma data....
vc pode modificar a função pra retornar então um date com o ultimo dia do respectivo mês....
MOUSER 09/11/2015 15:39:16
#453653
Posso estar usando o codigo da data (Cod as Integer) para este tipo de pesquisa?
NICKOSOFT 09/11/2015 17:01:01
#453661
vc compara data com data, jamais data com inteiro....se vc vai enviar uma data inicial e uma data final pra clausula between, o campo q vai estar entre as 2 datas obrigatoriamente tem q ser uma data
MOUSER 09/11/2015 18:04:06
#453663
No caso do Between, vou buscar o cod da data inicial com o cod da data final, o cod da data final nunca vai ser menor do que o cod da data inicial, logo adicionei um If para verificar se CodFinal é < que o codInicial, se sim, mensagem de erro, se não, continua o sistema normalmente preenchendo a tabela (DataGridView), neste caso da função abaixo:

Citação:


[ô]Devolve o ultimo dia do mes
Function ULTIMO_DIA_MES(ano, mes) As Integer
ULTIMO_DIA_MES = Day(DateSerial(ano, mes + 1, 1) - 1)
End Function



A ideia é, pegar a data final, buscar o cod dele e pesquisar do codigoInicial (X) ao codigoFinal (Y)
MOUSER 09/11/2015 18:09:43
#453664
E esse Data final vai ser essa função que vai buscar
[ô]Devolve o ultimo dia do mes
Function ULTIMO_DIA_MES(ano, mes) As Integer
ULTIMO_DIA_MES = Day(DateSerial(ano, mes + 1, 1) - 1)
End Function

Depois dou um select na data encontrada e seleciono só o cod desta data encontrada, depois do cod ja encontrado, jogo ele no CodFinal pois o codinicial vai sempre representar o dia 1 do mês selecionado.
NICKOSOFT 10/11/2015 10:39:25
#453677
nossa, eu deixo de seguir o tópico pq é uma logica e criatividade fora do padrão.....
vc já tem como pegar tudo entre 2 datas, mas vai e pega código e manda código e pega mais código e muda.....tudo pra pegar um intervalo, imagino isso num banco com alguns milhares de registros, esse vai e vem....

manda ver ai q deve dar certo sim.....

so outra coisa, between serve pra todo tipo de intervalo, não apenas data, mas tudo tem q ser o mesmo tipo......
Página 4 de 5 [43 registro(s)]
Tópico encerrado , respostas não são mais permitidas