ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
پروسیجور یا دستورالعمل ذخیره شده در Sql که می توان در هر جا مورد استفاده قرار داد.
در زیر پروسیجور SelectAllCustomers با پارامترهایی تعریف شده
از لینک بالا کپی شد یک store procedure به نام GetCarDesx_Para که پارامتری بنام CID را میگیرید و در Select کوئری که جوین شده است قرار داده و خروجی می دهد.
با دستور insert into داده ها را به فیلدهای ساخته شده (با Create table ) اضافه نموده.
SELECT * FROM Car;
ایجاد جدول CarDescription با Create Table و اضافه کردن داده به فیلدهای آن با دستور insert into
SELECT * FROM CarDescription;
در زیر store procedure با نام GetCarDesc تعریف شده و با EXEC فراخوانی شده مشخص است که این پروسیجور Description را بر اساس CarID در کنار فیلدهای جدول Car نمایش می دهد.
EXEC GetCarDesc;
در عبارت Sql زیر دو جدول را بهم جوین کرده یکی جدول کار با Alias یا مستعار C و دیگری CD بطوریکه داده ی فیلد CarID این دو جدول با هم مطابقت داشته باشند ( اگه تکست باشه حتی یک space اضافی باعث عدم تطابق خواهد شد ، پس فقط رکوردهایی که دارای دو داده مشابه باشند می آید مثل A اشتراک B که مشترک ها خروجیست ) و در آخر گفته این پروسیجور پارامتر با فیلد CarID مورد تطابق قرار گیرد یعنی اگر پیدا کرد لیست کند در جدول
CREATE PROCEDURE GetCarDesc_Para (@CID INT)
As
BEGIN
SET NOCOUNT ON
SELECT C.CarID,C.CarName,CD.CarDescription FROM
Car C
INNER JOIN CarDescription CD ON C.CarID=CD.CarID
WHERE C.CarID=@CID
END
To execute it :
EXEC GetCarDesc_Para 201;
Using Store Procedure In Access ( ADO )
calling-a-stored-procedure-with-a-command
You can use Access as a front-end application and then link to tables in a back-end server, such as SQL Server
لینک زیر : می توان از Access بعنوان یک برنامه front-end استفاده نمود و سپس پیوندی به جداول در سرور back-end مثل sql server زد.
برای اجرای store procedure ساخته شده می توان استفاده نمود لینک زیر داکیومنت آفیس
vba/api/access.docmd.openstoredprocedure
در کد زیر یک کوئری موقت یا Temporary در دیتابیس اکسس ایجادشده و بعد کانکت شده به sql و سپس اجرای store procedure یا دستورالعمل ذخیره شده در sql سرور
With db.CreateQueryDef("")
.Connect = db.TableDefs("ODBC;DATABASE=OurDB;UID=test1;PWD=password;DSN=OMBudget Prod SQL04;").Connect
.sql = "exec Update_UserPermissions 'Username', 'Department'"
.ReturnsRecords = False 'this will avoid error 3065
.Execute dbFailOnError
End With
البته connect بالا توصیه نمیشود چون اگر کسی بتواند اکسس شما را از جای دیگر هک کند با همین کانکت می تواند پسورد اس کیوال را تصرف نموده و تریگرها یا ساختار جداول را دستکاری یا حذف نماید.پس می توانید از شئ ADODB استفاده نمائید و کانکشن استرینگ بسازید آنرا Open کرده و کامند خود را اجرا کنید.
تعریف شی ارتباط ADO :
برای ایجاد یک ارتباط باز به یک منبع داده استفاده می شود.که باید در محیط VBE اکسس DLL مربوطه تیک بخورد تا دسترسی به متدها یا ویژگیها برای کد نویسی راحتتر ، ایجاد نماید.
The ADO Connection Object is used to create an open connection to a data source
connectionstring :
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
Don’t forget the instance name!
When connecting to a SQL Server Express database, you must include the instance name along with the server name. For example, the default instance name when installing Express is “SQLExpress”, if you’re connecting to a server called “DEVServer” than the server portion of your connection string should be: “DEVServerSQLExpress”.