@ Remou для функции конкатенации DHookom: ни стандарт SQL, ни Jet не имеют функции set CONCATENATE()
. Проще говоря, это потому, что это нарушение 1NF. Я предпочел бы делать это на стороне приложения, а не пытаться заставить SQL делать то, для чего он не предназначен. Возможно, лучше подходят многозначные типы ACE (Access2007): все еще NFNF, но, по крайней мере, есть поддержка на уровне движка. Помните, что вопрос относится к хранимому объекту: как пользователь будет запрашивать нескалярный столбец, используя SQL ...?
@ Дэвид У. Фентон о том, хранит ли Джет процедуры: разве мы с вами не обсуждали это в группах новостей пару лет назад. Начиная с версии 4.0, Jet / ACE поддерживает
следующий синтаксис в режиме запросов ANSI-92:
CREATE PROCEDURE procedure (param1 datatype[, param2 datatype][, ...]) AS sqlstatement;
EXECUTE procedure [param1[, param2[, ...]];
Итак, Jet создает и выполняет то, что ему известно (по крайней мере, в одном режиме), как «процедуру», которая «сохраняется» в файле MDB. Однако Jet / ACE SQL является чистым и простым: у него нет синтаксиса управления потоком, а PROCEDURE
может содержать только один оператор SQL, поэтому любой процедурный код исключен. Поэтому ответ на вопрос о том, есть ли у Jet хранимые процедуры, субъективен.