Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2010
tubidericota tubidericota is offline
Registrado
 
Registrado: jun 2010
Posts: 6
Poder: 0
tubidericota Va por buen camino
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)+')';
Responder Con Cita
  #2  
Antiguo 03-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #3  
Antiguo 03-06-2010
tubidericota tubidericota is offline
Registrado
 
Registrado: jun 2010
Posts: 6
Poder: 0
tubidericota Va por buen camino
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..
Responder Con Cita
  #4  
Antiguo 03-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #5  
Antiguo 03-06-2010
tubidericota tubidericota is offline
Registrado
 
Registrado: jun 2010
Posts: 6
Poder: 0
tubidericota Va por buen camino
te paso la consulta, tal como la genera la instrucción de arriba:

Código SQL [-]
Insert Into MKB (nrokb, fecha, memo, r, k, g, anio, mes, dia) values (15005, '04/06/10', ' ', 1, 0, 1, 0, 0, 20100604)

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:

Código SQL [-]
Insert Into MKB (nrokb, fecha, memo, r, k, g, anio, mes, dia) values (15005, "04/06/10", " ", 1, 0, 1, 0, 0, 20100604)

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.
Responder Con Cita
  #6  
Antiguo 03-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 10:42:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi