![]() |
[SOLUCIONADO] SQL Query error parameter 'sens' not found
Hola a todos, les agradeceria mucho su ayuda, soy nuevo en esto, estoy trabajando con Delphi 7 y al reutilizar el siguiente código en otra parte de la misma Unit, me aparece el error :
"Query3 parameter 'sens1' not found. Será que las sentencias query3.clear y query3.active=false no son suficientes para limpiar el código de este query. Ojalá me puedan decir que me falta para poder reutilizar el query3 sin problemas. De antemano muchas gracias Mi código es :
|
Recuerda utilizar TAG's
Una pista para solucionar tu problema: imprime en pantalla la consulta SQL, por ejemplo, de esta manera:
Por otra parte, te recomiendo que no utilices la sentencia with para nada, pero es un tema bastante personal. El problema que tiene es que pueden ocurrir ambiguedades |
error con sql
Gracias Agustin por el apoyo, en pantalla me aparece siempre la misma sentencia y se produce el mismo error.
Por el momento estoy probando lo que encontré en otro hilo, si tienes otro dato, bienvenido Gracias por la ayuda |
La construcción en prinicipio parece correcta.
Tendrías que colocar la SQL completa y/o un ejemplo donde se reproduzca. |
Hola...
Me parece recordar, que primero tendrías que preparar el query para que pueda reconocer los parámetros:
Saludos... |
y no es asi?
|
Cita:
Saludos |
Solo se me ocurre que no tengas la propiedad Connection enlazada
|
Dentro del With vuelves utilizar:
Código:
query3.parambyname('sens1').asInteger:= dsensor; |
Como dicen todos, en principio parece correcto. ¿estás seguro que es el lugar donde está marcando el error? (solo por descartar)
No tengo mas que correcciones de forma: (sugierousar open y close en luagar del active, es solo de forma)
Ahora, para verificar que es lo que pasa, revisa los parametros que te estan llegando... por ejemplo imprimiendo con un showmessage el Query3.Paramscount (No se si es asi o Query3.Params.count) Otra opcion es que utilices el indice del parametro:
y por ultimo, podrias solucionar tu problema, pero no es la respuesta a este hilo:
|
Una cosa mas... en la ventana de propiedades puedes ver la propiedad Params, que es una colección de TParams... puede ser que se hayan ingresado en tiempo de diseño los parametros y por esta razon puede que esté causando algún conflicto...
Aunque dicha propiedad deberia cambiarse cuando asignas nuevamente la sentencia SQL a tu Query3. saludo, |
Query no reconoce los parametros
Hola, gracias de nuevo por sus respuestas, he seguido probando alguna solución y el problema persiste, aislé el código a una sola form con la misma sintaxis ya que mi programa tiene muchos query. Los efectos son los mismos, esto es, la primera y segunda vez que el programa ejectua el query lo hace sin errores pero la tercera vez arroja el error maldito y lo hace con las sentencias select y las update.
Estoy trabajando en Windows 10 y me arroja un error al abrir Delphi, sin embargo todo anda bien salo el BDE que aparece con unos botones desactivados, esto lo salvé creando mis tabla con sentencias SQL, no creo que mi problema sea con windows?, que opinan? Les dejo el código que estoy usando para tratar de encontrar el problema, eliminé las sentencias with, apliqué el query.prepare, y nada. El código lo ejecuto desde un botón y al primer click, todo ok, al segundo igual , pero al tercero aparece el mensaje "parameter 'fe_ent_adm' not found. Mi programa debe usar esta procedimiento n veces, si no arreglo esto estoy frito. pensaba que el asunto andaba por los tipos "as.datetime" o "as.time", etc pero no me dio resultado. Mucha Gracias de nuevo perdonen no sé como insertar el código en la ventana. procedure TForm5.Button1Click(Sender: TObject); var Fecha_temp:TDateTime; Hora_temp:TDateTime; ruta_q2:string; numer_cab:Integer; begin Table2.Open; Table1.Open; ruta_q2:=TRIM(Table2.fieldbyname('RUTA_DATOS').value); ruta_q2:=ruta_q2 + '\REG_CALC1_ABTOS.DB'; //TABLE 1 Fecha_temp:= StrToDate('01-05-2017'); Hora_temp:= StrToTime('22:10:00'); numer_cab:=26; query1.Close; query1.SQL.Clear; query1.Params.Clear; query1.SQL.Text:= 'UPDATE "'+ruta_q2+'" SET FE_ENT_ADM = :fe_ent_adm, HR_ENT_ADM = :hr_ent_adm WHERE NUM_CAB_HAB = :n9_cab'; query1.Parambyname('fe_ent_adm').AsDateTime := Fecha_temp; query1.Parambyname('hr_ent_adm').AsTime := Hora_temp; query1.Parambyname('n9_cab').AsInteger := numer_cab; query1.SQL.EndUpdate; query1.ExecSQL; DBGrid1.DataSource:=Datasource1; Table1.Close; Table2.Close; end; end. |
Query no reconoce los parametros
Hola, gracias de nuevo por sus respuestas, he seguido probando alguna solución y el problema persiste, aislé el código a una sola form con la misma sintaxis ya que mi programa tiene muchos query. Los efectos son los mismos, esto es, la primera y segunda vez que el programa ejectua el query lo hace sin errores pero la tercera vez arroja el error maldito y lo hace con las sentencias select y las update.
Estoy trabajando en Windows 10 y me arroja un error al abrir Delphi, sin embargo todo anda bien salo el BDE que aparece con unos botones desactivados, esto lo salvé creando mis tablas con sentencias SQL, no creo que mi problema sea con windows?, que opinan? Les dejo el código que estoy usando para tratar de encontrar el problema, eliminé las sentencias with, apliqué el query.prepare, y nada. El código lo ejecuto desde un botón y al primer click, todo ok, al segundo igual , pero al tercero aparece el mensaje "parameter 'fe_ent_adm' not found. Mi programa debe usar esta procedimiento n veces, si no arreglo esto estoy frito. pensaba que el asunto andaba por los tipos "as.datetime" o "as.time", etc pero no me dio resultado. Mucha Gracias de nuevo perdonen no sé como insertar el código en la ventana. procedure TForm5.Button1Click(Sender: TObject); var Fecha_temp:TDateTime; Hora_temp:TDateTime; ruta_q2:string; numer_cab:Integer; begin Table2.Open; Table1.Open; ruta_q2:=TRIM(Table2.fieldbyname('RUTA_DATOS').value); ruta_q2:=ruta_q2 + '\REG_CALC1_ABTOS.DB'; //TABLE 1 Fecha_temp:= StrToDate('01-05-2017'); Hora_temp:= StrToTime('22:10:00'); numer_cab:=26; query1.Close; query1.SQL.Clear; query1.Params.Clear; query1.SQL.Text:= 'UPDATE "'+ruta_q2+'" SET FE_ENT_ADM = :fe_ent_adm, HR_ENT_ADM = :hr_ent_adm WHERE NUM_CAB_HAB = :n9_cab'; query1.Parambyname('fe_ent_adm').AsDateTime := Fecha_temp; query1.Parambyname('hr_ent_adm').AsTime := Hora_temp; query1.Parambyname('n9_cab').AsInteger := numer_cab; query1.SQL.EndUpdate; query1.ExecSQL; DBGrid1.DataSource:=Datasource1; Table1.Close; Table2.Close; end; end. |
Hola cvlaso77,
Esta línea donde pone "query1.SQL.EndUpdate" que la utilizas?, a ver si el problema es ese. Un saludo. |
Query no reconoce los parametros, RESUELTO
Muchas Gracias Orbe por tu sugerencia, al sacar el comando sql update, se resuelve el problema y el procedimiento funciona perfecto.
No sé de donde saqué este comando, asumo que al usar la rutina with, donde tambien aparece el mismo problema al usar este comando. Agradezco mucho a todos los que vieron mi consulta y dedican su tiempo a este foro, y los felicito por eso, ojalá esto hubiera existido en mis tiempos de la Univ de BASIC, PASCAL y otros. Saludos a todos |
Query no reconoce los parametros, RESUELTO
Una cosa más, me expresé mal, el comando que produce el error es "query1.SQL.EndUpdate", saludos
|
La franja horaria es GMT +2. Ahora son las 02:12:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi