Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: grant for execution procedimientos SQL con parametros  (Leído 2259 veces)
0 Usuarios y 1 Visitante están viendo este tema.
aleplgr
Master
**

Prestigio: 0
Desconectado Desconectado

Título universitario: Ing informatica
Profesión: researcher
Mensajes: 2



Lenguajes:
vb .net
Bases de datos:
InterBase
« en: 14/02/2007, 06:34:34 »

Hola, me estoy conectando por ODBC a una base de datos InterBase como fuente de datos para Crystal Reports y funciona bien para todas las tablas y para las procedures SQL que no tienen parámetros, o sea que en el Asistente de Base de Datos puedo pasarlos desde Origenes de Datos Disponibles a Tablas Seleccionadas. Pero cuando quiero pasar a Tablas Seleccionadas una procedure SQL que tiene parámetros me da el error:

HY00: [INTERSOLV][ODBC InterBase driver][InterBase] Dynamic SQL Error, parameter mismatch for procedure ProcA.

Será al asignar la procedure desde la base de datos por ODBC, esto se hace con una instruccion GRANT procedure for execution, pero quizás la instruccion debe ser otra cuando la procedure tiene parámetros... puede ser esta la causa del problema? en los foros de Crystal Reports me dicen que es un problema de InterBase  :'(
En línea
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #1 en: 14/02/2007, 07:08:24 »

Bienvenido.
Me huele a problema de ODBC más que problema de Interbase o de Crystal Reports.

Por lo que pude leer de tu mensaje, no se está creando la sentencia SQL correcta para invocar ese procedimiento almacenado con al menos un parámetro.

Código:
HY00: [INTERSOLV][ODBC InterBase driver][InterBase] Dynamic SQL Error, parameter mismatch for procedure ProcA.

Tu procedimiento (ProcA) necesita el parámetro, y nunca le llega (Sentencia mal formada).
Hay alguna forma de que nos puedas mostrar (y de paso vos mismo puedas ver) la sentencia que se genera y que, valga la redundancia, genera el error?
Quizá con ese dato puedas encontrar la fuente del error.

Saludos.
En línea

aleplgr
Master
**

Prestigio: 0
Desconectado Desconectado

Título universitario: Ing informatica
Profesión: researcher
Mensajes: 2



Lenguajes:
vb .net
Bases de datos:
InterBase
« Respuesta #2 en: 14/02/2007, 07:54:10 »

Muchas gracias!!!  la conexion por ODBC no la hago yo, la persona que la hace me sugiere que este es un problema del Crystal Reports (que es lo que yo manejo)  lo que yo sé sobre la conexion ODBC es que la instrucción que utiliza para que yo pueda conectarme  al  procedimientos SQL de nombre PROCA es GRANT PROCA  FOR EXECUTION, y eso es todo, esta instruccion funciona bien cuando el PROCA no tiene parámetros,  lo que a mi me parece es que la instrucción GRANT podria recibir otros argumentos aparte del procedimiento y si es para ejecucion, debería pasarle el tipo de los parametros que recibe el procedimiento o aunque sea cuantos parametros recibe.
Pero lo unico que tengo es esa instrucción GRANT, por lo que entiendo de tu mensaje esa instruccion GRANT genera una sentencia SQL que es la que deberíamos ver, es así?
En línea
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #3 en: 14/02/2007, 08:03:40 »

No no, la instrucción GRANT da permisos de diversos tipo a diferentes usuarios o roles de la base de datos sobre diferentes entidades de la misma (entiendase por entidades, tablas, vistas, procedimientos almacenados, etc.).

Ésto que te voy a decir, consultalo con otros (porque ya no recuerdo la última vez que me conecte a algo usando ODBC, trato de usar conexiones nativas).

ODBC es una capa de abstracción que permite mediante la misma interface: la conexión, envio de consultas/sentencias y recuperación de cursores/datasets de una gran gama de bases de datos, entre ellas Interbase.
Por lo tanto ODBC tiene que intentar se genérica, y por consiguiente no implementa todas las capacidades y funcionalidades específicas de todas las bases de datos del mercado. Es por ello que ciertas sentencias de ORACLE, no pueden enviarse al servidor por ODBC sin generar un error similar al que vos estas obteniendo. Con Interbase debe suceder lo mismo.

Es un tema complicado para mi porque no tengo experiencia con ODBC, sin embargo estoy bastante seguro (no 100%) que es el propio ODBC la causa del error.

Intentá recabar la mayor cantidad de información, veremos como podemos ayudarte.

Saludos.
En línea

Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: