Ir al contenido


Foto

Manejo de datos de Tdatetimepicker delphi 7

Tdatetimepicker

  • Por favor identifícate para responder
4 respuestas en este tema

#1 Derlis

Derlis

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 16 agosto 2017 - 02:38

Hola a todos,estoy con un inconveniente al querer agarrar el valor del tdatetimepicker,para valirdar un inquery,para eso uso este codigo pero no me funciona,pero el projecto compila sin dar errores.


delphi
  1. dm_dados.sqlConVenta.ParamByName('datavend').value :=DateTimePicker1.DateTime ;


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 16 agosto 2017 - 04:10

 

Hola a todos,estoy con un inconveniente al querer agarrar el valor del tdatetimepicker,para valirdar un inquery,para eso uso este codigo pero no me funciona,pero el projecto compila sin dar errores.


delphi
  1. dm_dados.sqlConVenta.ParamByName('datavend').value :=DateTimePicker1.DateTime ;

 

 

Hola Derlis, bienvenid@ a DelphiAccess.

 

Algunas preguntas:

 

¿Tu campo datavend es de tipo dateTime?

¿Que te muestra el resultado del query?

¿Puedes colocar la consulta de tu query?

 

Saludos.


  • 1

#3 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 16 agosto 2017 - 05:37

Te doy la bienvenida a Delphi Access

 

Con respecto a tu consulta, por qué decis que no funciona? El resultado obtenido no es el esperado? Podria ocurrir que la porcion de la "hora" del TDateTime te este afectado la consulta SQL


  • 0

#4 Derlis

Derlis

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 18 agosto 2017 - 09:01

Te doy la bienvenida a Delphi Access

 

Con respecto a tu consulta, por qué decis que no funciona? El resultado obtenido no es el esperado? Podria ocurrir que la porcion de la "hora" del TDateTime te este afectado la consulta SQL

Hola agustin,un placer.!

 

Consegui solucionar de esta manera.


delphi
  1. dm_dados.sqlConVenta.ParamByName('datavend').Text :=DateToStr (DateTimePicker1.Date);

En una ibqueri tengo una variable (:datavend) lo que necesitaba es poder agarrar el valor de esa variable,y compararla con el datetimepicker,con este codigo mas arriba consegui resolver.


  • 0

#5 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 18 agosto 2017 - 12:34

Yo creo que si bien te funciona, no es la solucion correcta. Los parametros fueron pensados para que uno pueda enviar los datos de "alto nivel", en este caso, una fecha, y no tener que andar lidiando con conversiones. En el primer codigo que muestras estas usando la propiedad DateTime del DateTimePicker, la cual es de tipo TDateTime. es decir, fecha + hora

Mientras que en el segundo caso, si bien estas conviertiendo a string mediante la funcion DateToStr, la propiedad que estas accediendo del DateTimePicker es la Date, la cual devuelve un TDate lo cual es fecha unicamente, sin la hora

 

Ademas la funcion DateToStr realiza la conversion teniendo en cuenta la configuracion regional del equipo, lo cual de modificarse, podria alterar el comportamiento de tu programa de manera inadvertida

 

No entendi la ultima consulta que planteaste:

 

 

En una ibqueri tengo una variable (:datavend) lo que necesitaba es poder agarrar el valor de esa variable,y compararla con el datetimepicker,con este codigo mas arriba consegui resolver.

 
No podes tener "variables" dentro de un componente Query. Lo que podes llegar a tener son parametros, esto es informacion de entrada que le mandas a la sentencia SQL (ok, existen parametros de salida tambien, pero creo que no es el caso y no quiero complicar mas la situacion) ; o podes tener campos o "fields", que es la informacion de salida, nada mas y nada menos que los campos de las tablas de la base de datos
 
Si es el segundo caso, simplemente podes obtener el campo y su valor de esta manera:
 

php
  1. field := tuQuery.FieldByName('nombreDelCampo'); // --> esto devuelve un objeto TField
  2.  
  3. // TField entiende varios mensajes muy utiles, sobre todo los que se usan para acceder a sus campos:
  4.  
  5. field.AsString; // el valor del campo como un string
  6. field.AsInteger; // idem pero de tipo integer
  7. field.AsDateTine; // para fecha+hora

Aca hay una lista de metodos que entiende la clase TField

 

No es necesario que guardes en una variable el TField como el ejemplo de arriba. De hecho, por lo general, la forma idiomatica es la siguiente:


delphi
  1. tuQuery.FieldByName('nombreCampo').AsInteger;
  2. tuQuery.FieldByName('nombreCampo').AsString;
  3. tuQuery.FieldByName('nombreCampo').AsFloat;
  4. tuQuery.FieldByName('nombreCampo').AsLoQueCorresponda;


  • 0




IP.Board spam blocked by CleanTalk.