Foros del Web » Programando para Internet » ASP Clásico »

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Estas en el tema de Microsoft OLE DB Provider for ODBC Drivers error '80040e14' en el foro de ASP Clásico en Foros del Web. Hola amigos. Un error en la programacion me esta volviendo loco. Dejo el codigo, por si alguien ve lo que yo no veo. Saludos. Me ...
  #1 (permalink)  
Antiguo 02/03/2008, 13:06
GUW
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 17 años, 11 meses
Puntos: 1
Exclamación Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Hola amigos.

Un error en la programacion me esta volviendo loco.
Dejo el codigo, por si alguien ve lo que yo no veo. Saludos.
Me devuelve el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Tenemos la esperanza de que nos conceda la oportunidad de servirle con nuestros conocimientos del mercado internacional con el fin de incrementar su 'portfolio' de propiedades con algo que sea realmente no solo una inversión más, sino aquello que provoque q'.

/mn_guardar_nosotros.asp, line 37

El codigo:

<%
Option Explicit

'Definición de variables

Dim Base
Dim Tabla
Dim SQL
Dim cod_nosotros
Dim nosotros1
Dim nosotros2
Dim nosotros3
Dim activo
Dim orden
Dim ant_orden

'Fin de la definición de variables

cod_nosotros = request.Form ("cod_nosotros")
if cod_nosotros = "" then cod_nosotros = "#"
nosotros1 = request.Form("nosotros1")
nosotros2 = request.Form("nosotros2")
nosotros3 = request.Form("nosotros3")
if request.Form("activo") <> "" Then activo = "True" Else activo = "False"
orden = request.Form("orden")
ant_orden = request.Form("ant_orden")
if ant_orden = "" Then ant_orden = "9999"

SET Base = Server.CreateObject("ADODB.Connection")
base.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:/business/louduniversal.com/private/ louduniversal mdb"

If cod_nosotros = "#" Then
SQL = "Insert Into nosotros (cod_nosotros, nosotros1, nosotros2, nosotros3, activo, orden) values ('#', '" & nosotros1 & "', '" & nosotros2 & "', '" & nosotros3 & "', " & activo & ", " & orden & ")"
Else
SQL = "Update nosotros Set nosotros1='" & nosotros1 & "', nosotros2='" & nosotros2 & "', nosotros3='" & nosotros3 & "', activo=" & activo & ", orden=" & orden & " Where cod_nosotros='" & cod_nosotros & "'"
end If
Base.Execute SQL
  #2 (permalink)  
Antiguo 03/03/2008, 05:44
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Hola

¿Por qué no intentas un debug por medio del response.write SQL y response.end?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 03/03/2008, 06:03
GUW
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 17 años, 11 meses
Puntos: 1
Exclamación Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Muchas gracias por contestar.
En realidad no sé a que te refieres.
¿podrías ponerme un ejemplo?

El caso es que poniendo dos campos me funciona perfectamente. Ha sido al añadir un campo más que me ha dado error, y no sé porqué.

Saludos.
  #4 (permalink)  
Antiguo 03/03/2008, 08:16
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

adler se refiere

a:

If cod_nosotros = "#" Then
SQL = "Insert Into nosotros (cod_nosotros, nosotros1, nosotros2, nosotros3, activo, orden) values ('#', '" & nosotros1 & "', '" & nosotros2 & "', '" & nosotros3 & "', " & activo & ", " & orden & ")"
Else
SQL = "Update nosotros Set nosotros1='" & nosotros1 & "', nosotros2='" & nosotros2 & "', nosotros3='" & nosotros3 & "', activo=" & activo & ", orden=" & orden & " Where cod_nosotros='" & cod_nosotros & "'"
end If
response.write SQL
response.end
'Base.Execute SQL

pone eso y dinos que te muestra

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 03/03/2008, 08:33
GUW
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 17 años, 11 meses
Puntos: 1
Exclamación Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

muchas gracias.

