Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизADO + mdb + delete record с помощью DBNavigator = ??? Найти похожие ветки
← →
Dmitry Toropov (2002-09-25 18:23) [0]Не знаю, где рыть ... :-(
Вопрос такой: имеем базу *.mdb, доступ к которой осуществляется при помощи ODBC Data Source 32 (на вкладке User DSN добавлен источник, находящийся на той же машине, что и интерфейсная часть)и MDAC 2.7 (eng)
данные редактируются, добавляются (правда, если в итоге таблица остается или становится пустой, то при выходе из проги появляется окно с ошибкой что-то вроде EOF and BOF = true or record was deleted ...), НО при попытке удалить текущую запись появляется окошко со следующей информацией:key column information is insufficient or incorrect. Too many rows were affected by update
.
В таблице одно из полей действительно объявлено как ключевое, и в mdb-базе эта таблица связана с другой таблицей по этому ключу (убрать эту связь я еще не пробовал, но сейчас попробую).
Все поля (ключевые) были корректно заполнены. После того, как появилось вышеприведенное сообщение между записями невозможно становится ходить и добавлять, появляется следующее сообщение:
Row cannot be located for updating. Some values may have been changed since it was last read.
После всех этих ругательств остается только выйти из программы. Запускаем снова ... ни одной записи в таблице нет, т.е. удалял одну запись, а удалились все.
Все компоненты расположены на одной форме:
TADOConnection, TADOTable, TDataSource
У TADOConnection.ConnectionString=
Provider=MSDASQL.1;Persist Security Info=False;User ID=Admin;Data Source=RescueCopy;Mode=ReadWrite;Extended Properties="DSN=RescueCopy;DBQ=c:\Мои документы\Analysis\ADO\CopyPRGs\CopyData.mdb;DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;SystemDB=c:\WINDOWS\SYSTEM\system.mdw;UID=Admin;"
.
ну вот, вроде бы все сказал ...
← →
Dmitry Toropov (2002-09-25 18:35) [1]вдогонку ...
когда выхожу из программы, а таблица пустая, то появляется окошко:
Exception EOleException in module ... Either BOF or EOF is True, or the current record had been deleted. Requested operation requires a current record.
Это мой первый опус на Delphi и с ADO, поэтому мне не с чем сравнивать, то ли драйвера криво встали, то ли я чего не так делаю ... При выходе никаких действий я не предпринимаю ...
Запустил сейчас ихнинский борландовский пример adotest - то же сообщение про EOF or BOF, и на той же таблице опять удалились все записи, а в другой таблице - все нормально.
хелп ...
← →
sniknik (2002-09-25 19:25) [2]первое для MDAC 2.7 нужен еще и Jet (в поставку не входит) кроме этого апдейт ADO с борланда или 6 Дельфи (тоже можно апдейт, не помешает)
-Все поля (ключевые) были корректно заполнены- похоже одним значением, должно быть одно уникальное поле.
и чтобы исключить неоднозначное толкование удалять запросом вроде
DELETE FROM PLUDISC WHERE Filed1 = "F45F"
мелочь но сам путатся перестанеш (это мое личное мнение что так лутше)
добавление тоже также делай запросом, без всяких навигаторов, он все одно в SQL все действия переводит но в какой? никакого контроля.
убери ODBC из связки вот смотри насколько проще
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c:\Мои документы\Analysis\ADO\CopyPRGs\CopyData.mdb;Persist Security Info=False
и глюков меньше и провайдер более продвинутый (OLE DB имею ввиду) и алиас в ODBC не создавать.
← →
Dmitry Toropov (2002-09-26 06:39) [3]2 sniknik
не понял насчет Jet. Насколько я знаю, джэт - это Microsoft Jet DataBase Engine - этой штукой пользуется сам Access (м.б. и еще что-то, но я об этом не знаю).
если я не прав, то поправь меня.
2 all. Где бы что-нибудь путнее почитать насчет ODBC Data Source 32? Чтобы было понятно, для чего там какая вкладка существует и чтобы более-менее параметры были расписаны. В хэлпе мне все не понятно (там очень стильное описание: это лампа, она светит. Это машина - она ездит ... :-))
← →
sniknik (2002-09-26 09:41) [4]Оно оно родимое именно Access и пользуется. И тебе придется этим же пользоватся раз у тебя Access-ская база (*.mdb). А вот каким путем прямым или зигзагами тебе выбирать.
думаеш если ODBC используеш то и драйвера другие? нет тебя все одно на jet переправят. Фирма мелкософт одна и какой резон два раза одно и тоже делать? я бы не делал.
хелпы по джету и иже с ними лежат по примерному пути
D:\Program Files\Common Files\Microsoft Shared\Office10\1049
после установки офиса с Access разумеется.
← →
kserg@ukr.net (2002-09-26 12:09) [5]>Dmitry Toropov
извини, что беспокою, но увидел вопрос по ACCESS решил задать след.вопрос: как организовать многопользовательский доступ к таблице ACCESSa.
спасибо
← →
Dmitry Toropov (2002-09-26 16:29) [6]2 kserg@ukr.net
мне вопрос непонятен.
вообще, многопользовательский доступ база Access будет поддерживать, если явно не указать, что база открывается монопольно ...
а лучше, если можно, вопрос более по существу.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c