Форум: "Базы";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизПроблемы при добавлении записи Найти похожие ветки
← →
Helen (2007-02-27 18:58) [0]Использую ADODataSet и AdoQuery. Есть таблицы в Access. При добавлении новой записи на своей машине - все хорошо. Когда база и программа установлены на сервере - выдает ошибку:
В операции должен использоваться обновляемый запрос. Подскажите что за он?
В DataSet использую или Append, или Insert.
В Query - insert into.
← →
sniknik © (2007-02-28 08:29) [1]из справки
В операции должен использоваться обновляемый запрос. (Ошибка 3073)
Попытка запустить, открыть или изменить запрос, который не является обновляемым.
Возможные причины:
Попытка запустить запрос, в котором предпринимается попытка обновить необновляемое поле. Например, создан запрос, в котором предпринимается попытка обновить поле на стороне «один» отношения «один-ко-многим».
Попытка использовать устаревший метод OpenQueryDef для запроса, находящегося в базе данных, открытой с доступом только для чтения.
База данных может быть доступной только для чтения по одной из следующих причин:
База данных была открыта только для чтения с помощью метода OpenDatabase или элемента управления Data Visual Basic.
Файл базы данных определен с доступом только для чтения в сетевой операционной системе.
Пользователь не имеет привилегий записи в этот файл базы данных в сетевой среде.
Закройте базу данных, снимите ограничение доступа только для чтения и вновь откройте файл с доступом для чтения/записи.
Отсутствуют разрешения на внесение изменений в запрос. Для изменения разрешений обратитесь к системному администратору или создателю таблицы или запроса.
от себя еще могу добавить причину, это конфигурация другой машины... например открывается линк таблица парадокс, на машине разработчика такая нормально редактируется, на другой нет, потому что там не установлен BDE и парадокс самим движком (jet) открывается только на чтение.
т.е. любая причина ограничивающая запись в базу может вызвать подобную ошибку, надо выяснять что это и устранить.
> В Query - insert into.
не используй Query, для таких команд есть ADOCommand.
← →
Helen (2007-02-28 15:38) [2]Спасибо за ответ.
Уже дали полный доступ - все равно.
Скажите, а Access можно вообще использовать по сети?
← →
MsGuns © (2007-02-28 20:08) [3]Вполне
← →
Antoxa2005 (2007-03-01 17:58) [4]Локально
← →
Леонид (2007-03-06 14:52) [5]Все дело в ConnectionString, например:
procedure StartAcces(Access: TADOConnection);
var Ini: TIniFile;
CurrDir: String;
begin
CurrDir:=GetCurrentDir;
Ini:=TIniFile.Create(CurrDir + "\Ex.ini");
with Access do
begin
Connected:=False;
ConnectionString:="";
ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
ConnectionString:=ConnectionString + Ini.ReadString("Access","DBName","E:\Programm\Ex\Reestr.mdb");
ConnectionString:=ConnectionString +";Mode=ReadWrite|Share Deny None;Persist Security Info=False";
Connected:=True;
end;
Ini.Free;
end;
← →
MsGuns © (2007-03-06 16:03) [6]Как много "букав" ради одного-разъединственного Share Deny None
;)
Который, кстати, проблем, связанных с блокировкой, не решает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c