Перестали открываться таблицы в базе MS SQL из Access2003

Choks
Дата: 26.09.2005 17:44:18
Не знаю, туда пишу или нет, но вроде как к Access'у это больше относится.
Вот с такой бедой столкнулся - после какой-то хрени при попытке открыть таблицу из Access'a выдает при первой попытке "Сохраненная процедура выполнена успешно, но ни одной записи не возвращено", на следующие попытки не реагирует до тех пор, пока не открою/закрою какую-нибудь таблицу. Открываются только 4 таблицы, не имеющие особого отношения к базе (KLADR). После открытия/закрытия таблицы на попытки открыть таблицу в базе выдает "Данный набор записей не допускает обновления" и опять перестает реагировать. Никто с таким глюком не сталкивался? А то надоело ради пустяковых исправлений UPDATE'ы руками писать.
WBR, Choks
Latuk
Дата: 26.09.2005 17:59:31
MDB Or ADP?
А в EM править пробовал?
Choks
Дата: 26.09.2005 18:17:19
ADP. В EM править можно, но Access удобнее.
WBR, Choks
Latuk
Дата: 26.09.2005 18:34:30
насколько я понял речь идет о MSSQL таблицах линкованных в MDB
Если надо просто править,
Сделай ADP-ный проект (для версии Acc2K и выше) и правь
он работает внешне точно так же
только использует не Jet ODBC ,а как и EM ADO

Файл->Создать->Проект с имеющимися данными

Единственно надо обратить внимание,
что по умолчанию ADP-ная форма подсасывает до 10000 записей
и порой чтобы увидеть нужные надо это кол во сбросить 0 - все записи (внизу табличной формы кнопка "!...")
Choks
Дата: 26.09.2005 18:58:04
Именно так и сделано. Только бОльшая часть таблиц не открывается.
WBR, Choks
Latuk
Дата: 26.09.2005 20:25:01
В ADP никаких таких глюков нет
(разве что на обновление заглючит ежели хитрый триггер имеется)
работа с таблицей там как у EM
пролеммы скорее всего в кривом дистрибутиве отсутствии сервис паков
или конфликте с антивирусом
за 5 лет работы с ADP с таким ни разу не сталкивался.
если не хочется переустанавливать Acc попробуй прилинковать таблицы к MDB-ке
Choks
Дата: 27.09.2005 09:07:22
Проблема, вероятнее всего, Server-side. Ибо при генерации скрипта для базы имеет место быть вот такой кусочек:
ALTER TABLE [dbo].[tblPatient ] ADD 
	CONSTRAINT [FK_tblPatient _tblCalls] FOREIGN KEY 
	(
		[IdCall]
	) REFERENCES [dbo].[tblCalls] (
		[Id]
	)
И этот FK с пробелом нельзя ни удалить, ни исправить. Лазить в sysforeignkeys руками как-то немного боязно. А не открываются как раз таблицы, так или иначе связанные с tblCalls. Если пересоздать базу, исправив руками этот скрипт, то все начинает открываться нормально. Но заморочка в том, что очень много прав уже настроено.
WBR, Choks
Latuk
Дата: 27.09.2005 09:26:42
Да уж угораздило в имена пробелов насовать.
А если завести скульного юзера,
которому не давать права на Select этой злополучной таблицы
тогда открытая под им ADP не будет подсасывать ее название в свои коллекции
и глюк должен исчезнуть
nibbles
Дата: 27.09.2005 09:27:30
Choks
И этот FK с пробелом нельзя ни удалить, ни исправить.

А как удаляем FK?
Через EM или через скрипт с помощью drop CONSTRAINT... ?
Возможно, там индексты есть, которые нужно удалить перед этим, а также References с другими таблицами, в которых этот FK, входя в PK, может участвовать. Это раз
Второе. Глюки у Access при соединении с SQL бывают при неполной установке офиса или MDAC