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

Problema conector ODBC

Estas en el tema de Problema conector ODBC en el foro de ASP Clásico en Foros del Web. Hola, Estoy haciendo una aplicación web con asp que consulta una BD Oracle en la cual funciona Remedy 7 (conector AR System) el código es ...
  #1 (permalink)  
Antiguo 20/05/2010, 10:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Problema conector ODBC

Hola,

Estoy haciendo una aplicación web con asp que consulta una BD Oracle en la cual funciona Remedy 7 (conector AR System) el código es el siguiente y no me da ningún error, pero el problema que tengo es que la consula no devuelve datos (y existen porque desde un Query funciona perfectamente)

Mi problema está que "consultaSQL" no devuelve datos, alguien me puede echar un cable??

*************************

Dim conexion, rsTabla

'creamos un objeto de tipo "connection" para la
'conexión con el origen de datos ODBC
set conexion = Server.CreateObject("ADODB.Connection")

'nos conectamos al origen de datos ODBC "bdoracle"
conexion.Open "REMEDY"

'creamos un objeto de tipo "recordset" (tabla)
Set rsTabla = Server.CreateObject("ADODB.Recordset")

consultaSQL ="SELECT ""Incident Number"" FROM ""HPD:Help Desk"" where ""Remedy Login ID"" = 'apozo1' and ""Status"" <> 'Closed' and ""Status"" <> 'Resolved'"

'asignamos al objeto "rsTabla" el resultado de la ejecución de la consulta SQL
rsTabla.Open consultaSQL, conexion, 1

'Recorremos todos los registros del objeto recordset y mostramos su valor
while not rstabla.eof
codigo = rstabla("Incident Number")
Response.Write "<b>Código: </b> " & codigo & "<br>"
rstabla.MoveNext
wend

**************************************
  #2 (permalink)  
Antiguo 20/05/2010, 11:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Hola

Haz una prueba de escritorio y veras cual es el problema

Cita:
consultaSQL ="SELECT ""Incident Number"" FROM ""HPD:Help Desk"" where ""Remedy Login ID"" = 'apozo1' and ""Status"" <> 'Closed' and ""Status"" <> 'Resolved'"
Respose.Write consultaSQL
Response.End()
Suere
__________________
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 20/05/2010, 14:53
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

SI digo que me escriba "consultaSQL" lo hace tal y como tiene que ser, el problema es que no debe devolver nada y no se por qué

Salu2
  #4 (permalink)  
Antiguo 20/05/2010, 15:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Hola

Muéstranos que te imprime. Por que seguro que sobran comillas, por ejemplo cuando haces referencia a la tabla, Incident Number no puede ser una variable, etc...

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;" />
  #5 (permalink)  
Antiguo 20/05/2010, 16:21
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

Esto es lo que imprime:

SELECT "Incident Number" FROM "HPD:Help Desk" where "Remedy Login ID" = 'apozo1' and "Status" <> 'Closed' and "Status" <> 'Resolved'

Si la copio y ejecuto en un herramienta query tool usando ODBC me funciona sin problema, por eso en ASP tengo que ponerle dobles comillas a los campos para que no me de error.
  #6 (permalink)  
Antiguo 21/05/2010, 05:28
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Cita:
Iniciado por parrao19 Ver Mensaje
Esto es lo que imprime:

SELECT "Incident Number" FROM "HPD:Help Desk" where "Remedy Login ID" = 'apozo1' and "Status" <> 'Closed' and "Status" <> 'Resolved'

Si la copio y ejecuto en un herramienta query tool usando ODBC me funciona sin problema, por eso en ASP tengo que ponerle dobles comillas a los campos para que no me de error.
Entonces abandono, Oracle será así y no veo ningún otro problema

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 21/05/2010, 05:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

He probado con este código y tampoco:

************************************************** ***

Dim conexion, rsTabla

set conexion = Server.CreateObject("ADODB.Connection")

conexion.Open "DSN=REMEDY"

Set rsTabla = Server.CreateObject("ADODB.Recordset")

