Greed Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 (editado) agenda:= DateToStr (Date); label3.Caption:= agenda; DM.QueryAgenda_Consulta.Close; DM.QueryAgenda_Consulta.SQL.Clear; DM.QueryAgenda_Consulta.Sql.Add ('SELECT * FROM agendaconsulta'); DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = ' + agenda); DM.QueryAgenda_Consulta.Open;O que eu estou fazendo de errado? Ele da erro ao invés de filtrar pela data de hoje, ele retorna este errotype mismatch in expressionDM é o meu DataModule Editado Maio 6, 2008 por Greed Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 agenda:= DateToStr (Date); label3.Caption:= agenda; DM.QueryAgenda_Consulta.Close; DM.QueryAgenda_Consulta.SQL.Clear; DM.QueryAgenda_Consulta.Sql.Add ('SELECT * FROM agendaconsulta'); DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = ' + agenda); DM.QueryAgenda_Consulta.Open;O que eu estou fazendo de errado? Ele da erro ao invés de filtrar pela data de hoje, ele retorna este errotype mismatch in expressionDM é o meu DataModuleQue banco você está usando?Data_consulta tem o mesmo formato de agenda?Ele não está entendendo que o conteúdo da variável "agenda" deve ser comparado a um formato data. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Erso Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 talvez por causa do formato da data!!o banco espera o formato americano ('mm/dd/yyyy') e quando você tranforma em string essa data fica no formato brasileiro('dd/mm/yyyy')tente assim:agenda:= DateToStr (Date); label3.Caption:= agenda; DM.QueryAgenda_Consulta.Close; DM.QueryAgenda_Consulta.SQL.Clear; DM.QueryAgenda_Consulta.Sql.Add ('SELECT * FROM agendaconsulta'); DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = :AGENDA'); DM.QueryAgenda_Consulta.Params[0].AsDate := Date; DM.QueryAgenda_Consulta.Open; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 Oi, Erso!Foi por isso perguntei qual o tipo de banco ele está usando.existem diversos formatos de data e diversos bancos usando padrões diferentes.Um exemplo prático é o MySQL que a data é no formato aaaa-mm-dd. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Greed Postado Maio 6, 2008 Autor Denunciar Share Postado Maio 6, 2008 (editado) ErsoContinua dando o mesmo erro de antes Denis CourcyEstou usando o banco em Paradox e usando a Query para fazer a pesquisa!O campo agenda é uma StringComo eu conserto este erro?Deixe-me explicar o que deve acontecer no script!Eu preciso que ele liste todas as tarefas agendadas para o dia atual.Não querendo abusar muito da boa vontade, mas como eu faria para programar o banco de dados para apagar os registros após um determinado tempo?Digamos que o evento ocorre no dia 5, logo no dia 5 irá aparecer uma mensagem sobre aquele evento. Para que o banco de dados não fique sobrecarregado, como eu faria para estipular uma data X onde o banco iria apagar as informações?exemplodigamos que X=5, então no dia 10 todas as informações cadastradas para serem exibidas no dia 5 serão apagadas.Obrigado pela atenção Editado Maio 6, 2008 por Greed Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 o banco espera o formato americano ('mm/dd/yyyy') e quando você tranforma em string essa data fica no formato brasileiro('dd/mm/yyyy')Digamos que no caso do Paradox, isto é meio relativo, porque depende de como está a configuração no BDE. Na configuração do formato de data, o campo MODE pode indicar m/d/y (0), d/m/y (1) ou y/m/d (2).Greed, vamos acertar as coisas.Sendo agenda um string, é relevante o que o Denis Courcy lhe questionou e comentou: alguns bancos tratam a data em um formato diferente.A idéia de parametrização do Erso é a mais indicada para deixá-lo livre deste problema de formatação. Entretanto, se o exemplo que ele lhe passou não funcionou, pode ser divido ao tipo do campo Data_consulta (o qual o Denis lhe questionou o tipo e você não informou) não ser do tipo Date como assumido pelo colega Erso - esta informação é relevante.Quanto as questões adicionadas enquanto eu escrevia este post, fica pendente de minha parte.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 Oi, 'Greed'!Denis CourcyEstou usando o banco em Paradox e usando a Query para fazer a pesquisa!O campo agenda é uma StringComo eu conserto este erro?Se o campo data é string seu comando que está assimDM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = :AGENDA'); DM.QueryAgenda_Consulta.Params[0].AsDate := Date; Não deveria ser assim?DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = :AGENDA'); DM.QueryAgenda_Consulta.Params[0].AsString := Datetostr(Date); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Greed Postado Maio 6, 2008 Autor Denunciar Share Postado Maio 6, 2008 Ixi, me desculpe a falta de atençãoO campo no banco de dados é Alfanumérico de tamanho 15ele está sendo gravado por um "DateTimePicker" de onde pega a data e salva no banco de dados.Acho que o meu erro está sendo ai então, já que o código do erso não funcionou.O que me sugerem? Deixa o usuário cadastrar na mao a data e remove o DateTimePicker ou o que eu posso fazer?Grato pela atenção e fico num aguardo se você puder me ajudar Micheus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 Ixi, me desculpe a falta de atençãoO campo no banco de dados é Alfanumérico de tamanho 15ele está sendo gravado por um "DateTimePicker" de onde pega a data e salva no banco de dados.Acho que o meu erro está sendo ai então, já que o código do erso não funcionou.O que me sugerem? Deixa o usuário cadastrar na mao a data e remove o DateTimePicker ou o que eu posso fazer?Grato pela atenção e fico num aguardo se você puder me ajudar MicheusPode manter a data no formato string e o DateTimePicker, mas tem que mudar o código para que a leitura e a gravação não sejam impedidas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 Pode manter a data no formato string e o DateTimePicker, mas tem que mudar o código para que a leitura e a gravação não sejam impedidas.Mas Denis, para o que ele pretende fazer:"Eu preciso que ele liste todas as tarefas agendadas para o dia atual.Não querendo abusar muito da boa vontade, mas como eu faria para programar o banco de dados para apagar os registros após um determinado tempo?"Não ficaria mais fácil se ele usasse um campo tipo Date no banco, e na hora de gravar, converteria a data texto do DateTimePicker para um Date (usando StrToDate)?Penso que simplificaria as coisas futuramente.Sem contar que a ordenação de uma consulta usando um campo de data - no formato string - quase sempre traz dor de cabeça, a menos que você a armazene no formato yyyy/mm/dd.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 6, 2008 Denunciar Share Postado Maio 6, 2008 Você está certo, Micheus. O MySQl (aaaa-mm-dd) as vezes me faz esquecer de outros formatos de data quando da conversão dos mesmos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Greed Postado Maio 6, 2008 Autor Denunciar Share Postado Maio 6, 2008 (editado) Obrigado pessoal, agora está funcionando :rolleyes:O que fiz foi utilizar este códigoDM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = ' + chr(39)+ agenda + chr(39));Obrigado a todos pelas dicas, foi muito util para resolver o meu problema Editado Maio 6, 2008 por Greed Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Greed
O que eu estou fazendo de errado? Ele da erro ao invés de filtrar pela data de hoje, ele retorna este erro
DM é o meu DataModule
Editado por GreedLink para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.