2010-08-16 61 views
0

我想知道是否可以使用DAAB参数调用MS Access存储查询。使用DAAB调用MS Access存储查询参数使用DAAB v5.0

我使用Northwind示例数据库来测试这种情况下我已经创建了参数以下存储的查询在MS Access:

PARAMETERS FirstName Text (255); 
SELECT Employees.ID 
FROM Employees 
WHERE (((Employees.[First Name])=[@FirstName])); 

此查询存储与名称:GetEmployeeIDByName

我创建DAAB包装器允许访问各种数据库,如SQL,Oracle,任何OLEDB和ODBC数据库。

下面是我的测试示例代码:

Database db = new GenericDatabase("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Database\Access\Northwind 20071.accdb",OleDbFactory.Instance); 

DbCommand cmd = db.GetStoredProcedure("GetEmployeeIDByName"); 

db.AddInParameter(cmd,"@FirstName",DbType.String,40); 

object employeeID = db.ExecuteScalar(); 

我得到一个错误,无效操作。我不确定是否正确调用存储的查询,因为我可以调用没有任何错误参数的存储查询。

+0

@未用于Jet/ACE SQL中的参数。 – 2010-08-16 20:23:20

+0

我能解决这个问题。问题出在Northwind示例数据库上。然后,我从SQL Server中将Northwind数据库导入MS Access,并在MS Access中创建存储的查询。 下面是我与企业库DAAB团队的详细讨论: http://entlib.codeplex.com/Thread/View.aspx?ThreadId=223653 希望它有帮助。 访问不关心@字符,你可以使用或不使用@字符来调用参数。 – Manthan 2010-08-19 05:54:10

回答

0

我能够解决这个问题。问题出在Northwind示例数据库上。然后,我从SQL Server中将Northwind数据库导入MS Access,并在MS Access中创建存储的查询。以下是我与企业库DAAB团队的详细讨论:entlib.codeplex.com/Thread/View.aspx?ThreadId=223653希望它有帮助。 Access不关心可以使用或不使用@字符来调用参数的@字符。

+0

在将@用于参数的SQL方言中,@FirstName引用的参数的名称是什么?在Jet/ACE中,参数名称是@FirstName,但在使用@来描述参数的SQL方言中,参数名称不是FirstName?我是一名Access开发人员,并没有使用其他SQL方言,所以我可能只是在这里感到困惑。 – 2010-08-30 21:03:54