![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola
Para mi el problema es el uso de dos botones. 1- hace la sqntencia sql 2- ejecuta el parametro. Como va a saber el segundo codigo que parametro es fec. Hay muchas maneras de hacerlo, esta es una: Esta es otra: Y bueno hay mas. Saludos |
|
#2
|
||||
|
||||
|
Cita:
Puede que me equivoque, es muy probable ya que soy novato en este aspecto de Delphi+BD. Yo hasta el momento no he tenido mayores inconvenientes, vengo siguiendo recomendaciones de La Cara Oculta y post leídos de los foros y hago lo mismo que los códigos que exponen y me sale. De seguro esto puede resultar un poco tonto... ¿pero no será que los formatos de la fecha son distintos?... Saludos, |
|
#3
|
||||
|
||||
|
No hay que especificar el "Datatype" del parámetro, eso solo hay que hacerlo con ADO, porque ADO no tiene la opción de parambyname(...).AsDateTime. El resto de componentes de acceso, si tienen dicho método y al poner AsDateTime := datetimepicker.date, ya le estás diciendo a delphi que es un parámetro de fechas.
Al asignar el SQL, delphi internamente hace el parser y crea los parámetros automáticamente. Esta forma NO la recomiendo para nada: ya que incrustas la fecha directamente en el SQL, pero estas usando StrToDate, que depende de la configuración de windows para establecer el formato de fecha, leasé mm/dd/yyyy o bien dd/mm/yyyy o bien yyyy/mm/dd, y por ahí empiezan los problemas, dado que puede interpretar 01/02/2007 como el uno de febrero o como el 2 de enero devolviendo registros que no esperas, y este fallo es difícil de localizar. Delphi sabe que ":fec" es algo especial porque lleva los dos puntos delante. Sabe que no es un campo porque ha mirado los campos del Select de la consulta y "fec" no aparece en ellos, por tanto, creará un parámetro. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
||||
|
||||
|
La mayoría de motores de BBDD usan el formato mm/dd/yyyy, pero hay algunos que son "inteligentes", si enviamos una fecha 31/01/2007, como no encaja en ese formato, el motor cambia el formato a dd/mm/yyyy, por tanto nuestra consulta funciona correctamente. Cuando se le pasa la fecha 07/01/2007, lo encaja en formato mm/dd y nos devuelve los datos de Julio, mientras que nosotros esperamos los de enero.
Para evitar todo tipos de inconvenientes están los parámetros; delphi usa internamente un double para representar una fecha, así que no importa el formato de fecha que usemos, no importa la configuración de windows y no importa los formatos de fecha de la unidad SysUtils. El motor de BBDD y delphi ya se entenderán (que para algo son compatibles ).Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#6
|
||||
|
||||
|
No vi que fernando1973 especificara un tipo de BD o la conexión que utiliza y por esta razón me inclino por el lado del DataType, pues podría ser el problema.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error en Consulta de tablas creadas en tiempo de ejecucion | javicho_villa | Varios | 1 | 02-02-2006 17:14:28 |
| Consulta SQL con dos tablas... | emeceuy | Conexión con bases de datos | 2 | 06-08-2005 07:41:59 |
| consulta de dos tablas | tgsistemas | SQL | 4 | 15-04-2005 13:25:59 |
| Consulta con dos tablas | candido | SQL | 2 | 09-08-2004 13:02:07 |
| Consulta SQL con 4 tablas | nefy | SQL | 2 | 03-05-2004 23:25:22 |
|