Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему R/O? / 15 сообщений из 15, страница 1 из 1
14.08.2002, 12:38:57
    #32043140
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
Пытаюсь с помощью CDatabase/CRecordset записать в таблицу MS SQL, а он мне говорит мол множество записей read only. Проверил тот же код на Access'е - все нормально. На базе R/О не стоит.
Почему сие может происходить? Что где подкрутить надо?
...
Рейтинг: 0 / 0
14.08.2002, 12:40:05
    #32043143
KonstN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
Первичный ключ есть?
...
Рейтинг: 0 / 0
14.08.2002, 13:00:24
    #32043157
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
нету
...
Рейтинг: 0 / 0
14.08.2002, 13:58:58
    #32043175
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
А собственно при чем здесь первичный ключ???????
...
Рейтинг: 0 / 0
14.08.2002, 14:00:08
    #32043177
~Bazul~
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
блокировкис-с-с...
...
Рейтинг: 0 / 0
14.08.2002, 14:11:42
    #32043179
KonstN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
не может без первичного ключа определить какую запись апдейтить
...
Рейтинг: 0 / 0
14.08.2002, 15:06:47
    #32043204
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
> блокировкис-с-с...
Какие блокировки, я на ней (на базе) один сижу

> не может без первичного ключа определить какую запись апдейтить

Враки, все он может. Ключи не при чем. И кстати на R/O ругается и при AddNew(). А специально для Вас - сделал первичный ключ - результат тот же.
...
Рейтинг: 0 / 0
14.08.2002, 15:32:51
    #32043212
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
Извиняюсь, все же действительно с ключем набор становится доступным для записи (все же непонятно, почему так...), но при апдейте ругается ("Ошибка при попытке обновления или удаления."), хотя и апдейтит (это то меня и сбило...)
...
Рейтинг: 0 / 0
14.08.2002, 17:07:37
    #32043265
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
а как тогда быть, если primary key не нужен?
...
Рейтинг: 0 / 0
14.08.2002, 18:31:25
    #32043324
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
если у вас в таблице две абсолютно одинаковые записи, то исправить только одну из них стандартными средствами не получиться
...
Рейтинг: 0 / 0
14.08.2002, 19:16:10
    #32043340
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
2AlexQC
Как это primary key не нужен? А для удаления или обновления записи?
...
Рейтинг: 0 / 0
16.08.2002, 10:19:48
    #32043783
AlexQC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
Как бы это точнее выразиться...
1. Мне нужно скорее добавление чем изменение/удаление.
2. Записи такие, что 2х одинаковых быть не дОлжно.
3. В любом случае, если MS SQL не накладывает условие обязательности первичного ключа, значит должен с такими таблицами работать.
4. Конечно, можно какое-нибудь identity добавить, но зачем мне лишнее поле, если прямой необходимости в нем нету?
...
Рейтинг: 0 / 0
16.08.2002, 10:55:57
    #32043812
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
1. Мне нужно скорее добавление чем изменение/удаление.

Рано или поздно придется что-то удалять - ведь не будет же ваша база расти до бесконечности. Кроме того, зачем держать в таблице данные, к которым никто не обращается по причине окончания какого-либо срока актульности

2. Записи такие, что 2х одинаковых быть не дОлжно.

А вот этого как раз вы без первичного ключа (как ограничения для таблицы) не получите


3. В любом случае, если MS SQL не накладывает условие обязательности первичного ключа, значит должен с такими таблицами работать.

MS SQL - не накладывает. В этом можно убедится, если попробуете изменить таблицу например через Enterprise Manager.

А вот клиентское приложение запросто может. Потому как работает с таблицей через запрос (UPDATE/DELETE/INSERT) и поэтому не может при том же обновлении однозначно отличить одну запись от другой.

4. Конечно, можно какое-нибудь identity добавить, но зачем мне лишнее поле, если прямой необходимости в нем нету?

Наличие полей типа первичного ключа определяется не желанием/нежеланием, а собственно самой теорией реляционных баз данных.(см. нормальные формы)
...
Рейтинг: 0 / 0
16.08.2002, 11:45:17
    #32043828
AVL
AVL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
2AlexQC
учите матчасть :)
...
Рейтинг: 0 / 0
16.08.2002, 12:12:43
    #32043844
KonstN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему R/O?
Встречный вопрос - если первичного ключа нет, то как клиент должен определять какую запись апдейтить? По полному соответствию всех полей? А если кто-нибудь изменил за это время какое-нибудь, это та же запись осталась или уже другая? Тут мы попадаем в область теории РБД. Не стОит туда лезть.
Если у Вас двух одинаковых записей быть не дОлжно, то первичным ключом является полный набор всех полей (это будет естественный ключ) или можно добавить identity (это будет суррогатный).
Делать же первичный ключ надо хотя бы и потому, что он автоматом делает кластерный индекс. Если Вы руками не делаете кластерный индекс, то физически записи лежат не очень хорошо - почитайте как оно. Да и индексы работают лучше с привязкой к кластерному индексу, а не к хеш-значению, которое используется в отсутствии оного.
Так что делайте первичный ключ и избежите многих геморроев.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему R/O? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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