Создать таблицы в Access 2003 с помощью SQL

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
VINNY-PYX
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 125
Зарегистрирован: 02.02.2004 (Пн) 17:24
Откуда: из роддома

Создать таблицы в Access 2003 с помощью SQL

Сообщение VINNY-PYX » 11.08.2007 (Сб) 1:01

Мне нужно создать две таблицы и потом связать их. Для оракула делал так:
Код: Выделить всё

CREATE TABLE permitions (
  id NUMBER PRIMARY KEY,
  name varchar(16)
);

CREATE TABLE users (
  id NUMBER PRIMARY KEY,
  login varchar(16),
  pass varchar(32),
  perm REFERENCES permitions(id)
);


Но ВБ ругается: "ошибка синтаксиса при определении поля". Я думаю это изза REFERENCES так как первая таблица успешно создается.

Как мне вооплотить замысел?

Если вручную добавить таблицу users, то при исполнении
Код: Выделить всё

CREATE TABLE staff (
  id NUMBER PRIMARY KEY,
  pid NUMBER,
  firstname varchar(20),
  middlename varchar(20),
  lastname varchar(20),
  salary NUMBER,
  CONSTRAINT pers_id
   FOREIGN KEY (pid)
   REFERENCES users(id)
   ON DELETE CASCADE
);


вылазит ошибка: "отношение должно быть задано для одинакового количества с одинаковыми типами данных"

Как исправить?

И еще: триггеры работают?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.08.2007 (Пн) 8:00

Триггеров в настольной базе данных нет.
Типа данных NUMBER тоже нет, используй INT или DECIMAL.
Lasciate ogni speranza, voi ch'entrate.

VINNY-PYX
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 125
Зарегистрирован: 02.02.2004 (Пн) 17:24
Откуда: из роддома

Сообщение VINNY-PYX » 16.08.2007 (Чт) 0:11

При програмном добавлении таблицы ADOX.Catalog.Tables.Count не изменяется до перезапуска программы. как это исправить?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.08.2007 (Чт) 7:45

А как добавляешь?
Refresh делаешь?
Lasciate ogni speranza, voi ch'entrate.

VINNY-PYX
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 125
Зарегистрирован: 02.02.2004 (Пн) 17:24
Откуда: из роддома

Сообщение VINNY-PYX » 17.08.2007 (Пт) 18:08

спс. рефрешить католог надо было. Я refresh в ADOX.Catalog'е искал, а он был в ADOX.Catalog.Tables.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 17.08.2007 (Пт) 22:17

VINNY-PYX
Чтобы поймать юзера - думай, как юзер: В Access открой редактором новый запрос на создание таблицы, визуально создай все поля, а затем открой полученный запрос в SQL-виде.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 252

    TopList