0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
1 | |
Несовместимая версия файла базы данных04.11.2011, 19:36. Показов 35039. Ответов 24
Метки нет (Все метки)
Здравствуйте, возникла такая проблема.
Имеется обработка, которая подключается к другой базе и вытаскивает нужные данные. У меня развернута база на платформе 8.2 и я из другой базы развернутой на той же платформе пытаюсь подключиться, выдается сообщение об ошибке: Несовместимая версия файла базы данных 'D:\тря-ля-ля/1Cv8.1CD'. Сама база, к которой я пытаюсь подключиться когда то была на 8.1 и ныне переконвертированная под 8.2. Не подскажите ли в чем проблема, и как ее устранить? Заранее огромнейшее спасибо.
0
|
04.11.2011, 19:36 | |
Ответы с готовыми решениями:
24
Несовместимая версия файла базы данных DacFX несовместимая версия Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных) Редактирование файла базы данных |
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
05.11.2011, 01:41 | 2 |
Через конфигуратор всё получится.
Добавлено через 2 минуты Ну, то есть, открыть эту обработку в конфигураторе. А он кроме сообщения о чужой платформе предложит конвертнуть. Согласиться, и после сохранения обработки можно открывать её в ентерпрайзе.
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
05.11.2011, 23:57 [ТС] | 3 |
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
06.11.2011, 00:51 | 4 |
А, да. Извини. Невнимательно читаю. База-источник в 8.2, а обработка из базы-приёмника ловит её как 8.1? База-источник работает? Конфы аналогичные? Попробуй сархивировать её, а потом восстановить в чистом месте.
Ещё поэкспериментировать - выгрузить данные в xml типовой обработкой "выгрузки в аналогичную конфу". Конфигурацию сохранить в файл и загрузить в пустую базу, а потом типовой же обработкой "Загрузка..." загрузить из xml данные. Это типа протирки стёкол и пинания по покрышкам. А вообще, по-игроцки, в отладчике отловить место, где обработка анализирует версию базы и действовать по ситуации. Есть всякие уголочки, где прописана эта версия. Может, в этом дело. Где-то зависло "8.1" вместо "8.2" или тупо версия конфы считается несовместимой? Вернее всего разобраться с программным кодом.
0
|
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
|
|
06.11.2011, 19:09 | 5 |
Если OLE, тогда проблем быть не должно
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
06.11.2011, 20:13 | 6 |
Похоже, что OLE, и что якобы ошибка - дело рук программиста.
Глянуть бы в эту обработку на точку ошибки.
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
07.11.2011, 20:16 [ТС] | 7 |
Я не знаю как обработка ее ловит, я написала ошибку, там вроде бы открытого заявление про 8.1 нет.
База источник работает, конфы... ну вроде бы аналогичные. И эта обработка работала, когда конфигурации были такие же, только тогда подключение было к версии 8.1. (в обработке строчка исправлена и подключаемся уже к приложению 8.2) Спасибо за совет, попробую так поймать ошибку)
0
|
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
|
|
07.11.2011, 20:38 | 8 |
возникла идея, верно ли в обработке стоит ComКонектор?
0
|
Модератор
|
|||||||||||
07.11.2011, 23:17 | 9 | ||||||||||
Ну похоже на то что комКоннектор создается по текущей базе и ломиться в 8.1 через V82.ComConnector. или же наоборот. Короче - Давайте обработку в студию, разберемся.
Добавлено через 15 минут duk337, И я бы не стал винить в этой ошибке программиста! Во первых - если бы все программисты продумавали код на будующее у нас бы не было работы))) Во вторых - Скорее всего ему заплатили копейки за эту обработку, ты бы стал сидеть продумывать если подключение по КОМ не доступено тогда пробывать подключение через NATIV или ODBC и писать для этих подключений свой алгоритм??? Думаю за небольшие деньги нет!!! Zmeyuga, Попробуйте закоментировать строчку где встречается такое слово -
"ПеременнаяКом = Новый ComОбъект("ТутЧтоТоНаписано"); или ПеременнаяКом = New ComObject("Тут что то написано");" Это пример, дословно по ctrl+F искть не надо!!!
1
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
07.11.2011, 23:38 | 10 |
Согласен, не виню. Имелось в виду - это не есть трабл в базе. Это в тексте. А баг это или фича - надо было посмотреть. А когда узнал, что обработка заточена под базу 81, а напускают её на базу 82 - даже и комментить не стал: разгадка и так близка.
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|||||||||||
07.11.2011, 23:49 [ТС] | 11 | ||||||||||
Ну это писал не совсем даже программист,а начинающий студент ( то есть я).
И про такие страшные вещи даже и не знала( У меня стоит так:
Попробовала вышеописанный вариант, вроде бы мы смогли подключиться, огромнейшее спасибо. А обращение к объектам базы источника можно писать так:
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
08.11.2011, 00:03 | 12 |
0
|
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
|
|
08.11.2011, 00:15 | 13 |
действительно, комментить не стали.
наверное потому что отгадка не вам пришла в голову, увы...
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
08.11.2011, 10:45 [ТС] | 14 |
ну-ну, не фырчитесь))
Извините пожалуйста, но можно объяснить почему та строчка кода не срабатывала, из-за чего? Добавлено через 14 минут Отдельное и огромное спасибо за снисходительность и ссылку.
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
08.11.2011, 11:59 | 15 |
Увы
зме 1с8 прописывается в системном реестре по-другому чем 1с7, поэтому и обращение к оле-серверам 1с81 и 1с82 стало "ComConnector". Понятно, что ошибки синтакс контроль не выдаёт, поскольку параметр символьный, а винда не находит приложение по этому параметру. Если интересно по-взрослому, в командной строке винды набрать regedit, а там поиском по ^F "ComConnector" пройти их все. И да раскроются кое-какие тайны . Кроме 1сников таких идентификаторов никто не придумал.
0
|
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
|
|
08.11.2011, 12:35 | 16 |
вообще все совсем не так. Есть такие понятия как CLSID и ProcID.
Ну да это выходит за рамки текущей темы. И ошибок выдавать обработка тоже не будет потому как установлено две платформы, следовательно ProcID зарегистрирован в реестре для обеих платформ и совсем не важно какой идентификатор. Не верно то, что топикстартер берет механизм одной платформы и пытается открыть совсершенно другой по структуре и метаданным, все равно что ложкой банку варенья открывать.
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
08.11.2011, 13:42 | 17 |
Правильно. Я для людей. Поскольку сам дилетант.
Абсолютно верно. Но какой идентификатор всё-таки важно. Просто все идентификаторы есть - тут я криво написал, согласен. И "аппликейшн" есть. Он, наверное, просто для других целей, раз нужен "коннектор". Да? Тут мне самому интересно. Я так понял, что сначала в обработке запускалось ядро 81 и открывалась база 81. Потом базу конвертнули в 82 и ядро 81 выдало штатное сообщение. Потом в тексте поменяли 81 на 82 с сохранением обращения к оле "Application". Да? А чем отличается "Application" от "ComConnector" я не очень знаю. На первый взгляд, "Application" д.б. шире и "ComConnector" как бы его фрагмент. Надо полазить по текстам обработок обмена. PS. Я ведь ни на что не претендую. Кроме жажды познания мною ничего не движет Открываем раздел реестра HKEY_CLASSES_ROOT. Находим любимые сочетания типа "1CV82 Application", там есть параметр CLSID примерно такой : {5CD98F13-1050-4b43-84F2-33AD97CFC287}. В HKEY_CLASSES_ROOT.CLSID находим этот класс. Там и екзешник (дээлелька), и тип, ну и т.д. - это уже совсем не моя грядка
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
08.11.2011, 18:15 [ТС] | 18 |
Во жуть, обманули меня молодую и неопытную просто таки ужасно, подсунули не ясно что с соединением(
Сначала открывалась обработкой 8.1, потом открывалась 8.2, а на третий раз (но уже с другой базой) ничего не открылось.
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
08.11.2011, 19:30 | 19 |
Я понял, что оба раза из 82. Обращение сначала к 81, потом к 82. К 82 к одной базе удачно, а к другой не удачно? Что-то тут не вяжется. Поюзать бы фрагмент программного текста, где идёт соединение с базой. От инициализации оле до обращения к метаданным.
Но если были удачные соединения с какой-то базой, то в другой базе могло не оказаться объекта какого-нибудь, флажка, там, процедурки... Опять же о возможном сообщении об ошибке можно только гадать. Коннектор м.б. не оснащён механизмом обработки ошибок, как аппликейшн... Так работает или нет? Если нет, то информации для диагноза малость не хватает. Весь анамнез нужен, а лучше обработка. моя почтуха duk337@gmail.com
0
|
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 25
|
|
08.11.2011, 20:20 [ТС] | 20 |
Именно так, и поэтому я была в печали, что вдруг перестало подключаться, вообщем то проблему я решила окружным путем и все нужные данные из базы в базу уже перетащила, осталось просто любопытство.
И до обращения к метаданным у меня не доходило, у меня уже не подключалось к базе. Сейчас через коннектор вроде бы подключается, но уже не идет с обращением. Сбегала в конфигурацию базы приемника, попялилась на модуль, лежит, название такое же, имя процедуры, к которой обращаюсь тоже...
0
|
08.11.2011, 20:20 | |
08.11.2011, 20:20 | |
Помогаю со студенческими работами здесь
20
Вывод файла из базы данных Архивация файла базы данных Чтение базы данных из файла Открытие файла из базы данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |