我正在使用Microsoft Access(而不是SQL Server),并且已经编写了一个存储过程(Query),如下面的SQL所示。SQL存储过程,其中要查询的数据库是参数
此过程可行,但它依赖于从中拉出(SELECT)数据的数据库的硬编码路径。
为了使查询更有用我想将数据库作为参数传递给查询 - 如何做到这一点?
INSERT INTO Part_Batteries (ItemCode, Size, Voltage)
SELECT tblBatteries.ItemCode, tblBatteries.SizeAH, tblBatteries.Voltage
FROM tblBatteries IN 'C:\Databases\DeviceDatabases\UKDevices.mdb';
I.e.我想要的东西来代替行
FROM tblBatteries IN 'C:\Databases\DeviceDatabases\UKDevices.mdb';
这样
FROM tblBatteries IN @DB
目前,我在访问他们,可以按一下测试程序或通过从VB模块调用它们。
当我满意他们的工作时,我会根据需要从将使用C#构建的主应用程序调用它们。
在此先感谢。
你试过顶部声明变量是否奏效?看起来它应该工作,路径是一个字符串,大多数字符串可以很容易地被变量替换。 – Gertjan 2010-07-01 10:45:13
如果您使用MS Access中的VB环境创建SP检查,是否有帮助> http://support.microsoft.com/?kbid=202116 – potatopeelings 2010-07-01 10:50:44
“我正在使用Microsoft Access和SQL,并且...” - 你在使用SQL Server吗?目前至少有一个答案认为你是。我知道在ANSI-92查询模式下Access数据库引擎支持'CREATE PROCEDURE'语法,但是当你将结果数据库对象称为'存储过程'时,许多人会发生异常。无论如何,我几乎可以肯定的是.mdb文件的路径不能在Access数据库引擎SQL中参数化。 – onedaywhen 2010-07-01 11:13:44