Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Fechas pasadas por Parámetros en SQL SERVER

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Fechas pasadas por Parámetros en SQL SERVER Responder citando

Hola amigos:

Tengo la siguiente instrucción SQL, la cual la incluyo en la propiedas SQL de un ADOQuery

Código:


INSERT INTO DIARIOAPUNTES VALUES(:ASIENTO,:APUNTE,:FECHA,:CUENTA,:COMENTARIO,........,);



Si ejecuto la instrucción con todos los parámetros con la fecha fija, por ejemplo:

Código:


INSERT INTO DIARIOAPUNTES VALUES(:ASIENTO,:APUNTE,'30/06/2006',:CUENTA,:COMENTARIO,........,);



No hay problema, el problema surge cuando la fecha se pasa por parámetro.

Me sale el error

"CARACTERISTICA OPCIONAL NO IMPLEMENTADA"

La asignación del parámetro fecha lo hago desde la instrucción:

Código:

ADOQuery1->Parameters->ParamValues["FECHA"]= FECHACARGO->Text;


Donde FECHACARGO es del tipo TMaskEdit.

Alguien sabe decirme lo que puede pasar con la fecha?
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si la instrución está tal como la escribiste, le falta agregar la propiedad Value y ademas tuviste que haber especificado el tipo de parametro en la propiedad Parameters.
Código:

ADOQuery1->Parameters->ParamValues["FECHA"]= FECHACARGO->Text;


Seria de esta forma

Código:

ADOQuery1->Parameters->ParamValues["FECHA"]->Value = FECHACARGO->Text;


Saludos
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

la manera correcta para que sea el parametro quien lo reciba y genere el propio "cast" correspondiente es

Código:
ADOQuery1->Parameters->ParamValues["FECHA"]->Value = Date();


Asi mismo forzando un cast mas espesifico

Código:
ADOQuery1->Parameters->ParamValues["FECHA"]->AsDate = Date();


aun que este ultimo paso, se utilize a la inversa... cuando generas un dato.. o extraes el parametro su valor a cierto tipo...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

En mi casome tope que las fechas hay que mandarla en formato "mm/dd/yyyy", usando la funcion FormatDate
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Porqué este problema no ocurre con otro tipo de datos?

Utilizando la función tal cual sin Value funciona para texto, enteros, ...
Pero no para Date. Porqué?. Qué sentido tiene?
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Sigo teniendo errores.

Si pongo:
Código:

DM->ADOQuery1->Parameters->ParamValues["FECHA"]->Value=StrToDate(FECHACARGO->Text);


sale el error:

Cita:
Pointer tu structure required on left side of -> or ->*


Bueno pues vamos a poner:
Código:
ADOQuery1->Parameters->ParamValues["FECHA"].Value=StrToDate(FECHACARGO->Text);


Pero ahora el error es:

Cita:
'Value' is not a member of 'Variant'


Tambien he hecho

Código:

ADOQuery1->Parameters->ParamValues["FECHA"].AsType(varDate)=StrToDate(FECHACARGO->Text);


Y ahora el error es:

Cita:
Could not convert variant of type (null) into type (Date)


No se si es que me falta alguna actualización del tipo TADOQuery, porque no consigo utilizar la propiedad Value.
Espero que alguien pueda ayudarme

Un saludo
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ok, la instrucción que normalemente utilizo y que no me presenta problemas es:

Código:

DM->ADOQuery1->Parameters->ParamByName("Fecha")->Value = StrToDate(FECHACARGO->Text);


Es decir, cambiar ParamValues por ParamByName(Nombre_Parametro)

Saludos
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola Buildero:

Eso ya lo probé y no funciona.
Lo que he hecho es formar la Sentencia SQL en una cadena de texto, sin la fecha como parámetro. He dividido la sentencia en dos, y en medio he metido el valor de la fecha, luego se la he pasado a la propiedad SQL.
Reconozco que es una chapucilla, pero mientras no lo solucione...

Pasándole el comando que me dices me sale el error en tiempo de ejecución "Característica opcional no implementada". Es castellano, pero no entiendo este tipo de comentarios. Esperemos que con el tiempo sean mas precisos para que todo el mundo entienda lo que quiere decir el que creó el analizador de errores.

Un saludo
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.