| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Jue 22 Jun, 2006 1:29 pm Asunto: Fechas pasadas por Parámetros en SQL SERVER |
|
|
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 |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 22 Jun, 2006 3:11 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 22 Jun, 2006 3:17 pm Asunto: |
|
|
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... _________________
 |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Vie 23 Jun, 2006 3:29 am Asunto: |
|
|
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 |
|
 |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Lun 26 Jun, 2006 7:31 am Asunto: |
|
|
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 |
|
 |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Lun 26 Jun, 2006 9:24 am Asunto: |
|
|
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 |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Lun 26 Jun, 2006 2:57 pm Asunto: |
|
|
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 |
|
 |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Mar 27 Jun, 2006 8:05 am Asunto: |
|
|
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 |
|
 |
|