unir tabla misma eliminacion ejemplos datos consultas consulta conexion cadena actualizar actualizacion c# ms-access oledb

c# - tabla - consulta de union access



¿Cómo enumero todas las consultas en un archivo de MS Access usando OleDB en C#? (4)

Tengo un archivo de Access 2003 que contiene 200 consultas y quiero imprimir su representación en SQL. Puedo usar Design View para ver cada consulta y cortarla y pegarla en un archivo, pero eso es tedioso. Además, es posible que tenga que volver a hacer esto en otros archivos de Access, así que definitivamente quiero escribir un programa para hacerlo.

¿Dónde están las consultas almacenadas en Access db? No puedo encontrar nada que diga cómo llegar a ellos. No estoy familiarizado con Access, por lo que agradecería cualquier sugerencia. ¡Gracias!


puede juntar esto usando el método GetSchema de OleDbConnection junto con lo que Remou publicó con respecto a los esquemas ADO

Vaya, olvídate del enlace: MSDN



Los procedimientos son lo que estás buscando:

OleDbConnection conn = new OleDbConnection(connectionString); conn.Open(); DataTable queries = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Procedures, null); conn.Close();

Esto le dará una DataTable con las siguientes columnas (entre otras):

PROCEDURE_NAME: nombre de la consulta

PROCEDURE_DEFINITION: definición de SQL

Entonces puedes recorrer la tabla como sigue:

foreach(DataRow row in queries.Rows) { // Do what you want with the values here queryName = row["PROCEDURE_NAME"].ToString(); sql = row["PROCEDURE_DEFINITION"].ToString(); }


En caso de que quisiera hacer una consulta rápida a mano.

SELECT MSysObjects.Name FROM MSysObjects WHERE type = 5