Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Errror en isntruccion sql

Estas en el tema de Errror en isntruccion sql en el foro de Visual Basic clásico en Foros del Web. La siguiente instruccion el servidor SQL me genera un error, y no sé cual es, no lo consigo todo está bien, a ver si alguien ...
  #1 (permalink)  
Antiguo 02/03/2009, 16:58
 
Fecha de Ingreso: enero-2009
Mensajes: 38
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Errror en isntruccion sql

La siguiente instruccion el servidor SQL me genera un error, y no sé cual es, no lo consigo todo está bien, a ver si alguien puede notarlo. El error dice que hay menos columnas en la claúsula insert que valores especificados en la claúsula value. Yo la he corregido pero aún sigue el error. Alguna ayuda muchas gracias.

La instrucción es ésta:

sql = "INSERT INTO RETENCION(n_retencion, rif_agente, rif_contribuyente, n_factura, n_control, n_cheque, cod_concepto, tipo_pago, periodo_mes, periodo_año, fecha_retencion, monto_operacion, monto_retenido, persona, estado, observaciones, declaracion) VALUES ( " & conta & ", 'J002938897', '" & Combo4(0) & "', '" & Text2 & "', '" & Text3 & "', " & Text10(0) & ", '" & Combo5 & "', 'NA', " & Combo2(0) & ", " & Combo3(0) & ", " & DTPicker1(0) & ", " & Text4(0) & ", " & Text12(0) & ", 'J', 'activo', '" & Text7(0) & "', 'primera')"
con.Execute (sql)

Los campos de la base datos son estos:
n_retencion numerico
rif_agente text
rif_contribuyente text
n_factura text
n_control text
n_cheque numerico
cod_concepto text
tipo_pago text
periodo_mes numerico
periodo_año numerico
fecha_retencion datetime
monto_operacion decimal
monto_retenido decimal
persona text
estado text
observaciones varchar(max)
declaracion text
  #2 (permalink)  
Antiguo 02/03/2009, 19:09
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Errror en isntruccion sql

Hola, porque no haces un simple Debug.print sql despues que se forma la cadena y copias la consulta generada en donde estes trabajando(acces, mysql ,sql server..) y ejecutas la consulta y te vas a dar cuanta del error..

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 02/03/2009, 19:26
 
Fecha de Ingreso: enero-2009
Mensajes: 38
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Errror en isntruccion sql

Aparece asi en la ventana

INSERT INTO RETENCION(n_retencion, rif_agente, rif_contribuyente, n_factura, n_control, n_cheque, cod_concepto, tipo_pago, periodo_mes, periodo_año, fecha_retencion, monto_operacion, monto_retenido, persona, estado, observaciones, declaracion) VALUES ( 1, 'J002938897', '300180174', '414', '414', 414, '059 ', 'NA', 02, 1989, 02/03/2009, 414, 20,7, 'J', 'activo', 'jhhjk', 'primera')


Ya creo saber cual es, es el campo monto_retenido y monto_operacion que son decimales y toma una coma y eso me genera un elemento más en la instrucción sql que separa cada uno por una coma.

Alguna idea de como puedo solucionar este problema

Última edición por Rossanalie; 02/03/2009 a las 19:40
  #4 (permalink)  
Antiguo 02/03/2009, 19:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Errror en isntruccion sql

Sustituye la coma decimal por un punto decimal (dependiendo del caso suele funcionar), además, según el motor de base de datos que estés utilizando es probable que no te acepte el campo fecha de la forma como estás poniendo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 02/03/2009, 20:53
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Errror en isntruccion sql

pues si , trata de convertirlo a Double con CDbl() a esos valores con coma...y la fecha trata de ponerle un Format por las dudas...y mandala como string...
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #6 (permalink)  
Antiguo 02/03/2009, 21:12
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Errror en isntruccion sql

pasa como cadena los valores numericos ' 12,25 ' asi la coma pasa desapersivida por el sql
  #7 (permalink)  
Antiguo 03/03/2009, 06:59
 
Fecha de Ingreso: enero-2009
Mensajes: 38
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Errror en isntruccion sql

Muchas gracias por sus respuestas, ya solucione. No me fuciona con CDbl. Tuve que cambiar los campos de la base de datos de numerico a char.




Otra cosa que quiero hacer es que un valor numerico conserve su cero a la izquierda cuando se guarde en la base de datos

Última edición por Rossanalie; 03/03/2009 a las 07:06
  #8 (permalink)  
Antiguo 03/03/2009, 07:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Errror en isntruccion sql

Si quieres que conserve el 0, tienes que declararlo como double o float, pero quedará como 00.000XX, a lo mejor sea más conveniente declararlo como texto y en el programa lo transformas a numérico para trabajarlo.
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:49.