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. estopy haciendo una bandeja de entrada(estilo hotmail). kuando kiero listar los datos (campos de una base de datos sql server). me tira el siguiente ...
  #1 (permalink)  
Antiguo 28/02/2006, 13:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Hola.
estopy haciendo una bandeja de entrada(estilo hotmail).
kuando kiero listar los datos (campos de una base de datos sql server).
me tira el siguiente error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]El procedimiento 'Seleccionar_solicitud' precisa el parámetro '@estado', que no se ha especificado.
/consulta_abierta.asp, line 37
Lo cual no le he encontrado solucion,ya ke segun lo ke dice me pide una variable ke si la declare (tanto en el codigo de la pag komo en el procedimiento almacenado).
incluso en vez de enviar la variable @estado komo variable en si..le envie un dato...y tampoko me sirve.

ke hago?
  #2 (permalink)  
Antiguo 28/02/2006, 13:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
aki les dejo el codigo de mi pag:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Consulta Abierta</title>
<style type="text/css">
<!--
.style1 {
color: #07488F;
font-family: Geneva, Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: xx-large;
}
.style2 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style3 { font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style8 {font-size: xx-large}
-->
</style>
</head>

<body>
<!--#include file="../misitio/adovbs.inc" -->
<form>
<%
Set connection=Server.CreateObject("ADODB.Connection")
set solic = CreateObject("ADODB.Recordset")
connection.ConnectionString="Driver={SQL Server};Server=192.168.xx.xx;User Id=xx; password='xx'"
connection.Mode=3
connection.open
sql = " trabajo.dbo.seleccionar_solicitud'" & request.form("tipo") & "'" & request.form("estado") & "''"
solic.Open sql, connection,1,2

tipo = "C1"'consulta
estado = "A"'abierta%>
<div align="center">
<p>&nbsp;</p>
<p><img src="file:///C|/Documents%20and%20Settings/debora/Mis%20documentos/Mis%20imágenes/dddddddd.JPG" width="491" height="84">
</p>
<p class="style1">
<span class="style8">Consultas Abiertas </span></p>
<table width="522" border="1" align="center">
<tr>
<td width="107" bgcolor="#C6E0FD"><span class="style2">Nro Solicitud</span></td>
<td width="171" bgcolor="#C6E0FD"><span class="style2">Asunto</span></td>
<td width="90" bgcolor="#C6E0FD"><span class="style2">Urgencia</span></td>
<td width="126" bgcolor="#C6E0FD"><span class="style2">Fecha</span></td>
</tr>
</table>
<%do while not solic.eof%>
<table width="522" border="1" align="center" bordercolor="#CCCCFF">
<tr bordercolor="#CCCCFF" bgcolor="#CCCCFF">
<td width="107" bgcolor="#A5CDFA"><% response.write solic("nro_solicitud")%></td>
<td width="171" bgcolor="#A5CDFA"><a href="solicitud_abierta.asp?id_solic=<%solic("nro_ solicitud")%>">
<%solic("asunto")%></a></td>
<td width="90" bgcolor="#A5CDFA"><%response.write solic("urgencia")%></td>
<td width="126" bgcolor="#A5CDFA"><%response.write solic("ult_fecha_mod")%></td>
</tr>
</table>
<% solic.movenext
loop%>
<p class="style1">&nbsp;</p>
<p class="style1">&nbsp;</p>
<table width="200" border="0">
<tr>
<td><div align="center">
<input name="menu" type="button" onclick="location.href = 'menu_principal.asp'" class="style3" value=" Men&uacute; ">
</div></td>
</tr>
</table>
<p class="style1">&nbsp;</p>
</div>
</form>
</body>
</html>
y el del procedimeinto almacenado:
CREATE PROCEDURE Seleccionar_solicitud (
@tipo char(2), @estado char(1) ) as

select * from trabajo.dbo.solicitud
where tipo_solic = @tipo and estado = @estado
order by ult_fecha_mod
GO
  #3 (permalink)  
Antiguo 28/02/2006, 13:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
ya no solo es necesario batallar con el abuso innecesario de letras "k", sino que ahora con el colorcito que hace incomodísimo de leer.

Si cambiaras lo anterior pordría decirte que el problema que tienes es por que la variable que mandas al parámetro no tiene valor. Más detalles, cambia el color y coloca, por favor las palabras correctas.

Saludos
  #4 (permalink)  
Antiguo 28/02/2006, 13:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
es que escribo mas rapido kon las "k"...pero a pedido.
y el color....no me di cuenta ke era tan claro...en fin.
el punto es que hice un response.write a las variables que envio al procedimiento almacenado y estan llenas...
  #5 (permalink)  
Antiguo 01/03/2006, 18:59
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
a ver..... el error dice:
Cita:
[Microsoft][ODBC SQL Server Driver][SQL Server]El procedimiento 'Seleccionar_solicitud' precisa el parámetro '@estado', que no se ha especificado.
y tu tienes (supongo que esta mal pegado, claro):
Cita:
connection.opensql = " trabajo.dbo.seleccionar_solicitud'" & request.form("tipo") & "'" & request.form("estado") & "''"
solic.Open sql, connection,1,2
Te he comentado varias veces que debuguees por medio del response.write y response.end. En este caso sería:
Cita:
connection.open
sql = " trabajo.dbo.seleccionar_solicitud'" & request.form("tipo") & "'" & request.form("estado") & "''"
response.write sql
response.end
solic.Open sql, connection,1,2
Con eso hubieras visto que se formó algo más o menos así:

trabajo.dbo.seleccionar_solicitud'EsteEsElTipo'Est eEsElEstado''

Lo cual, claramente esta mal

Al ver eso, tu hubieras modificado a algo así:

Cita:
connection.open
sql = "trabajo.dbo.seleccionar_solicitud '" & request.form("tipo") & "', '" & request.form("estado") & "'"
solic.Open sql, connection,1,2
Saludos
  #6 (permalink)  
Antiguo 01/03/2006, 19:03
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Yo creo que el problema debe ser lo que te dijo Myakire
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 01/03/2006, 19:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
¿Tu tambien vas a empezar a escribir con un color tan claro que lo hace ilegible? , bueno, por lo menos no es molesto a la vista, jeje.

Saludos
  #8 (permalink)  
Antiguo 01/03/2006, 19:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Anda de malas master Myak?

Mejor vámonos al chat ja ja ja ja ja! pre-salud, es ombligo de semana
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 01/03/2006, 19:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
¡¡hijoles, ahora si te manchaste!!
  #10 (permalink)  
Antiguo 05/12/2006, 09:29
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

-----------Lo Primero

connection.opensql = " trabajo.dbo.seleccionar_solicitud'" & request.form("tipo") & "'" & request.form("estado") & "''"
solic.Open sql, connection,1,2

connection.open
-separado
sql = " trabajo.dbo.seleccionar_solicitud'" & request.form("tipo") & "'" & request.form("estado") & "''"
solic.Open sql, connection,1,2

-----------lo segundo

connection.open
sql = "select * from trabajo.dbo.seleccionar_solicitud where campo_tipo='" & request.form("tipo") & "' and campo_estado='" & request.form("estado") & "'"

solic.Open sql, connection,1,2
  #11 (permalink)  
Antiguo 05/12/2006, 09:31
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 19 años, 8 meses
Puntos: 0
y por ultimo si utilizas

solic.Open sql, connection,1,2

sql debe ser solo el nombre de tabla; ya que las opciones se utilizan directamente con la tabla

connection.open
solic.Open seleccionar_solicitud
solic.filter = "campo_tipo='" & request.form("tipo") & "' and campo_estado='" & request.form("estado") & "'"

a ver si asi te funciona
  #12 (permalink)  
Antiguo 05/12/2006, 18:03
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Ocho meses despues, pero llegó otra respuesta que no se diga que no hay espíritu colaborativo
  #13 (permalink)  
Antiguo 12/04/2007, 12:28
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Que tal estoy empezando a programar con asp y al hacer un select para enlistar mis registros me sale este error:

Microsoft OLE DB Provider for SQL Server error '80040e14'

Incorrect syntax near the keyword 'Desc'.


Si en el select pongo * me hace la consulta pero al pedirle campos especificos me manda el error.


el codigo es el siguiente:

Set Conexion = Server.CreateObject("ADODB.Connection")
conexion.open "PROVIDER=; DATA SOURCE=; UID=; PWD=; DATABASE="

deptos_sql = "Select MOD-desc from Cat_Modulos"
set RSDeptos=conexion.Execute(deptos_sql)
%>

<table align="center" width="472" border="0" cellpadding="0" cellspacing="0">
<tr>
<th width="472" height="19" valign="top">Nombre departamento</th>
</tr>
<%
do while not RSDeptos.Eof
%>
<tr>
<td><%=RSDeptos("MOD-desc")%></td>
</tr>

<%
RSDeptos.movenext
loop
Conexion.close
%>

Gracias
  #14 (permalink)  
Antiguo 12/04/2007, 15:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Qué quieres hacer con esto?

deptos_sql = "Select MOD-desc from Cat_Modulos"

Tienes un campo llamado "MOD-desc" ?
  #15 (permalink)  
Antiguo 13/04/2007, 11:10
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

Si es un campo, en otro foro de este sitio me comentaban que evitará el uso de * y solo consultará los campos especificos que necesito.

gracias
  #16 (permalink)  
Antiguo 13/04/2007, 11:42
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

aaahhh

Pues tambien evita el signo de "-" en los nombres de los campos, de hecho, evita todo aquello que no sea un carácter alfabético o numérico.

Supongo que en este caso bastará con que lo encierres entre corchetes [], pero no lo hagas de nuevo
  #17 (permalink)  
Antiguo 13/04/2007, 11:52
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

a mi me parece raro (bien raro) el nombre del campo, no suele usarse guiones medios dado a que eso puede interpretarse como una operación mas que como una columna; con eso no quiero decir que se pueda o no se pueda, particularmente nunca lo he intentado, pero de por si ya es un indicio que el motor de la b.d. pueda interpretar algo mal.

y la recomendacion de no usar el * sino enumerar las columnas es buena, el motivo es porque el motor de base de datos en cada ejecución genera estadísticas y con ello optimiza la búsqueda de los datos, al poner un select * se genera una nueva estadística por cada ejecución lo que hace que no tome una ya existente con código optimizado, eso hace que siempre tenga que ir al archivo físico a recuperar la información de manera secuencial y luego llevarla a memoria, mientras con estadísticas el motor evalúa la concurrencia, la cantidad de veces que se ejecuta y con ello ve si lo mantiene en memoria o la libera entre otras muchas cosas mas como el uso de índices para su recupero, la forma más optima de selección, etc...
  #18 (permalink)  
Antiguo 13/04/2007, 11:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

OK

Me senti como niña reganada.

Gracias

PD: Los estaré molestando con más dudas

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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:35.