Ir para conteúdo
Fórum Script Brasil
  • 0

2 Perguntas Apenas....


jxfdasilva

Pergunta

Boa Noite Companheiros,

Estou querendo usar o valor do DateTimePicker para consulta a MySQL, do género :

SELECT * FROM xxxxxxxxx WHERE Data Between "(* DateTimePicker*)" and "(* DateTimePicker*)"

Como posso fazer isso, tendo em conta que depois preciso exibir o resultado no TListView? Da para adiantar um exemplo do código?

Outra questão é, como formatar a data do DateTimePicker de forma a ser aceite no MySQL?

José

De África

Mozambique

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Boa Noite Companheiros,
Boa noite José, já que ai deve ser aproximadamente 21:00hs (aqui são apenas 15:00hs) :D

Estou querendo usar o valor do DateTimePicker para consulta a MySQL, do género :

SELECT * FROM xxxxxxxxx WHERE Data Between "(* DateTimePicker*)" and "(* DateTimePicker*)"

Como posso fazer isso, tendo em conta que depois preciso exibir o resultado no TListView? Da para adiantar um exemplo do código?

Por que mostrar num ListView? Não poderia utilizar em um DBGrid? Voce não teria quase nenhum trabalho braçal...

Outra questão é, como formatar a data do DateTimePicker de forma a ser aceite no MySQL?
Se você concatenar a data a sua SQL então você pode utilizar:
Query1.SQL.Clear;
Query1.SQL.Add('select ... where Data between ' +QuotedStr(FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date)) +' and ' +QuotedStr(FormatDateTime('yyyy-mm-dd', DateTimePicker2.Date)));
Query1.Open;
se for parametrizado, então:
Query1.SQL.Clear;
Query1.SQL.Add('select ... where Data between :DtInicio and :DtFim');
Query1.ParamByName('DtInicio').AsDate := DateTimePicker1.Date;
Query1.ParamByName('DtFim').AsDate := DateTimePicker2.Date;
Query1.Open;

Recomendo este formato.

Editado por Micheus
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Micheus,

Bom te ler.

Já agora gostaria de entender o algoritmo de funcionamento do Delphi. Aquilo que entendi, para consultar o Gestor de Base de Dados, necessito do (e isso usando o DBExpress – mais fácil), dizia, necessito do “MySQLConnection”, TSQLQuery, e do TDataSource. Ora, entendi também, que eu posso passar as sentenças ao MySQL através do TSring do TSQLQuery e depois visualizar os retornos em TListView, por exemplo. Agora aqui, fico manietado. Já vi que o TString do TSQLQuery, só aceita uma sentença. E quando se trata de sentenças em que é necessário, no meu caso, colectar um string de um “DateTimePicker”, por ex.: e passar para a sentença SQL, nepias, não funciona! Neste caso não funciona o TSring do TSQLQuery. E se deixo o TSring do TSQLQuery vazio, ele da erro. Se preencho da erro de sintax no MySQL…. Já vi que, e aproveitando os teus ensinamentos, a solução passa por parametrizar. Mas como faço isso? Qual algoritmo? Como funciona no Delphi?

De facto já é tarde por estas bandas. São neste momento 9:40 PM.

Aquele abraço companheiro…

Ah, já agora, para concluir. porque TListView? Bem, porque já está tudo a funcionar no TListView e só esta faltando - para já - esta consulta por Data.

Ah, já me ia esquecendo, já tou registado! Viva EU!!!!

;-)

Link para o comentário
Compartilhar em outros sites

  • 0

Agora tou abanando!!! Damm!! Esta funcionando mas não estou entendendo porque? Será porque não concatenei a data antes? Mas eu experimentei com outro tipo de sentença - sem data - e deu erro? Obrigava-me sempre a declarar a sintax de consullta no TSring do TSQLQuery.... e depois dava erro de sintax

:blink:

Já agora: qual a diferença entre: SQLQuery , SQLQuery.SQL?

Ok, já sei, tou perguntando demais... mas não gosto de fazer as coisa sem conhece-las!

Abraço Amigo

África

Link para o comentário
Compartilhar em outros sites

  • 0
Já vi que, e aproveitando os teus ensinamentos, a solução passa por parametrizar. Mas como faço isso? Qual algoritmo? Como funciona no Delphi?
Não entendi a dúvida. O exemplo que coloquei no post anterior já mostra como utilizar a parametrização? :huh:

Ah, já agora, para concluir. porque TListView? Bem, porque já está tudo a funcionar no TListView e só esta faltando - para já - esta consulta por Data.
você pretende mostrar um header com o nome dos campos e nas linhas o resultado de sua consulta, é isto?

Agora tou abanando!!! Damm!! Esta funcionando mas não estou entendendo porque? Será porque não concatenei a data antes? Mas eu experimentei com outro tipo de sentença - sem data - e deu erro? Obrigava-me sempre a declarar a sintax de consullta no TSring do TSQLQuery.... e depois dava erro de sintax
Acho que se você colocar um exemplo da sintax utilizada, a qual acusava erro, fica mais fácil de tentar entender.

Já agora: qual a diferença entre: SQLQuery, SQLQuery.SQL?
Não entendi muito bem a pergunta, porque TSQLQuery é uma classe e SQLQuery.SQL é uma referência a propriedade SQL desta classe (que também refere-se a uma classe - TStrings).

Ok, já sei, tou perguntando demais... mas não gosto de fazer as coisa sem conhece-las!
Não está não. Também acho que você tem que entender o que está fazendo, senão, como ficará em uma próxima vez?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Olá companheiros,

Boa noite a todos. Lamentavelmente estive sem acesso a Internet ate agora. E como nem tudo é negativo na vida, deu para ler mais um bocado e esclarecer as dúvidas. Em todo o caso, um especial obrigado ao Fórum e, obviamente, ao Micheus, pela colaboração abnegada e, obviamente, paciência que.b.

Abraço, de África

José Da Silva

Maputo – Mozambique

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Churc,

Um bom dia para você também. De facto sou Africano - Mozambique, Maputo. O problema foi resolvido com a preciosa ajuda do Micheus a quem aproveito para endereçar os meus cumprimentos. Ao Fórum, um bom dia, aqui de África, sempre quente.

Aquele abraço

José Da Silva

P.S. vocês tem problemas com o C cedilhado? É que se escrevo Mozambique (com 'z'porque C cedilhado não joba) - aparece maiorçambique!!!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...