Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
6-56262
Le!
2002-07-31 08:20
2002.10.17
Вот такая проблемма!


1-56221
Anar
2002-10-07 19:47
2002.10.17
MP3


14-56291
AL2002
2002-09-23 16:21
2002.10.17
С винтом чё-то не так.


3-55939
delfist
2002-09-24 14:09
2002.10.17
А можно ли сразу получить сумму по колонке цифр в таблице?


14-56285
Yuraz
2002-09-23 19:24
2002.10.17
где найти хороший и беспл. firewall (или посоветйте хороший)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский