![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
gen1s |
|
||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Здравствуйте. Передо мной поставили задачу сравнить две базы данных (.mdb - файлы) на наличие различающихся запросов. Т.е. нужно сравнить запросы с одинаковыми именами и, если текст запросов различается, сообщить об этом. Я до этого никогда с таким типом задач не сталкивался. Быстрое гугление подсказало, что есть такая штука - ADOX.
Итак, есть два файла с бд - db4.mdb и db5.mdb. Мне их просто дали. Вот небольшой кусочек кода:
Кстати, некоторые запросы хранятся в коллекции Views и Tables, а некоторые в Procedures. Но это сейчас не важно. Я точно знаю, что текст этих запросов отличается. Но в переменных str1 и str2 он абсолютно одинаков (и равняется тексту запроса из db4.mdb). Самое интересное что
то значения будут разные и правильные. Т.е. неправильно работает Command.CommandText. Но. Если я открою db5.mdb в Access этот запрос и просто тупо нажму Ctrl-S, то после этого вернутся разные (реальные тексты запросов). В чём может быть проблема? Может, я вообще неправильно делаю. |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Почему это надо делать именно на VB6? а не непосредствено в Аксессе?
Добавлено через 47 секунд А вообще посмотри в сторону коллекции QureyDefs. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gen1s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Потому что так сказали. Не я выбирал инструмент. Мне кажется, что это связано со способом хранения информации в mdb-файлах. Т.е., если я выкину весь код с db4.mdb, то catDB5.Procedures("dataPWorkNew").Command.CommandText всё равно вернёт текст запроса ataPWorkNew из db4.mdb. Чтобы заработало, Ctrl-S нажимать не надо. Я пытаюсь в Access открыть запрос в конструкторе. Он ругается, что запрос неверен и отобразить в режиме конструктора не может. При следующем открытии сообщение не появляется и начинает корректно работать мой код. Похоже, что db4.mdb был оригинальный файл. Потом его модифицировали и переименовали в db5.mdb. Я пробовал и через ADO вместо ADOX. Та же фигня. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
PS. Запускать Аксесс и тем более открывать базу - не нужно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gen1s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Akina, спасибо большое за код. Но и это не помогло. Та же фигня.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Базы выкладывай, да... только поудаляй всё лишнее из них и сожми, проверь, что проблема остаётся, потом заархивируй и приаттачь к сообщению. Посмотрим.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gen1s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Для запроса "CurrentCounts" текст возвращается правильный. Сжатие тоже не помогло. Вообще, моя программа работает правильно: создал сам две бд и она всё правильно определила. Всё дело, скорее всего, именно в этих бд.
В принципе, это всё уже не нужно. Просто хочется понять, в чём проблема. Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Проверил на выложенных базах. Запросы а) реальные б) разные.
Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Вы разницу между запросом, представлением и хранимой процедурой знаете? Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gen1s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
В терминологии Access вроде всё - Запрос.
Я не до конца понял, что эти файлы дают. По ним что CurrentCounts различаются, а dataPWorkNew - нет. Но это ведь не так. Т.е., если я в Access попытаюсь выполнить запрос, то результат будет разный. Или я чего-то не понимаю (не знаю)? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Нет. Только представления и запросы в терминах Аксесса - запросы. Вернее, для Аксесса это одно и то же, различий нет (фактически представлений нет как таковых). В БД Аксесса можно через ADO(X) создавать хранимые процедуры и пользовательские функции. Но они недоступны из GUI, не отображаются в окне базы данных и могут быть обнаружены и использованы только через ADO(X) Connection. Более того, ХП/ПФ может иметь то же имя, что и запрос. Во что ты собственно и утыкаешься. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gen1s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Akina, спасибо за информацию. Не знал всего этого.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |