Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo utilizar el método OpenSchema de ADO en Visual Basic

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 186246
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 309488.
Resumen
En este artículo se describe cómo utilizar el método OpenSchema del objeto Connection de ActiveX Data Objects (ADO) para obtener más información acerca de la base de datos o tabla.

La sintaxis de OpenSchema es la siguiente:
Establecer el conjunto de registros = connection.OpenSchema (QueryType, criterios, SchemaID debe)
Más información
Aquí son los tres parámetros del método OpenSchema:
  • Un valor enumerado que especifica el tipo del esquema necesario. Algunos ejemplos son adSchemaTables, adSchemaColumns y adSchemaPrimaryKeys.
  • Una matriz variant. El número de elementos y el contenido de esta matriz depende del tipo de consulta de esquema para ejecutar. Puede utilizar este parámetro para restringir el número de filas que devolver el conjunto de resultados. Sin embargo, no se puede limitar el número de columnas que devuelve utilizando OpenSchema. El miembro de matriz de criterios indica los valores de cadena para restringir los resultados de consulta. El número de los miembros de la matriz varía según el querytype.
  • El tercer parámetro varía en función del proveedor que utilice. Es necesario sólo si se establece el primer parámetro en adSchemaProviderSpecific; en caso contrario, no se utiliza.
A continuación son los parámetros de ejemplo para OpenSchema. Observe que los criterios se cambia con el querytype. Lo más importante que recordar es que el orden de proporcionar los valores tiene que ser el mismo. Una lista de criterios correspondientes para otros querytypes está en la documentación en pantalla ubicada en la siguiente dirección URL:
   QueryType        Criteria   =============================   adSchemaTables   TABLE_CATALOG                    TABLE_SCHEMA                    TABLE_NAME                    TABLE_TYPE				
Utilice adSchemaTables para enumerar las tablas de una base de datos.

Microsoft Access 97 y Access 2000

Para mostrar todas las tablas y consultas de la base de datos Microsoft Access NWind, simplemente utilice el siguiente código:
Set rs = cn.OpenSchema(adSchemaTables)   While Not rs.EOF      Debug.Print rs!TABLE_NAME      rs.MoveNext   Wend				
para mostrar sólo las tablas de la base de datos Access Nwind, utilice:
Set rs = cn.OpenSchema(adSchemaTables, _         Array(Empty, Empty, Empty, "Table")				
utilizar la misma sintaxis, utilizando el proveedor OLE DB para ODBC con el controlador ODBC de Jet y con los proveedores OLE DB de Jet.

Microsoft SQL Server 6.5 y 7.0

Para mostrar todas las tablas y vistas en la base de datos de Pubs de Microsoft SQL Server, utilice:
Set rs = cn.OpenSchema(adSchemaTables)				
para mostrar sólo las tablas de la base de datos Server Pubs de SQL, utilice:
Set rs = cn.OpenSchema(adSchemaTables, _         Array("Pubs", Empty, Empty, "Table")				
utilizar la misma sintaxis que utiliza el proveedor OLE DB para ODBC con el controlador ODBC de SQL Server y utiliza el proveedor OLE DB para SQL Server.
   QueryType         Criteria   ===============================   adSchemaColumns   TABLE_CATALOG                     TABLE_SCHEMA                     TABLE_NAME                     COLUMN_NAME				
utilice adSchemaColumns para enumerar los campos de una tabla.

Microsoft Access 97 y Access 2000

A la lista base de datos con adSchemaColumns, uso simplemente los campos de la tabla empleados en el acceso Nwind:
Set rs = cn.OpenSchema(adSchemaColumns,Array(Empty, Empty, "Employees")While Not rs.EOF   Debug.Print rs!COLUMN_NAME   rs.MoveNextWend				
esto funciona utilizando el proveedor OLE DB para ODBC con el controlador ODBC de Jet y con los proveedores OLE DB de Jet.

Microsoft SQL Server 6.5 y 7.0

A la lista base de datos con adSchemaColumns, uso simplemente los campos de la tabla authors en Pubs de SQL Server:
Set rs = cn.OpenSchema(adSchemaColumns, Array("pubs", "dbo", "Authors")				
nota que TABLE_CATALOG es la base de datos y TABLE_SCHEMA es propietario de la tabla. Esto funciona mediante el proveedor OLE DB para ODBC con ODBC de SQL Server controlador y mediante el proveedor OLE DB para SQL Server.
   QueryType          Criteria   ================================   adSchemaIndexes    TABLE_CATALOG                      TABLE_SCHEMA                      INDEX_NAME                      TYPE                      TABLE_NAME				
debe proporcionar el nombre de índice en caso de querytype adSchemaIndexes.

Microsoft Access 97 y Access 2000

A lista de los índices de la tabla empleados en la Nwind acceso base de datos con adSchemaIndexes, uso simplemente:
Set rs = cn.OpenSchema(adSchemaIndexes, _         Array(Empty, Empty, Empty, Empty, "Employees")While Not rs.EOF   Debug.Print rs!INDEX_NAME   rs.MoveNextWend				
esto funciona utilizando el proveedor OLE DB para ODBC con el controlador ODBC de Jet y con los proveedores OLE DB de Jet.

Microsoft SQL Server 6.5 y 7.0

A la lista base de datos con adSchemaIndexes, uso simplemente los índices en la tabla authors en Pubs de SQL Server:
Set rs = cn.OpenSchema(adSchemaIndexes, _         Array("Pubs", "dbo", Empty, Empty, "Authors")				
esto funciona mediante el proveedor OLE DB para ODBC con ODBC de SQL Server controlador y mediante el proveedor OLE DB para SQL Server. Los pasos siguientes muestran el método OpenSchema.

Ejemplo del método OpenSchema

En Visual Basic (VB), seleccione un proyecto EXE estándar. Agregue tres botones de comando al proyecto EXE. En el menú proyecto , elija referencias . En el cuadro de diálogo referencias, seleccione Biblioteca de objetos de Microsoft ActiveX . Este ejemplo utiliza la base de datos pubs se suministra con SQL Server. Tiene que cambiar el nombre del origen de datos (DSN) a un DSN en el equipo. Pegue el código siguiente en la sección Declaraciones generales del proyecto:

Nota Tendrá que cambiar el UID = <username> y PWD = < contraseña > a los valores correctos antes de ejecutar este código. Asegúrese de que UID tiene los permisos adecuados realizar esta operación en la base de datos.
   'Open the proper connection.   Dim cn As New ADODB.Connection   Dim rs As New ADODB.Recordset   Private Sub Command1_Click()   'Getting the information about the columns in a particular table.      Set rs = cn.OpenSchema(adSchemaColumns, Array("pubs", "dbo", _             "authors"))      While Not rs.EOF          Debug.Print rs!COLUMN_NAME          rs.MoveNext      Wend   End Sub   Private Sub Command2_Click()   'Getting the information about the primary key for a table.      Set rs = cn.OpenSchema(adSchemaPrimaryKeys, Array("pubs", "dbo", _             "authors"))      MsgBox rs!COLUMN_NAME   End Sub   Private Sub Command3_Click()   'Getting the information about all the tables.      Dim criteria(3) As Variant      criteria(0) = "pubs"      criteria(1) = Empty      criteria(2) = Empty      criteria(3) = "table"      Set rs = cn.OpenSchema(adSchemaTables, criteria)      While Not rs.EOF         Debug.Print rs!TABLE_NAME         rs.MoveNext      Wend   End Sub   Private Sub Form_Load()      cn.Open "dsn=pubs;uid=<username>;pwd=<strong password>;"      'To test with the Native Provider for SQL Server, comment the      ' line above then uncomment the following line. Modify to use      ' your server.      'cn.Open "Provider=SQLOLEDB;Data Source=<servername>;" & _      '        "User ID=sa;password=;"   End Sub				
Run. Haga clic en cada botón de comando para probar. End.Modify el procedimiento de evento Form Load para utilizar el proveedor nativo para SQL Server. Vuelva a probar. Obtener más información sobre querytype y criterios está disponible en la documentación de ADO. La información de esquema especificada en OLE DB se basa en el supuesto de que el proveedor admite el concepto de un catálogo y el esquema.
Referencias
Para obtener más información en OpenSchema, vea los artículos siguientes en Microsoft Knowledge Base:
182831Cómo para utilizar el método de OpenSchema de ADO de Visual C++
185979Cómo utilizar ADO para recuperar información de índice de tabla
adoobj

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 186246 - Última revisión: 12/04/2007 03:44:52 - Revisión: 5.6

Microsoft ActiveX Data Objects 1.5, Microsoft ActiveX Data Objects 2.0, Microsoft ActiveX Data Objects 2.1 Service Pack 2, Microsoft ActiveX Data Objects 2.5, Microsoft ActiveX Data Objects 2.6, Microsoft ActiveX Data Objects 2.7, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbmt kbdatabase kbhowto kbjet kbprovider KB186246 KbMtes
Comentarios
pendChild(m);