Foros del Web » Programación para mayores de 30 ;) » .NET »

ERROR: cross-database references are not implemented

Estas en el tema de ERROR: cross-database references are not implemented en el foro de .NET en Foros del Web. Hola! Estoy trabajando con Visual Basic 2005 y PostgreSql con el driver ODBC oficial. Al tratar de insertar una nueva fila, obtengo el siguiente mensaje: ...
  #1 (permalink)  
Antiguo 13/03/2009, 12:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
ERROR: cross-database references are not implemented

Hola! Estoy trabajando con Visual Basic 2005 y PostgreSql con el driver ODBC oficial. Al tratar de insertar una nueva fila, obtengo el siguiente mensaje:

ERROR: cross-database references are not implemented

Aquí está el código que utilizo

Dim sel As String
sel = "SELECT * FROM ""SCHEMA1"".""CUSTOMERS"" "

Dim ds As New DataSet
Dim da As New Odbc.OdbcDataAdapter(sel, sConnectionString)
da.FillSchema(ds, SchemaType.Source, """SCHEMA1"".""CUSTOMERS""")

Dim dr As DataRow = ds.Tables("""SCHEMA1"".""CUSTOMERS""").NewRow()

dr("id_customer") = "00062"
dr("n_doc") = "9999-99999999"
dr("age") = "29"
dr("gender") = "MALE"

ds.Tables("""SCHEMA1"".""CUSTOMERS""").Rows.Add(dr )

Dim CmdBuilder As New OdbcCommandBuilder(da)

Try
da.Update(ds, """SCHEMA1"".""CUSTOMERS""") 'EN ESTA LINEA OBTENGO EL MENSAJE DE ERROR
Catch ex As Exception
MsgBox(ex.Message)
End Try


¿Por que obtengo este error y cómo puedo solucionarlo? Desde ya muchas gracias y espero que alguien me pueda ayudar ya que tengo que terminar un trabajo... gracias nuevamente
  #2 (permalink)  
Antiguo 13/03/2009, 14:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: ERROR: cross-database references are not implemented

mmm que version de postgres tienes instalada?
  #3 (permalink)  
Antiguo 16/03/2009, 05:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ERROR: cross-database references are not implemented

Que tal seyko... la versión que tengo instalada de Postgresql es la 8.1.9
  #4 (permalink)  
Antiguo 17/03/2009, 03:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: ERROR: cross-database references are not implemented

En google buscando el error tiene 87500 resultados, no tengo ni idea de que es el error pero tampoco tengo ni idea de Visual Basic

Salu2
  #5 (permalink)  
Antiguo 17/03/2009, 05:38
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
No es un error de Visual Basic.NET. El error lo tira el motor de base de datos postgres . Por la cantidad de resultados obtenidos al buscar en Google es obvio que no analicé cada uno pero los que pude ver no me sirvieron y por eso inicio un tema en este foro.

Obtengo este error cuando intento INSERTAR un nuevo registro en una tabla de postgres... ¿Por qué y cómo puedo solucionarlo? Desde ya gracias

Última edición por GatorV; 17/03/2009 a las 10:56
  #6 (permalink)  
Antiguo 17/03/2009, 08:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ERROR: cross-database references are not implemented

Estuve mirando en algunos foros y tu post anterior.
Se te cae unicamente cuando tratas de hacer un update?
Te funciona cuando haces select *from schema1.customers?
customers se encuentra en la base de datos en la que estas actualmente conectado?

Hice unas pruebas creando varios schemas y asignandole datos.
Me aparece tu error cuando trato de consultar, actualizar, insertar datos de otra base de datos a la cual no estoy conectado. Pero mientras los schemas estén debajo de la base de datos me funciona bien.

Según leí, para conectarse entre bases de datos diferentes requieres de un paquete llamado dblink.

Cita de: http://archives.postgresql.org/pgsql...1/msg00515.php
  #7 (permalink)  
Antiguo 17/03/2009, 09:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Pues lo siento nunca me ha dado ese tipo de problemas. Puede que aunque el error es de la BD, puede que estes haciendo algo mal desde Visual Basic, porque por lo que conozco sobre CROSS-TABLES, es como "darle la vuelta a una consulta" (muy mal explicado). Asi que lo unico que se me ocurre es que pruebes el codigo en Visual Basic y acotes el error y quizas te pueda ayudar.

PD: No digo que el error este en el codigo Basic, apostaria por ello, no creo que estes utilizando CROSS-TABLE, no?

Salu2

Nick, que haces?
No repitas hilos, el otro esta abierto y activo, te acabo de contestar!

Última edición por GatorV; 17/03/2009 a las 10:57
  #8 (permalink)  
Antiguo 17/03/2009, 10:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Cuando hago la consulta select *from schema1.customers funciona perfecto. El error lo tira al intentar añadir un nuevo registro. Sí, la tabla y el esquema se encuentran en la base de datos a la cual estoy conectado. Espero puedas ayudarme gracias!

No estoy utilizando cross-table. Solo necesito insertar un registro en un una tabla de la misma base de datos a la que estoy conectado.

Última edición por GatorV; 17/03/2009 a las 10:58
  #9 (permalink)  
Antiguo 18/03/2009, 09:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ERROR: cross-database references are not implemented

Que tal huesos...Todavía no puedo resolver el problema, está complicado. ¿Se solucionará el problema si pruebo con otro controlador? El problema es que los demás son de pago.
  #10 (permalink)  
Antiguo 18/03/2009, 12:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ERROR: cross-database references are not implemented

Hola nfnick

Empecemos desde cero por que esto está bien raro.

Hagamos varias pruebas:
conectate a tu base de datos: (suponiendo que se llama name_dbase)
postgres=#\c name_dbase

Crea una tabla de ejemplo sin hacer uso de schemas e inserta algo.
dbname=# create table prueba(id integer);
dbname=# insert into prueba values(10);

Si te funciona bien, el problema lo debe estar en la jerarquía del schema.

Si te inserta bien, ejecuta lo siguiente:
select schema_name from information_schema.schemata where catalog_name = 'name_dbase';

Ahí te debe aparecer en la lista 'schema1' que es el que nos está generando el problema.
Si no te aparece, es por que el schema1 está creado por fuera de la base de datos y obviamente no va a permitir realizar acciones en las tablas.

Si schema1 aparece en la tabla, ejecuta:

dbname=#select *from schema1.customers;
dbname=#insert into schema1_customers values(campos);

Si todo esto te funciona desde postgres el error lo estas teniendo desde tu código en el try cuando tratas de actualizar.
Como controlador, te recomiendo usar npgsql.dll para conectarte. Es libre, fácil y rápido.

Un saludo.

Última edición por huesos52; 19/03/2009 a las 04:07
  #11 (permalink)  
Antiguo 19/03/2009, 08:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ERROR: cross-database references are not implemented

Gracias por la ayuda. Voy a probar lo que me dijiste y te respondo enseguida cuáles fueron los resultados
  #12 (permalink)  
Antiguo 25/03/2009, 12:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ERROR: cross-database references are not implemented

Que tal huesos52.... Hice las pruebas sugeridas directamente desde postgres y funcionaron todas perfectamente. La solución fue interactuar desde .net sin usar datatables, sino directamente con las consultas sql...solucionado!!!
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 11:30.