![]() |
![]() |
| 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
|
|||
|
|||
|
Buenas de nuevo
Lo he ejecutado y me genera la siguiente expeción: "... exception class EDataBaseError with ADOQCambiar. Parameter 'pFecha' not found" en la siguiente linea Código Delphi [-] If Parameters.ParamByName('pFecha') = nil En la Query tengo creado el parametro pFecha y lo tengo configurado de la siguiente forma Código Delphi [-] Attributes (todos a false) DataType: ftDateTime Direction : pdInput NumericScale : 0 Precision: 0 Siza: 0 Value : 0:00:00 Type: Date En la linea donde pone Prepare me generaba el error en compilación Undeclared identifier por lo que la he cambiado a Prepared :=True (no se si hice bien) he probado ejecutando el código de la siguientes formas Código Delphi [-]// Primera opción ... Prepared := True; If Parameters.ParamByName('pFecha') = nil ... // Segunda opción ... Prepared := True; Parameters.ParamByname('pFecha').Direction := pdinput; Parameters.ParamByname('pFecha').DataType := ftDateTime; If Parameters.ParamByName('pFecha') = nil ... En la segunda opción me da el error "... exception class EDataBaseError with ADOQCambiar. Parameter 'pFecha' not found" en la linea Parameters.ParamByname('pFecha').Direction := pdinput; La Query lo que pretende simplemente es cambiar las fechas de aquellos registros que previamente fueron seleccionadas. Con el error que me encontraba con la fecha he dejado la Query lo más simple y sencilla posible intentando modificar para las pruebas un único registro. ¿Que puedo hacer ahora?. Muchas Gracias |
|
#2
|
||||
|
||||
|
El parámetro lo tienes creado en tiempo de diseño, pero al borrar el sql con "SQL.Clear" ese parámetro se elimina también de memoria, según los resultados, hay que crear el parámetro en tiempo de ejecución:
A ver qué nos dice ahora OFFTOPIC: ¿donde están los expertos en ADO? ¿de espectadores? ![]() Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
|||
|
|||
|
Lo he probado tal cual como está escrito el procedure y me genera el siguiente error en la instruccion ExecSql:
"...exception class OleException with message "Multiple - step Ole Db operation generated errors. Check Ole Db Status value, if avalaible. No Work was done" Gracias |
|
#4
|
||||
|
||||
Eso funciona, comprobado. Cualquier error que te marque, no es culpa de este código y deberías buscar el error en otro lado.
__________________
|
|
#5
|
|||
|
|||
|
Desgraciadamente me sigue dando los mismos errores. Miraré y seguiré investigando de que puede ser si logro descubrirlo os lo haré saber (si alguien tiene alguna sugerencia, será bienvenida)
Muchas gracias |
|
#6
|
|||
|
|||
|
Ha llegado el momento de explicaros de donde me venia el problema. Me he pasado días y días mirando por Internet, “rastreando” las causas del error y cada vez que modificaba el código del programa la pesadilla continuaba, yo creía que el problema venia en que estaba pasando mal los parámetros en la fecha o alguna historia de este tipo (eso me pasa por obcecarme en la misma idea)
La pista me la dió uno de los errores que me generaba Microsoft SQL Server Driver. Caracteristica opcional no implementada El tema es que originalmente la aplicación del cliente fue desarrollada en VB6 y utiliza como bases de datos Microsoft SQL Server 2000. Habia que hacer unas modificaciones y he usado Delphi 7. Los errores me los daba tanto en Windows XP como en Vista. La Solución: http://support.microsoft.com/kb/294160/es Personalmente para resolver el problema del paso de las fechas por parámetro, he tenido que modificar la cadena de conexión ADO y también el código de la aplicación para que me fuera aceptada la fecha cuando se realiza la modificación del registro. La cadena de conexión que usaba en la propiedad ConectionString del componente ADOConection era la siguiente: Provider=MSDASQL.1;Password=password;Persist Security Info=True;User ID=nombre_usuario;Data Source=sqllaco;Mode=ReadWrite;Extended Properties="DSN=midsn;UID=sa;PWD=laco;APP=Enterprise;WSID=JAVIER_LOCAL;DATABASE=RECIBOS";Initial Catalog=RECIBOS Y ahora es: Provider=SQLOLEDB.1;Password=password;User ID=nombre_usuario;Data Source=sqllaco;Mode=ReadWrite;Extended Properties="DSN=midsn;UID=sa;PWD=laco;APP=Enterprise;WSID=JAVIER_LOCAL;DATABASE=RECIBOS";Initial Catalog=RECIBOS La parte Persist Security Info=True, que aparece en la antigua configuración, en la nueva, se suprime (no recuerdo exactamente en que pagina encontré este dato, creo que en la misma web del enlace) Y el código de programa para que esto funcione es el siguiente:
Si añado el bloque de código que lo tengo como comentario, me genera el error: Multiple Step OLE DB operation generated errors. Check each OLE DB status value, if avalaible. No work was done. Y en al ADOQuery1 no tengo ningún parámetro creado ! Bueno, pues aqui dejo esto por si alguien le puede servir de ayuda. Saludos |
|
#7
|
||||
|
||||
|
Me alegro que hayas encontrado la solución... estaba bastante escondida, es lo último en que pensamos.
Sobre los parámetros, bueno, en cuanto se asigna el SQL.TEXT o se añaden textos, se parsea y se crea la lista de parámetros automáticamente (al menos era así con BDE y otros. ADO tenía sus detalles, pero no recuerdo). Lo que intento decir es que si el parámetro está creado y tú intentas crear otro con el mismo nombre, es lógico que dé error. Si el parámetro no estuviese creado, no podrías asignar su valor .Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Cómo paso por parametro una matriz?? | NeoAnderson | API de Windows | 5 | 12-03-2008 02:47:09 |
| Problema Paso parametro funcion | NEG1414 | C++ Builder | 1 | 13-12-2007 22:58:22 |
| parametro fecha con ado | cmena | Conexión con bases de datos | 0 | 30-06-2005 17:55:50 |
| Como paso un parametro a un formulario | FNADALO | OOP | 4 | 22-11-2003 19:52:02 |
| Como paso un la intancia Tstrings de un TComboBox (ComboBox.items) por parametro? | orfeo | OOP | 1 | 05-05-2003 07:58:52 |
|