powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как связать две таблицы (есть мой код с ошибкой)
21 сообщений из 21, страница 1 из 1
как связать две таблицы (есть мой код с ошибкой)
    #32620063
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа
в Ассеss97 (к базе обращаюсь из Delphi5 через ADO/Jet4) есть две таблицы,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE model (
id COUNTER, 
material VARCHAR( 50 ), 
influence VARCHAR( 50 ), 
typematerial VARCHAR( 50 ), 
comment VARCHAR( 50 ), 
check1 BIT, 
del BIT, 
time1 DATE, 
timeCalculation VARCHAR( 8 ),
FOREING KEY index1 (id)
REFERENCES experiment1 (idexp),
DELETE OF experiment1 CASCADES
)

CREATE TABLE experiment1 (
idexp INTEGER NOT NULL, 
t FLOAT, 
y1 DOUBLE, 
y2 DOUBLE, 
modelid VARCHAR( 50 ))


которые необходимо связать однин-ко-многим
по полям id(однин)->idexp(много),
с возможностью каскадного обновления при удалениях


возникают ошибки на строках

Код: plaintext
1.
2.
FOREING KEY index1 (id)
REFERENCES experiment1 (idexp),
DELETE OF experiment1 CASCADES
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620064
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
FOREIGN
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620069
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, а больше подозрительного ничего?
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620071
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я такими командами не пользуюсь. Что заметил, то написал. :^)
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620072
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если это исправить - сколько ошибок будет выдавать?
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620074
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как можно в обход команд предложенных мною?
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620076
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исправл FOREIGN, все раввно ошибки есть
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620078
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
big-spoonисправл FOREIGN, все раввно ошибки есть
А нам надо угадать, какие и где?
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620083
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка показывает на строку с Foregn и звучит она так:
ошибка синтаксиса в инструкции CREATE TABLE
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620086
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
big-spoonошибка показывает на строку с Foregn
FORE I GN
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620087
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в программе правильно писал, просто здесь ошибся (это относительно второго раза)
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620088
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда не знаю. :^)
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620101
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в обратном порядке experiment1 - первым + в нём нужен ключ(у тебя счётчик должен был стать внешним ключом - я не понял) + про каскадное в 97 - не знаю

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE experiment1 (
idexp INTEGER NOT NULL,
t FLOAT, 
y1 DOUBLE, 
y2 DOUBLE, 
modelid VARCHAR( 50 ),
CONSTRAINT PK PRIMARY KEY (idexp))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE model (
id COUNTER, 
idexp long,
material VARCHAR( 50 ), 
influence VARCHAR( 50 ), 
typematerial VARCHAR( 50 ), 
comment VARCHAR( 50 ), 
check1 BIT, 
del BIT, 
time1 DATE, 
timeCalculation VARCHAR( 8 ),
CONSTRAINT bbb  FOREIGN KEY   (idexp)  REFERENCES experiment1 (idexp))
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620199
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, круто, только связь нужна в обратном порядке.
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620200
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так я сделал руками в самом Акссессе.

теперь нужно еще и программо
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620201
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
начну с азов, есть главная таблица model:
Код: plaintext
1.
2.
3.
id | material | influence | typematerial | comment | check | del | time       | timeCalculation
 ------------------------------------------------------------------------------------------------
 
 1   | Cu	      | press     | < 001 >	 | Cu500- 1  |    0    |   0   |  24 . 07 . 2004  |	 00 : 00 : 15 


одной строке которой соотвествует много строк подчиненных таблиц, структура которых аналогична
таблице experiment:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
id  |    t     |   y1	  |  y2    | 	
 ------------------------------------
 
 1    |  0 ,00E+ 00  |  1 ,00E+ 12  |  1 ,00E+ 12 
 1    |  1 ,00E- 03  |  1 ,03E+ 12  |  1 ,00E+ 12 
 1    |  2 ,00E- 03  |  1 ,07E+ 12  |  1 ,00E+ 12 
 1    |  3 ,00E- 03  |  1 ,10E+ 12  |  1 ,00E+ 12 
 1    |  4 ,00E- 03  |  1 ,14E+ 12  |  1 ,00E+ 12 
 1    |  5 ,00E- 03  |  1 ,18E+ 12  |  1 ,00E+ 12 
 1    |  6 ,00E- 03  |  1 ,22E+ 12  |  1 ,00E+ 12 
 1    |  7 ,00E- 03  |  1 ,26E+ 12  |  1 ,00E+ 12 
 1    |  8 ,00E- 03  |  1 ,30E+ 12  |  1 ,00E+ 12 
 1    |  9 ,00E- 03  |  1 ,33E+ 12  |  1 ,00E+ 12 
 1    |  1 ,00E- 02  |  1 ,37E+ 12  |  1 ,00E+ 12 
 1    |  1 ,10E- 02  |  1 ,41E+ 12  |  1 ,00E+ 12 
 1    |  1 ,20E- 02  |  1 ,46E+ 12  |  1 ,00E+ 12 
 1    |  1 ,30E- 02  |  1 ,50E+ 12  |  1 ,00E+ 12 

Нужно связать таблицы по полю id (главную таблице model c подчиненными).

Если есть необходимость использования допольнительного поля для связи,
то как это обосновывается (т.е. поля idexp) - быстрота, удобство, непротиворечивость?
где можно посмотреть толкое описание про связывание таблиц и ключи?

если я не прав - подскажите где.
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620202
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тады внешний ключ должен жить в experiment1 т.е. со стороны многих
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE model (
id COUNTER, 
material VARCHAR( 50 ), 
influence VARCHAR( 50 ), 
typematerial VARCHAR( 50 ), 
comment VARCHAR( 50 ), 
check1 BIT, 
del BIT, 
time1 DATE, 
timeCalculation VARCHAR( 8 ),
CONSTRAINT PK PRIMARY KEY (id))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE experiment1 (
idexp INTEGER NOT NULL,
t FLOAT, 
y1 DOUBLE, 
y2 DOUBLE, 
modelid VARCHAR( 50 ),
CONSTRAINT Forkey  FOREIGN KEY   (idexp)  REFERENCES model (id))
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620203
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а хоть правильно называю таблицу model - главной?
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620207
big-spoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как добиться каскада при удалении/обновлении и
в параметрах объединения указать, что нужно объединять все записи из model
и только тех записей из experiment, в котроых связанные поля совпадают.
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620227
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-spoonа как добиться каскада

MS Knowledge Base:
...
Note: You cannot specify that you want "Cascade Updates" or "Cascade Deletes" with a relationship created using DDL. These features are available only when using the Microsoft DAO (Data Access Objects) interfaces via code or when using the Microsoft Access user interface (Добавлю от себя - или с использованием ADOX)
...
На всякий случай по-русски: через DDL никак, пользуй DAO, интерфейс Асс или ADOX.
...
Рейтинг: 0 / 0
как связать две таблицы (есть мой код с ошибкой)
    #32620228
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 если Jet поддерживает ANSI-92 ,то
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE experiment1 (
idexp  INTEGER NOT NULL,
t FLOAT, 
y1 DOUBLE, 
y2 DOUBLE, 
modelid VARCHAR( 50 ),
CONSTRAINT Forkey  FOREIGN KEY  ( idexp)  REFERENCES model (id)
ON UPDATE CASCADE 
ON DELETE CASCADE
 )

2 - пиши Left в запросе на выборку ,зачем путать целостность и Null
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как связать две таблицы (есть мой код с ошибкой)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]