FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
error en parametros con ado
que tal amigos, estoy realizando una consulta en la que uso un adoquery y le paso parametros el codigo es el siguiente
adoquery1.Parameters.ParamByName('oc-cve').Value := edit1.Text ; adoquery1.SQL.Text:= 'select us-cve from ordcom where oc-cve = c-cve'; adoquery1.ExecSQL; pero a la hora de ejecutar la aplicacion me marca "no value given for one or more required parameters" podrian orientarme acerca de donde estoy mal ? otra pregunta como puedo pasar el resultado a una etiqueta se puede hacer lo siguiente label1.text := adoquery1.SQL.Text:= 'select us-cve from ordcom where oc-cve = c-cve'; soy novato asi que si mi pregunta es muy tonta disculpen pero voy empezando y si uds me ayudan podre apender. de antemano les agradezco por su atencion |
#2
|
||||
|
||||
El problema es que es al asignar la sentencia SQL que se "crean" los parámetros; por lo que el valor recien asignado simplemente se pierde.
Además, cuando asignas un select a una sentencia SQL, el TAdoQuery debes "abrirlo" con el método open, y no simplemente "ejecutarlo" con ExecSQL, con el que ejecutas sentencias que no devuelven un cursor, como un update o un delete. Para obtener el "resultado", te podes valer del método FieldByName. Al final el trozo de código quedaria algo asi:
Por cierto, te recomiendo el uso de las etiquetas [ code ] [ delphi ] y [ sql ] para publicar trozos de código, que ves que de esta forma se indentan correctamente y hasta se puede resaltar la sintaxis, lo que los hace mucho mas legibles. Hay un mensaje al inicio de cada foro que te aclarará bastante sobre su uso. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
como esta eso de que se pierden los valores del parametro no te lo entendi muy bien, otra preguntonta, el parametro lo tengo que definir en algun lugar en especial o lo puedo agregar por ejemplo en el evento onclick de un boton ?
|
#4
|
||||
|
||||
Cita:
Por eso basta cn cambiar el orden... Cita:
El parámetro lo podes definir en tiempo de diseño o ejecución sin problemas. Por ejemplo, podes introducir una sentencia SQL con nuevos parámetros... siempre que tengas un mecanismo igualmente dinámico para asignar un valor a ellos antes de ejecutar la sentencia o abrir un cursor. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
escribi el codigo en el orden que me comentas pero aun asi me sigue marcando el mismo error.
como le asigno el valor del campo de texto a este parametro que defini ? |
#6
|
||||
|
||||
Probablemente el error está en un parámetro de la conexión ADO entonces. Has intentado ejecutar un query sin parámetros???
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
ejecuto el query sin parametros y funciona,
mira lo que quiero hacer es capturar en un cuadro de texto un numero de orden de compra y al presionar un boton me aparezcan todos los datos de esta orden por eso pensaba realizarla con parametros, la tabla se llama ordcom, el campo es [I]oc-cve[/i], tu como consultarias este dato en la bd ? |
#8
|
||||
|
||||
Pues en principio está bien como vos lo estas haciendo. Con una sentencia del tipo
adoquery1.ParamByName('talcosa').AsString := 'hola'; Le estas asignando el valor 'hola' al parámetro, y con Open, como ya te explique antes, lo abris... Intentá asignar el valor del parámetro en tiempo de diseño y ver si asi es posible. Otra posibilidad que se me ocurre, es que el parámetro no soporte el uso del guion menor, pues este en sql normalmente significa una resta... ya ves, es el signo menos. Mejor usa un nombre de parámetro con guion mayor (_) o sin guiones. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
fijate que ahora me marca "syntax error in query expresion select 'ORDCOM where oc-cve = ?' al parecer este es el valor que pasa el parametro.
|
#10
|
||||
|
||||
Te recomiendo escribir el query con comillas dobles. No se como se lo tome MS-SQL, pero creo que cualquier motor interpretará el Select oc-cve como la resta del campo oc menos el campo cve. Si el campo se llama oc-cve, escribilo entre comillas dobles (que debiera ser lo estándar, pero mejor lee la documentación de tu motor).
Algo como:
Luego el parámetro se llamaria occve. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#11
|
|||
|
|||
muchas gracias, tenias razon era por que estaba usando el guion medio , ya lo cambie por guion bajo y si funciono,tanto por ta pequeña cosa jejeje, muchas gracias por tu ayuda
|
|
|
|