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
No en C #, pero puede ser un buen lugar para comenzar:
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