none
Obtener las relaciones de una base de datos RRS feed

  • Pregunta

  • Hola a todos

    Estoy intentando obtener las relaciones que existen dentro de un archivo .mdb o .accdb.

    Con esta sentencia obtenemos el nombre de las tablas y de ahi obtenemos el nombre de los campos y sus propiedades

    Dim Tablas As DataTable = _
                      objConexion.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                       New Object() {Nothing, Nothing, Nothing, "TABLE"})

    pero no veo la forma de sacar la informacion de las relaciones desde Vb.net.

    La información esta dentro del archivo porque con el documentador de access nos dice el nombre de la relacion, las tablas que la forman y los campos relacionados

    ¿ Sabe alguien como se obtienen las relaciones ?

    Un saludo

    lunes, 30 de marzo de 2020 2:45

Respuestas

  • Se hace también con el GetOleDbSchemaTable, pero en lugar de pasar el parámetro "TABLE", que te devuelve un DataTable con la lista de tablas, hay que pasar un parámetro distinto para pedir las relaciones entre tablas. Creo que lo puedes sacar bien sea con "REFERENTIAL_CONSTRAINTS" o con "FOREIGN_KEYS", pero hablo de memoria, así que es preferible que te cerciores de la sintaxis exacta usando la documentación del GetOleDbSchemaTable.

    Es algo así como ...GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, null); El intellisense te dirá los valores que le puedes poner al OleDbSchemaGuid.

    • Marcado como respuesta tecatel lunes, 30 de marzo de 2020 11:43
    lunes, 30 de marzo de 2020 7:39

Todas las respuestas

  • Se hace también con el GetOleDbSchemaTable, pero en lugar de pasar el parámetro "TABLE", que te devuelve un DataTable con la lista de tablas, hay que pasar un parámetro distinto para pedir las relaciones entre tablas. Creo que lo puedes sacar bien sea con "REFERENTIAL_CONSTRAINTS" o con "FOREIGN_KEYS", pero hablo de memoria, así que es preferible que te cerciores de la sintaxis exacta usando la documentación del GetOleDbSchemaTable.

    Es algo así como ...GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, null); El intellisense te dirá los valores que le puedes poner al OleDbSchemaGuid.

    • Marcado como respuesta tecatel lunes, 30 de marzo de 2020 11:43
    lunes, 30 de marzo de 2020 7:39
  • Hola Alberto

    Muchas gracias. Conseguido

    Un saludo

    lunes, 30 de marzo de 2020 11:41