Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

El nombre de objeto 'nombre_tabla' no es válido

Estas en el tema de El nombre de objeto 'nombre_tabla' no es válido en el foro de SQL Server en Foros del Web. Hola a todos. Me trabe con algo que no puedo salir. Desde de una página desarrollada en ASP intento acceder a los datos de una ...
  #1 (permalink)  
Antiguo 28/02/2006, 07:26
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 2 meses
Puntos: 1
El nombre de objeto 'nombre_tabla' no es válido

Hola a todos.

Me trabe con algo que no puedo salir.
Desde de una página desarrollada en ASP intento acceder a los datos de una tabla desde un procedimiento almacenado, pero me tira el error "[Microsoft][ODBC SQL Server Driver][SQL Server]El nombre de objeto 'nombre_tabla' no es válido". Si hago la prueba desde el Analizador de consultas de SQL tambien me genera el mismo error.
El procedimiento tiene mas ó menos la siguiente estructura:

SELECT TOP 1 camp1, camp2, camp3 FROM nombre_tabla .......

Si hago directamente la consulta desde la pagina sin utilizar el procedimiento almacenado, funciona perfectamente.
Como la tabla 'nombre_tabla' tiene como propietario a 'propietario', hice el siguiente cambio

SELECT TOP 1 camp1, camp2, camp3 FROM propietario.nombre_tabla .......


Hago la prueba desde el Analizador de consultas de SQL, funciona perfectamente, pero desde la página no funciona.

¿Qué es lo que está pasando?

Espero no haberlos mareado. No soy muy bueno explicando.

A los moderadores:
Si consideran que este tema debe estar en el foro de ASP por favor hagan el cambio. Personalmente creo que encaja mejor en este foro.


Muchas gracias.
  #2 (permalink)  
Antiguo 28/02/2006, 16:04
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
nombre_tabla debe ser un nombre fijo y real. No puedes usar nombre_tabla (@nombre_tabla en realidad) como una variable buscando algo como seleccionar de diferentes tablas según corresponda.

¿El usuario que corre en ASP tiene permisos sobre el SP o tabla sobre la que se hace la sentencia?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 01/03/2006, 04:21
Avatar de PMP
PMP
 
Fecha de Ingreso: febrero-2003
Ubicación: Chacabuco - Buenos Aires
Mensajes: 214
Antigüedad: 21 años, 2 meses
Puntos: 1
Mithrandir, muchas gracias por intentar ayudarme.
En realidad luego de ingresar este tema en el foro, solo me dí cuenta donde estaba el error, y mirá que me perdí varias horas en descubrirlo. Intenté eliminar este tema para que nadie pierda tiempo en tratar de resolver mi problema, pero no pude.

El problema era mas sencillo de lo que pensaba, a mi muchas veces me pasa que me trabo con algo y no puedo salir entonces lo dejo para otro momento y generalmente lo resuelvo.

En el mismo procedimiento almacenado hace referencia dos veces a la misma tabla y solo en una de ellas había puesto "propietario.nombre_tabla"

Muchas gracias por todo.
  #4 (permalink)  
Antiguo 10/03/2010, 09:11
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: El nombre de objeto 'nombre_tabla' no es válido

Holas lei tu problema y a mi me pasa algo similar Hice una interfaz en Netbeans 6.8 usando SQLServer 2000 y lo que deseo hacer es ke cuando selecciono el jComboBox A (donde estan las areas de un hospital) me salga en el jComboBox B los empleados que trabajam en dicha area y al momento de correr me sale el mensaje:
El nombre del objeto 'contrato' no es valido
'contrato' es una tabla de mi base de datos
en tu respuesta no entiendo a ke te refieres con procedimeinto almacenado por favor ayudamen son varios dias ke tengo este problema y no puedo avanzar en mi trabajo
aki les envio el codigo.

private void formWindowOpened(java.awt.event.WindowEvent evt) {

JOptionPane mensaje = new JOptionPane();
Connection ocn = null;
Statement consulta = null;
ResultSet lector = null;

try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
}
catch(Exception err)
{
mensaje.showMessageDialog(this, err.getMessage(), "ficha 01", JOptionPane.ERROR_MESSAGE);
}

try
{
ocn = DriverManager.getConnection("jdbc:sqlserver://CESAR;databasename=PrimeraPractica01", "sa", "sa");
consulta = ocn.createStatement(ResultSet.TYPE_SCROLL_SENSITIV E, ResultSet.CONCUR_READ_ONLY);
lector = consulta.executeQuery("select descripcion from areas group by descripcion order by descripcion");
while(lector.next())
{
this.area.addItem(lector.getString(1));
}
//this.area.setSelectedIndex(0);

this.sexo.addItem("MASCULINO");
this.sexo.addItem("FEMENINO");

this.gradoInst.addItem("PRIMARIA");
this.gradoInst.addItem("SECUNDARIA");
this.gradoInst.addItem("SUPERIOR");
this.gradoInst.addItem("OTRO");

this.cargarData();
lector.close();
ocn.close();
}
catch(Exception err)
{
mensaje.showMessageDialog(this, err.getMessage(), "ficha 02", JOptionPane.ERROR_MESSAGE);
}
}

private void areaActionPerformed(java.awt.event.ActionEvent evt) {

JOptionPane mensaje = new JOptionPane();
Connection ocn = null;
Statement consulta = null;
ResultSet lector1 = null;

try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
}
catch(Exception err)
{
mensaje.showMessageDialog(this, err.getMessage(), "Departamento08", JOptionPane.ERROR_MESSAGE);
}

try
{
this.empleado.removeAllItems();

ocn = DriverManager.getConnection("jdbc:sqlserver://CESAR:1433; databasename=Clas02", "sa", "sa");
consulta = ocn.createStatement(ResultSet.TYPE_SCROLL_SENSITIV E, ResultSet.CONCUR_READ_ONLY);
lector1 = consulta.executeQuery("select e.apellidos from empleado as e, contrato as c, areas as a where e.empleado=c.empleado and c.areas=a.areas and a.descripcion = '" + this.area.getSelectedItem() + "' group by apellidos");
//lector1 = consulta.executeQuery("select e.apellidos,e.nombre from contrato c join empleado e on e.empleado=c.empleado join areas a on a.areas = c.areas where a.descripcion='" + this.area.getSelectedItem() + "'");

while(lector1.next())
{
this.empleado.addItem(lector1.getString(1));
}
//this.empleado.setSelectedIndex(0);

lector1.close();
ocn.close();
}
catch(Exception err)
{
mensaje.showMessageDialog(this, err.getMessage(), "Sistema Departamento 09", JOptionPane.ERROR_MESSAGE);
}
}
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 21:56.