consultaSQL = ""
consultaSQL = consultaSQL & "SELECT HPD_Help_Desk.Incident_Number"
consultaSQL = consultaSQL & " FROM HPD_Help_Desk HPD_Help_Desk"
consultaSQL = consultaSQL & " WHERE (HPD_Help_Desk.Incident_Number='INC000002161971')"

rsTabla.Open consultaSQL, conexion, 1

while not rstabla.eof
codigo = rstabla("Incident_Number")
Response.Write "<b>Código: </b> " & codigo & "<br>"
rstabla.MoveNext
wend

************************************************** ***

El problema está en "codigo = rstabla("Incident_Number")"

El error es:


Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[AR System ODBC Driver]Driver not capable
  #8 (permalink)  
Antiguo 21/05/2010, 06:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Hola

Inténtalo así
Cita:
consultaSQL = "SELECT HPD_Help_Desk.Incident_Number"
consultaSQL = consultaSQL & " FROM HPD_Help_Desk"
consultaSQL = consultaSQL & " WHERE (HPD_Help_Desk.Incident_Number='INC000002161971')"
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;" />
  #9 (permalink)  
Antiguo 24/05/2010, 04:01
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

Nada de nada, igual.

Yo creo que la query la hace bien pero el problema está en como tratar los datos obtenidos... pero no se, me pierdo y desesperao un poco jeje
  #10 (permalink)  
Antiguo 24/05/2010, 11:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Hola

Vamos a cambiar esto

Código ASP:
Ver original
  1. rsTabla.Open consultaSQL, conexion, 1
  2.  
  3. while not rstabla.eof
  4. codigo = rstabla("Incident_Number")
  5. Response.Write "<b>Código: </b> " & codigo & "<br>"
  6. rstabla.MoveNext
  7. wend

por esto otro

Código ASP:
Ver original
  1. set rsTabla = conexion.Execute(consultaSQL)
  2.  
  3. If rsTabla.eof = True or rsTabla.bof = True then
  4. Response.Write "No se ha traido ning&oacute;n registro"
  5. Else
  6. ' Recogemos los registros
  7. registros = rsTabla.getrows()
  8.  
  9. 'Cerramos conexión
  10. End If
  11.  
  12. For i = 0 to UBound(registros,2)-1
  13. Response.Write "<b>Código: </b> " & registros(0,i) & "<br>"
  14. Next 'i

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;" />
  #11 (permalink)  
Antiguo 25/05/2010, 01:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

Lo he probado y me dice que no tiene ningun registro... pero sin embargo la consulta desde MSQuery o Excel devuelve datos.

