2015-06-13 2 views
-1

Как создать хранимую процедуру в MS Access 2007. Если мы можем тогда написать процедуру для инструкции insert.Можем ли мы создать хранимую процедуру в MS-доступе 2007

+0

Способ сделать это, чтобы прочитать документацию и сделать то, что она говорит. – PJTraill

+0

Можно создать запрос 'INSERT', выполнив инструкцию' CREATE PROCEDURE'. Это ты имел в виду? – HansUp

ответ

1

Это не представляется возможным создавать хранимые процедуры в MS Access 2007. Вам необходимо Access 2013 - https://msdn.microsoft.com/en-us/library/office/ff845861(v=office.15).aspx

+0

Прошу прощения. Теперь ясно, что OP хочет использовать CREATE PROCEDURE непосредственно в Access (но пометил свой вопрос C#, следовательно, недоразумение). Если вы хотите отредактировать свой вопрос, я могу удалить свой downvote – Steve

+0

Не стоит беспокоиться. Честно говоря, я заметил тег C# только после вашего downvote :-) – potatopeelings

+0

Я не совсем понял эту часть о редактировании вопроса btw. – potatopeelings

1

Это утверждение может быть использован в качестве примера

string queryText = @" 
CREATE PROCEDURE Customer_Insert (pName text(255), pAddress Text(255)) AS 
    INSERT INTO Customers (Name, Address) 
    VALUES ([pName], [pAddress]);"; 

Теперь обычным образом выполнить не возвращающие строки команды с OleDb

using(OleDbConnection cn = new OleDbConnection(......)) 
using(OleDbCommand cmd = new OleDbCommand(queryText, cn)) 
{ 
    cn.Open(); 
    cmd.ExecuteNonQuery(); 
} 

И, наконец, вы могли бы назвать его обычным способом

using(OleDbConnection cn = new OleDbConnection(......)) 
using(OleDbCommand cmd = new OleDbCommand("Customer_Insert", cn)) 
{ 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add("pName", OleDbType.VarWChar).Value = "yourCustomerName"; 
    cmd.Parameters.Add("pAddress", OleDbType.VarWChar).Value = "yourCustomerAddress"; 
    cn.Open(); 
    cmd.ExecuteNonQuery(); 
} 

EDIT
Создание хранимой процедуры (А.К.А. Query in Access), должны выполняться только в том случае, если StoredProcedure не существует. Чтобы узнать, существует ли процедура в вашем db, самый простой способ сделать это:

using(OleDbConnection cn = new OleDbConnection(....));  
{ 
    con.Open(); 
    var schema = con.GetSchema("Procedures"); 
    DataRow[] r = schema.Select("PROCEDURE_NAME = 'Customer_Insert'"); 
    if(r.Length > 0) 
     MessageBox.Show("Procedure 'Customer_Insert' already exists"); 
} 
+0

где написать этот код – Vampire

+0

Это, конечно, пример. Создание процедуры должно быть в виде кода, который обновляет вашу базу данных (вы можете вызвать GetSchema из открытого соединения, чтобы узнать, есть ли у вас уже действующая процедура). Код, который использует эту процедуру, должен быть в любом случае, если вам это нужно – Steve

+0

Я не нашел способ написать хранимую процедуру в ms access 2007. Есть ли способ написать? когда я пишу мастер запросов кода, давая ошибку – Vampire