FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Pocos parámetros. Se esperaba...
Buenas gente..
me encuentro con el siguiente problema y cualquier sugerencia o ayuda sera agradecida... Estoy enviando (con ADOCommand) a una base access remota una instrucción Insert Into, hace la inserción pero luego devuelve el siguientes error de ODBC: 'Pocos parámetros. Se esperaba 9'. Empezé con un error similar (sin que llegara a insertar), pero lo solucioné reemplazando (para los campos string) la doble comilla por el valor como resultado de la función quotedstr. Les paso las instrucciones que arman el insert: if length(adotable5.fieldbyname('memo').asstring) = 0 then mem:=' ' else mem:=(adotable5.fieldbyname('memo').asstring); com.commandtext:='Insert Into MKB (nrokb, fecha, memo, r, k, g, anio, mes, dia) '+ 'values ('+(adotable5.fieldbyname('nrokb').asstring) + ', '+quotedstr(adotable5.fieldbyname('fecha').asstring)+ ', '+quotedstr(mem)+ ', '+(adotable5.fieldbyname('r').asstring)+ ', '+(adotable5.fieldbyname('k').asstring)+ ', '+(adotable5.fieldbyname('g').asstring)+ ', '+(adotable5.fieldbyname('anio').asstring)+ ', '+(adotable5.fieldbyname('mes').asstring)+ ', '+(adotable5.fieldbyname('dia').asstring)+')'; |
#2
|
||||
|
||||
Lo más sencillo es que coloques un punto de ruptura en ese punto y revises la consulta que se está generando; O un MessageBox donde puedas ver el contenido de la SQL.
Con eso, seguro que es más fácil saber lo que está pasando; Por ejemplo, que alguno de los campos esté vacío, nulo o incorrecto y al consultarlo como string te devuelva vacío, con lo que la SQL llevaría 2 comas seguidas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Gracias por esponder Neftali.. ya superé esa instancia antes de postear, es más, antes de usar la Quotedstr guardé la instrucción que generaba (usando doble comilla) y la pegué en la interfaz de consulta de Access y funcionó bien... luego cuando encontré eso, y como digo en el post más arriba, hace la inserción, pero luego me devuelve ese error y detiene la ejecución..
|
#4
|
||||
|
||||
Sigo pensando que si no pones la consulta aquí es difícil ayudarte.
Otra cosa, que una consulta funcione dentro de Access, no significa que necesariamente deba funcionar desde Delphi+ADO, ya que Microsoft Access tiene una sintaxis más amplia que la del SQL estandard (que es la que usas con ADO). Uno de los problemas que más suele dar es son los delimitadores de los distintos tipos de campos, junto con los formatos de fecha.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
te paso la consulta, tal como la genera la instrucción de arriba:
así como esta, hace la inserción pero devuelve el error de que se esperaban 9 parámetros. el campo fecha es texto, memo es memo, el resto son numéricos.. los datos a insertar son tomados de una base (local) con la misma estructura. Si en vez de la comilla simple (medianta Quotedstr) usamos la comilla doble (concatenándola) queda esta instrucción:
No hace la inserción, y devuelve el error de que se esperaban 2 parámetros. Gracias por tu ayuda.. Última edición por Casimiro Notevi fecha: 03-06-2010 a las 15:56:03. |
#6
|
||||
|
||||
¿Si pones esto directamente en el ADOCommand te lo añade?
Prueba a cambiar algunos campos por NULL (en los que esté permitido), así sabrás en cual te está dando problemas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
directamente desde el com ya lo había probado, de todas maneras lo probe con los null como dijiste pero sigue haciendo lo mismo, de a uno e incluso con todos los campos en null (modifiqué la base para que acepte), me agrega un registro vacío y tira el error!... siempre el mismo, se esperaban 9 parámetros..
|
#8
|
||||
|
||||
Por decir algo:
[quote] nrokb___15005 fecha___'04/06/10' memo____' ' r_______1 k_______0 g_______1 anio____0 mes_____0 dia_____20100604 [/quote ¿Puede ser el problema provocado porque el último dato no es correcto?, 20100604, puede que tenga que ser así: [quote] nrokb___15005 fecha___'04/06/10' memo____' ' r_______1 k_______0 g_______1 anio____2010 mes_____06 dia_____04 [/quote |
#9
|
|||
|
|||
Gracias por responder Casimiro Notevi, en un principio era así, luego para simplificar una aplicación que usa la misma base se uso un campo solo, yo hago que la consulta inserte todo porque en el futuro se pude volver a usar.
De todas maneras le estoy insertando 0 a esos campos, no debería estar relacionado con el error.. |
#10
|
||||
|
||||
Lo raro es que llegue a insertar el registro.
No estará ejecutando otro código después de eso. ¿ Algún evento definido en algún control DataAware? No se, me resulta extraño que inserte y luego salte el error.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#11
|
|||
|
|||
ahí estaba el tema... renegé tanto con esa cosulta hsta que encontré lo de las comillas, que luego caundo me tiró el error de los 9 parámetros (la consulta justo tiene 9!) asocié que seguia con la misma consulta, pero en realidad ejecutaba otra que venía luego de algunas líneas más a la que todavía no le había actualizado lo de las comillas... les agradesco la colaboración y les pido disculpas.. prometo prestar más atención para la próxima!
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como desvirgar al Windows vista en pocos minutos | ArdiIIa | Seguridad | 13 | 04-06-2008 21:26:03 |
Se esperaba un objeto | Io | HTML, Javascript y otros | 3 | 04-10-2007 17:23:13 |
Erasmus pocos y parió la abuela. | marcoszorrilla | La Taberna | 0 | 20-11-2006 07:32:20 |
Parametros Opcionales no Parametros por defecto | Velia | Varios | 7 | 19-08-2006 15:18:42 |
Administrar Memoria de Una aplicación mediana en maquina con pocos recursos | xtrem77 | API de Windows | 2 | 10-01-2004 01:22:52 |
|