A veces me desespera... porque veo que "todo está bien" pero hay algo que falla :(
  #12 (permalink)  
Antiguo 25/05/2010, 03:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Problema conector ODBC

Hola

Entonces el problema ha de estar en la consulta. No es un error de sintaxis, sino que tal vez el valor de la variante de comparación no sea el que tu crees

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;" />
  #13 (permalink)  
Antiguo 25/05/2010, 08:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

No se si sonará este error:

Microsoft OLE DB Provider for ODBC Drivers error '80020009'

[AR System ODBC Driver]Driver not capable

[file.asp], line 0
  #14 (permalink)  
Antiguo 25/05/2010, 09:01
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Respuesta: Problema conector ODBC

Si te funciona en el TOA por ejemplo y no en ASP, no hay de otra, el problema es que ODBC que estas utilizando. Ve si puedes utilizar otro conector o actualizarlo.

Solo una nota que no se si tenga que ver o no, hace ya mucho tiempo tuve que trabajar con Oracle y JSP e inmediatamente me encontré con el problema de que mis consultas no marcaban error pero aparentemente estaban vacías, leyendo la web de java.sun encontré que los conectores JDBC que estaba usando al abrir un recordSet colocaba el puntero en el BOF, entonces para acceder a los registros tenía que hacer un .MoveFirst.

Quizá el conector que usas tiene un comportamiento similar, aunque lo descarto a primera instancia por que dices que una consulta con MSQuery usando el mismo conector te regresa datos (¿no te deja una fila vacía?)

Interesante tu problema, pero casi seguro que el problema es por el conector, además cuando trabajé con Oracle y ASP no tuve que entrecomillar los campos, eso también creo es una particularidad del conector .
  #15 (permalink)  
Antiguo 25/05/2010, 09:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

Puede que esté en el conector... ya me desespera y buffff
He probado este otro código sin comillas y na de na, voy a probar lo que me dices de movefirst. Me mosquea mucho que usando mismo ODBC para excel y ASP en uno funciona y en otro no.

************************************************** *********************************
Dim conexion, rsTabla

set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "DSN=REMEDY"
Set rsTabla = Server.CreateObject("ADODB.Recordset")
consultaSQL = "SELECT * FROM HPD_Help_Desk WHERE (HPD_Help_Desk.Incident_Number='INC000002161971')"
set rsTabla = conexion.Execute(consultaSQL)

response.write rsTabla ("Status")

************************************************** *********************************



The error is:

Microsoft OLE DB Provider for ODBC Drivers error '80020009'

[AR System ODBC Driver]Driver not capable

[file.asp], line 0
  #16 (permalink)  
Antiguo 25/05/2010, 10:09
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

A ver si esto puede ayudarnos entre todos...

he realizado un recordcount de la consulta, y me devuelve -1
  #17 (permalink)  
Antiguo 25/05/2010, 10:32
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Respuesta: Problema conector ODBC

Bueno, eso es por que no estas usando el cerrojo adecuado para que obtengas los registros. Para ello deberías usar, por ejemplo, el valor de adOpenStatic en cursorType.

Buscando algo referente a tu problema encontré esto:

Cita:
SYMPTOMS

When attempting to enlist in a distributed transaction by using either the Microsoft ODBC for Oracle or the Microsoft OLE DB Provider for Oracle, the following error message occurs:
Driver not capable.

CAUSE

The Microsoft ODBC for Oracle driver and Microsoft OLE DB Provider for Oracle use the Mtxoci.dll file to communicate with the OCI layer of Oracle. The version of Mtxoci.dll that is provided with Microsoft Data Access Components (MDAC) 2.5 or later requires full security access to the registry keys for the Oracle client DLLs. If the MDAC client does not have full access to these keys, the MDAC client defaults to using the Oracle 7.x client DLLs. If Mtxoci.dll cannot find the proper Oracle library DLLs, it unloads itself and the Microsoft Oracle drivers default to using the Ociw32.dll file directly. If Mtxoci.dll is not loaded, you can access normal Oracle database functionality through the Ociw32.dll file, but extended functionality, such as distributed transactions, is disabled.

RESOLUTION

Because Microsoft Windows 95 and Microsoft Windows 98 do not have security settings on the registry keys, this problem does not affect Microsoft Windows 95 or Microsoft Windows 98-based computers. On Microsoft Windows NT and Microsoft Windows 2000-based computers, use the Regedt32.exe tool to set permissions on the appropriate keys (grant Everyone full permissions, or grant full permissions to restricted users such as the System account). Refer to the "More Information" section on which keys are affected.
Como puedes ver, aunque la información es vieja, apoya la teoría del problema entre el conector y el ADO

¿Puedes actualizar el controlador?
¿Tienes la versión 2.8 de ADO?
Revisa las llaves del registro y verifica lo que en el artículo siguiere
  #18 (permalink)  
Antiguo 26/05/2010, 01:47
 
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema conector ODBC

El controlador no se si puedo actualizarlo, se instala con el programa Remedy (version 7.0)
EL MDAC que tengo instalado es 2.82

Voy a ver que investigo durante el dia de hoy.

Gracias por la ayuda prestada, no me desmoralizo jejeje
  #19 (permalink)  
Antiguo 26/05/2010, 07:02
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Respuesta: Problema conector ODBC

No dejes de checar lo del registro de Windows: use the Regedt32.exe tool to set permissions on the appropriate keys (grant Everyone full permissions, or grant full permissions to restricted users such as the System account)

Etiquetas: conector, odbc
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 03:48.