Как создать хранимую процедуру в MS Access 2007. Если мы можем тогда написать процедуру для инструкции insert.Можем ли мы создать хранимую процедуру в MS-доступе 2007
ответ
Это не представляется возможным создавать хранимые процедуры в MS Access 2007. Вам необходимо Access 2013 - https://msdn.microsoft.com/en-us/library/office/ff845861(v=office.15).aspx
Прошу прощения. Теперь ясно, что OP хочет использовать CREATE PROCEDURE непосредственно в Access (но пометил свой вопрос C#, следовательно, недоразумение). Если вы хотите отредактировать свой вопрос, я могу удалить свой downvote – Steve
Не стоит беспокоиться. Честно говоря, я заметил тег C# только после вашего downvote :-) – potatopeelings
Я не совсем понял эту часть о редактировании вопроса btw. – potatopeelings
Это утверждение может быть использован в качестве примера
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");
}
где написать этот код – Vampire
Это, конечно, пример. Создание процедуры должно быть в виде кода, который обновляет вашу базу данных (вы можете вызвать GetSchema из открытого соединения, чтобы узнать, есть ли у вас уже действующая процедура). Код, который использует эту процедуру, должен быть в любом случае, если вам это нужно – Steve
Я не нашел способ написать хранимую процедуру в ms access 2007. Есть ли способ написать? когда я пишу мастер запросов кода, давая ошибку – Vampire
Способ сделать это, чтобы прочитать документацию и сделать то, что она говорит. – PJTraill
Можно создать запрос 'INSERT', выполнив инструкцию' CREATE PROCEDURE'. Это ты имел в виду? – HansUp