La comilla ante de Base ('Base.Execute SQL) lo convierte en texto de referencia, con lo que supongo que está mal.

En realidad, la página de mn_guardar_nosotros.asp debería realizar su acción, y pasar al índice. En este caso, con tu propuesta, se queda en mn_guardar_nosotros.asp mostrando esto:

Update nosotros Set nosotros1='Más allá de lo estrictamente profesional, LogoPut tiene como pauta tratar a cada cliente como si fuese el único de la empresa. Esta mentalidad y forma de trabajo es la que ha aportado a esta plantilla los resultados obtenidos hasta la fecha y ha marcado el curso de esta empresa hacia una nueva forma de comercio en la que los que imperan son los valores éticos que a largo plazo determinan no solo la supervivencia de la empresa sino también el bienestar, tranquilidad y seguridad de los clientes que en ella confían.', nosotros2='En la actualidad estamos implicados en la venta de más de 2000 viviendas en urbanizaciones de lujo y ensueño en primera línea de playa en las costas del mediterráneo marroquí, amén de otros Mercados de Inversión Emergentes y Seguros que pronto estarán a su disposición en esta misma pagina.', nosotros3='Tenemos la esperanza de que nos conceda la oportunidad de servirle con nuestros conocimientos del mercado internacional con el fin de incrementar su 'portfolio' de propiedades con algo que sea realmente no solo una inversión más, sino aquello que provoque que usted se lo cuente a sus amigos, por lo que le abrimos la puerta para que contacte con nosotros. Y nos recomiende a sus conocidos.', activo=False, orden=1 Where cod_nosotros='1'

O sea, el texto que está en la base. No lo modifica ni lo guarda, Simplemente se queda aquí.

De nuevo digo que cuando lo que hecho con dos campos (nosotros1 y nosotros2) va perfecto, pero al añadir un nosotros3 se me atasca en medio del proceso y no hay manera.
  #6 (permalink)  
Antiguo 03/03/2008, 08:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Hola GUW fijate en esto como ejemplo

incrementar su 'portfolio' de propiedades con algo que sea realmente no solo una
Vuelve a repetirlo el proceso hasta que no quede ninguna comilla simple.

Por otro lado si quieres mantener las comillas codificalas con escape cuando recoges los valores

nosotros1 = escape(request.Form("nosotros1"))

para decodificarla usa unescape
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 03/03/2008, 09:00
GUW
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 17 años, 11 meses
Puntos: 1
De acuerdo Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Sí, señor.

Imaginaba que las comillas simples podían ser el problema, porque era justo el texto que me devolvía el servidor, pero no lo había tocado pensando que erauna tontería. Está claro que aquí cualquier detalle es importante.

Muchas gracias y un saludo.
Hoy podré dormir tranquilo.
  #8 (permalink)  
Antiguo 03/03/2008, 12:13
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

oki, lo que se te indico era eso, suspender el insert y mostrar el texto que estas tratando de insertar

por eso era el response.end para terminra el proceso y mostrar el insert

ahora quita el
response.end y la comilla de el
'Base.Execute SQL


suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 22/04/2008, 08:13
 
Fecha de Ingreso: agosto-2005
Mensajes: 34
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Hola a todos!!!

tengo un error al hacer una consulta a una Base de Datos en Access, antes me funcionaba pero cambié el servidor de IIS 5.0 a IIS 6.0 y me ha arrojado multiples errores que he ido solventando, pero a este error no le encuentro solución!!! les muestro el error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador] ODBC Microsoft Access] Error de sintaxis en la fecha en la expresión de consulta :

SELECT n_cuenta, cedula, n_cheque, monto_cheque, nombre_com, telefono_com, fecha, hora FROM conformacion WHERE flg = 0 AND fecha BETWEEN #"&Session("fec_ini")&"# AND #"&Session("fec_fin")&"# AND ((fecha = #"&Session("fec_ini")&"# AND hora > #"&hora&"#) OR (fecha = #"&Session("fec_fin")&"# AND hora < #"&hora&"#))"

antes me funcionaba bien pero ahora me arroja estos errores???

alguien tiene alguna sugerencia???
  #10 (permalink)  
Antiguo 22/04/2008, 08:33
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

lo que hace el response.write y response.end es mostrarr tu sentencia sql para poder hacer una prueba de verificación de errores, por eso es que no se inserta en la base de datos. es un modo de depuración

por simple inspección yo veo esto.

Cita:
Iniciado por GUW Ver Mensaje
... nosotros3='Tenemos la esperanza de que nos conceda la oportunidad de servirle con nuestros conocimientos del mercado internacional con el fin de incrementar su 'portfolio' de propiedades con algo que sea realmente no solo una inversión más, sino aquello que provoque que usted se lo cuente a sus amigos, por lo que le abrimos la puerta para que contacte con nosotros. Y nos recomiende a sus conocidos.', activo=False, orden=1 Where cod_nosotros='1'
...
creo que las comillas simples de esa palabra te estan truncando el SQL, prueba quitando las, reemplaza todas tus comillas simples en los textos y veras si te deja hacer la inserción.

Suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
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 19:37.