Добавление при связи О-О

oltan
Дата: 13.10.2003 20:50:32
Есть проект на Асс.97 делается попытка перенести на SQL2000. В Асс существовали две таблицы со связью 1-1. B SQL тоже получили 2 таблицы и связали их. Но в Асс перестали добавляться записи в форму основанную на эти двух таблицах. Выскакивает ошибка, что во 2-й таблице нет ключа (в 1-й таблице ключ счетчик, а во 2-й должен быть ключ 1-й), хотя в ней могут и не быть записей. Раньше в Асс все работало.В чем проблема?
Alex Antonoff
Дата: 14.10.2003 05:27:24
А как добавляешь информацию ?
Glory
Дата: 14.10.2003 09:43:25
Выскакивает ошибка, что во 2-й таблице нет ключа (в 1-й таблице ключ счетчик, а во 2-й должен быть ключ 1-й),

Речь скорее идет о _первичном_ ключе, т.е. об уникальном идентификаторе записи, а не внешнем ключе.
oltan
Дата: 14.10.2003 11:56:34
Спасибо, кто откликнулся. Проблема в добавлении записи в двух случаях:
1.В запросе в Асс на базе двух связанных таблиц в SQL. Здесь не дает заполнить поля во 2-й таблице. Ошибка: NULL во вторичном ключе.
2. В форме на основе этого запроса не сохраняе запись даже если заполняем поля только 1-й таб.Ошибка та же. Но имеется ввиди что записи могут и не существовать во 2-й таб.
Проект только пытаемся перенести на SQL, поэтому все запросы и формы оставили как было и только связали SQL таб. и сразу такой облом.
Можно ли в SQL заполять поля сразу в несколько связанных таб?
f2f
Дата: 14.10.2003 15:29:22
Можно ли в SQL заполять поля сразу в несколько связанных таб?

Если речь об SQL, то там всегда операция insert идет только в одну таблицу.
Если о проекте Access, то опять же только в одной таблице - той, которая указана как уникальная
oltan
Дата: 14.10.2003 16:21:36
В таб связь О-О (одна таблица была разбита на две). Как писала, в Асс все работало: в одном запросе шло добавление в 2-е таб.Первичный ключ-счетчик. Как это же лучше организовать при таб в SQL?
Некто
Дата: 14.10.2003 16:41:52
CREATE TABLE [Table1] (

[id] [int] IDENTITY (1, 1) NOT NULL ,
[field] [varchar] (50) NULL ,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
[id]
)
)
GO

CREATE TABLE [Table2] (
[id] [int] NOT NULL ,
[field2] [varchar] (50) NULL ,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
[id]
),
CONSTRAINT [FK_Table2_Table1] FOREIGN KEY
(
[id]
) REFERENCES [Table1] (
[id]
) ON DELETE CASCADE ON UPDATE CASCADE
)
GO

CREATE VIEW dbo.VIEW1
AS
SELECT dbo.Table2.id AS id2, dbo.Table2.field2, dbo.Table1.id, dbo.Table1.field
FROM dbo.Table2 INNER JOIN
dbo.Table1 ON dbo.Table2.id = dbo.Table1.id

GO


Должно обновляться.
oltan
Дата: 14.10.2003 17:42:44
Записи редактируются но не добавляются.Ошибка та же: NULL в Id Table2
Некто
Дата: 14.10.2003 18:00:58
Попробуйте изменить inner join на right outer join. Тут фишка в том, что во view table2 должна стоять первой.
Попробуйте "сжатие и восстановление" базы.
Попробуйте поставить 0, как default в id2
Кстати коннект - ODBC?

Потому что в проекте AccessXP это работает точно. В Access2000, по-моему тоже.
Luchkin Dmitry
Дата: 14.10.2003 18:24:48
а може плюнуть и в одну таблицу запихать?