Делает Доступ MS, 2003 содержит консоль SQL общего назначения

Я знаю, что Вы можете открыть консоль SQL в Доступе при создании запроса или представления, но являетесь там 'всей целью' консоль, которая позволила бы мне выполнять операторы как:

CREATE TABLE Foo
(
Foo_Id int NOT NULL,
Name varchar(255) NOT NULL,
CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name)
)
4
задан 13.11.2009, 20:35

3 ответа

Я не знаю то, что Вы подразумеваете "под универсальной консолью", но возможно в Доступе это - Непосредственное Окно, которое удовлетворит Ваши потребности. При ударе Ctrl-G в клавиатуру из основного окна Access которое возьмет Вас к Непосредственному Окну в VBE, и там Вы могли ввести:

  CurrentDB.Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Это - однострочный интерфейс, таким образом, никакое форматирование SQL, но это выполнит SQL.

Проблема с использованием CurrentDB как Ваш объект выполнения состоит в том, что это возвращает новый объект базы данных каждый раз, когда Вы называете его (чтобы обеспечить, чтобы все его наборы были актуальны). Альтернатива была бы:

  DBEngine(0)(0).Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Начиная с DBEngine (0) (0) всегда возвраты тот же объект, можно затем проверить вещи как:

  DBEngine(0)(0).RecordsAffected

"Проблема" с этим состоит в том, что при изменении наборов базы данных необходимо не забыть обновлять их перед использованием их. Например, если бы Вы добавляете или удаляете таблицу, необходимо было бы обновить набор TableDefs к набору быть актуальными:

  DBEngine(0)(0).TableDefs.Refresh

Другая альтернатива должна была бы использовать кэшируемый объект базы данных, как я делаю во всех своих приложениях, но она не избегает, чтобы наборы обновили проблему, но просто помогает ввести (я нахожу ввод DBEngine (0) (0), чтобы быть довольно подверженным ошибкам, и найти мою функцию dbLocal намного легче использовать).

7
ответ дан 07.12.2019, 19:20

Я не полагаю, что Доступ когда-либо действительно думался как используемый для использования SQL общего назначения как составление таблиц и что нет. Вы даже не можете использовать 'хранимые процедуры' как Вы, был бы на обычном SQL-сервере. Я думаю, что Вы будете разобьете, если Вы начнете использовать Доступ, не используя Visual Designer.

Удачи!

1
ответ дан 07.12.2019, 19:20

Используя ADP для соединения с SQL Server может дать Вам, что Вы хотите. Однако я не знаю, до какой степени Access, 2003 позволяет Вам создавать представления и хранимые процедуры в SQL Server 2005 или 2008, поскольку они были выпущены после A2003.

0
ответ дан 07.12.2019, 19:20

Теги

Похожие вопросы