DAO 是创建查询的途径吗
Is DAO the Route To Go For Query Creation
这对我来说似乎有点鲁棒(并且需要一些时间才能完成)是否有更快的方法来使用 C#
创建访问查询?这是我一直在使用的代码:
DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
var qd8 = new DAO.QueryDef();
String queryName = String.Format("SELECT Count(*) from table14");
string path = @"E:\Databases\database123.mdb";
dd = db.OpenDatabase(path);
qd8.Name = String.Format("Total_Count");
qd8.SQL = String.Format(queryName);
dd.QueryDefs.Append(qd8);
你可以执行这个 CREATE VIEW Statement:
CREATE VIEW Total_Count AS SELECT Count(*) FROM table14
如果您尝试从 DAO 执行它,Access 将抛出语法错误。所以改为从 OleDb 连接执行它。
但是,我不确定这种方法是否会明显快于您当前的代码。
"faster" 对您来说意味着什么?
我在我的测试数据库中运行这个:
DAO.DBEngine de = new DAO.DBEngine();
DAO.Database dd;
DAO.QueryDef qd8 = new DAO.QueryDef();
string path = @"c:\test\testdb.mdb";
string queryName = @"TotalCountX";
string querySql = @"Select Count(*) From TableOne";
dd = de.OpenDatabase(path);
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
执行时间为 85 毫秒。
添加两个查询:
DAO.DBEngine de = new DAO.DBEngine();
DAO.Database dd;
DAO.QueryDef qd8 = new DAO.QueryDef();
string path = @"c:\test\testdb.mdb";
string queryName = @"TotalCountY";
string querySql = @"Select Count(*) From TableOne";
dd = de.OpenDatabase(path);
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
qd8 = new DAO.QueryDef();
queryName = @"TotalCountZ";
querySql = @"Select Count(*) From TableTwo";
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
执行时间为 89 毫秒,因此添加一个查询大约需要 4 毫秒。
您的要求是什么?
这对我来说似乎有点鲁棒(并且需要一些时间才能完成)是否有更快的方法来使用 C#
创建访问查询?这是我一直在使用的代码:
DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
var qd8 = new DAO.QueryDef();
String queryName = String.Format("SELECT Count(*) from table14");
string path = @"E:\Databases\database123.mdb";
dd = db.OpenDatabase(path);
qd8.Name = String.Format("Total_Count");
qd8.SQL = String.Format(queryName);
dd.QueryDefs.Append(qd8);
你可以执行这个 CREATE VIEW Statement:
CREATE VIEW Total_Count AS SELECT Count(*) FROM table14
如果您尝试从 DAO 执行它,Access 将抛出语法错误。所以改为从 OleDb 连接执行它。
但是,我不确定这种方法是否会明显快于您当前的代码。
"faster" 对您来说意味着什么?
我在我的测试数据库中运行这个:
DAO.DBEngine de = new DAO.DBEngine();
DAO.Database dd;
DAO.QueryDef qd8 = new DAO.QueryDef();
string path = @"c:\test\testdb.mdb";
string queryName = @"TotalCountX";
string querySql = @"Select Count(*) From TableOne";
dd = de.OpenDatabase(path);
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
执行时间为 85 毫秒。
添加两个查询:
DAO.DBEngine de = new DAO.DBEngine();
DAO.Database dd;
DAO.QueryDef qd8 = new DAO.QueryDef();
string path = @"c:\test\testdb.mdb";
string queryName = @"TotalCountY";
string querySql = @"Select Count(*) From TableOne";
dd = de.OpenDatabase(path);
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
qd8 = new DAO.QueryDef();
queryName = @"TotalCountZ";
querySql = @"Select Count(*) From TableTwo";
qd8.Name = queryName;
qd8.SQL = querySql;
dd.QueryDefs.Append(qd8);
执行时间为 89 毫秒,因此添加一个查询大约需要 4 毫秒。
您的要求是什么?