|
|
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Существует «Приложение» созданное в MS Access. Появилась необходимость перетащить данные на SQL Server но все запросы и формочки оставить в Access’е. Выполнил «Преобразование в SQL Server» и обнаружил что часть запросов работать перестала (тут, подозреваю, что чего-то при преобразовании типов намудрил), а часть стала работать _крайне_ (так и не длждался :) медленно (когда было локально было все в порядке). Связывалось по ODBC, как по ADO –- не нашел. Как все будет работать после преобразования в ADP проверить не могу т.к. надо VBA код править. А теперь, собственно, вопрос: Реально ли в такой связке заставить выполнятся ЛЮБЫ запросы (естественно, только те, которые работают в локальном варианте)? Под любыми понимаются и потом созданные (в том числе с помощью «Визуального конструктора запросов») ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 09:51 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
переписать все придется не получится так просто рыбку съесть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 09:57 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
У тебя (т.е. у Акеса) формат запросов Ansi SQL89. SQL - Ansi SQL92. Есть много отличий. Например, в символах подстановки. Вместо* -?. Ты бы попробовал сначала тока создать таблицы в сиквеле, прилинковать их к акесу (mdb). Тогда бы все бы работало, но не по технологии клиент-сервер. Акес тащил бы всю таблицу, обрабатывал бы ее у себя на существующих запросах. Затем потихоньку перетаскивал бы запросы и прочую логику на SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 10:06 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
2Andrey Mamitko > Связывалось по ODBC, как по ADO –- не нашел. Создайте новый проект в Access и посмотрите как подключается. :-) 2Senin Viktor > Тогда бы все бы работало, но не по технологии клиент-сервер. Акес тащил бы всю таблицу, обрабатывал бы ее у себя на существующих запросах. Ошибаетесь Вы. Все select, update , delete будут выполняться на сервере. На клиенте будут выполняться запросы, не поддерживаемые сервером ( типа crosstab ). Все чудесно видно в Profiler. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 10:41 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
>Ошибаетесь Вы. Все select, update , delete будут выполняться на сервере. На клиенте будут выполняться запросы, не поддерживаемые сервером ( типа crosstab ). Все чудесно видно в Profiler. Ну да. Только не все есть так хорошо. Слишком много ограничений. Выход только один - делать полноценное клиент-сервеное приложение на adp, например. Прилинковка нужна как некий переходный этап. Вот из хелпа к акесу : При доступе к внешним данным ядро базы данных Jet обрабатывает данные на локальном уровне только в тех случаях, когда невозможно выполнить их обработку на сервере внешней базы данных. В число операций запросов (определяемых вызывающими их командами SQL), которые выполняются на локальном уровне, входят следующие. 1 Объединение таблиц из различных удаленных источников данных. (Следует отметить, что если в объединение включены локальная таблица или запрос, содержащие несколько записей, и удаленная таблица с большим количеством записей, объединяемые поля которой индексированы, возвращаются только записи, соответствующие локальной таблице или запросу, что значительно повышает быстродействие запроса.) 2 Объединения, основанные на запросе с предикатом DISTINCT или предложением GROUP BY. 3 Внешние объединения, синтаксис которых не поддерживается данным сервером. 4 Предикаты DISTINCT, содержащие операции, которые не могут быть выполнены на удаленном сервере. 5 Оператор LIKE, используемый в текстовых полях и полях MЕМО (может не поддерживаться некоторыми серверами). 6 Аргументы многоуровневой инструкции GROUP BY в отчетах с несколькими уровнями группировки. 7 Аргументы первой инструкции GROUP BY в запросе с предикатом DISTINCT или предложением GROUP BY. 8 Перекрестные запросы, которые включают несколько статистических функций или предложение ORDER BY, определяемое пользователем. 9 Предикаты TOP n или TOP n PERCENT. 10 Определяемые пользователем функции, операторы, а также функции, не поддерживаемые данным сервером. 11 Сложные комбинации операций INNER JOIN, LEFT JOIN или RIGHT JOIN в подчиненных запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 11:10 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor: > Ты бы попробовал сначала тока создать таблицы в сиквеле, прилинковать > их к акесу (mdb). Тогда бы все бы работало, но не по технологии клиент- > сервер. Акес тащил бы всю таблицу, обрабатывал бы ее у себя > насуществующих запросах. Видимо именно это и происходит. Причем, как я понимаю, когда таблицы перетаскивается индексов в них нет и запросы безбожно тормозят именно поэтому. Или причина в другом и ее можно устранить? Попробовал создать ADP. Старые запросы не работают по причине некоторого несоответсвия языков (например нет функции CDate и First). Выходит на то, что: > В число операций запросов (определяемых вызывающими их командами > SQL), которые выполняются на локальном уровне, входят следующие. > .... > 10 Определяемые пользователем функции, операторы, а также функции, не > поддерживаемые данным сервером. Или я опять же чего-то не так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 11:44 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor\r >Ну да. Только не все есть так хорошо. Слишком много ограничений...\r При доступе к внешним данным ядро базы данных Jet обрабатывает данные на локальном уровне только в тех случаях, когда невозможно выполнить их обработку на сервере внешней базы данных. \r \r В случае с MS SQL Server, судя по Profiler, ограничений несколько меньше. Хотя они таки есть. :-)\r \r Прилинковка нужна как некий переходный этап. \r \r Лучше без нее обойтись. IMHO.\r \r Offtop: Я там примерчик просил. /topic/28881 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 11:45 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
2 Andrey Mamitko >Попробовал создать ADP. Старые запросы не работают по причине некоторого несоответсвия языков (например нет функции CDate и First). Или я опять же чего-то не так понял? Речь идет о mdb c прилинкованными таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 11:58 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
ИМХО, первая мысль, которая должна возникнуть - это "ради чего?". Ради чего вы все переносите на SQL Server? Не ради же собственно самого переноса? Если вы хотите получить какие-то плюсы от этого, то приложение придется серьезно переделать, как верно заметил Хам трамвайный. Методом параллельного переноса вы врядли получите какие-то серьезные плюсы. Скорее всего, лишь скорость резко снизится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 17:26 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Подскажите, есть ли реальный смысл использовать SQL-server если предполагается работа с БД на одном компьютере, ну от силы плюс 1-2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 20:52 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Вопрос не такой простой, как кажется. Если объемы данных очень большие, если работают с ними непрерывно, если требуется высокая надежность данных, архивирование без прерывания работы пользователей и т.д. и т.п. то имеет смысл переходить на SQL Server, даже если число пользователей не превышает трех. Если же эти требования не являются существенными, то я бы переходить на SQL Server не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 21:04 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Еще одно большое преимущество SQL - возможность усовершенствовать приложение и одновременно работать с базой. Да и нельзя спать спокойно, если в любой момент может залететь файл mdb или любой пользователь может случайно удалить пол-таблицы даных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 22:32 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Подскажите, есть ли реальный смысл использовать SQL-server если предполагается работа с БД на одном компьютере, ну от силы плюс 1-2? На одном - не имеет На 2-3 - скорее всего не имеет Еще одно большое преимущество SQL - возможность усовершенствовать приложение и одновременно работать с базой. Да и нельзя спать спокойно, если в любой момент может залететь файл mdb или любой пользователь может случайно удалить пол-таблицы даных. А что в Access мешает совершенствовать отдельно приложение? Для восстановления mdb можно сделать отдельный ярлык (или даже режим в программе) Летели же индексы ntx,cdx,..., а спали обычно спокойно А если любой пользователь может случайно удалить пол-таблицы - зачем же такие программы писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 10:39 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
>А что в Access мешает совершенствовать отдельно приложение? Для этого постоянно надо привязывать даные с другой базы, т.е. пользоваться связаными таблицами. Еще пол-беды если надо изменить только приложение, а если данные - надо править файл который может использоваться. Я не говорю, что задача не решаема, но в SQL все это намного проще. >Летели же индексы ntx,cdx А если залетят даные? При том они могут залететь не только по вине приложения. >А если любой пользователь может случайно удалить пол-таблицы... Пол-таблицы может и не удалит, но может что-то случайно и намутить. В SQL базу можно восстановить состоянием на ЛЮБОЕ время. Достаточно вспомнить древний FAT с его потерянными а иногда и перекрещиваемися кластерамы. Мое личное мнение, если более 1-го компа - используйте SQL, а солдат не мечтающий стать генералом никогда ним и не станет. Спросите у любого кто перешел на технологию клиент-сервер, согласен ли он перейти обратно - к хорошему привыкают быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 11:10 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
Ну что же, убедили. Я, как уже многим здесь известно, как раз хочу стать генералом. Буду ставить сервер. Еще вопрос очень для меня важный. Существует MSQLServer и множество удаленных пользователей (не в сети), которые реально могут себе позволить только Access (mdb). 1. Большая ли проблема слить необходимый объем данных с сервера в mdb файл для последующей отправки получившегося продукта диском в Тьмутаракань? 2. Сориентруйте, пожалуйста, на ключевые слова (понятия) по которым я могу найти информацию о структуре Access-приложения работающего по принципу: базы данных (mdb) расположены отдельно от приложения (в смысле рядом но в другом файле) если это вообще возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 14:58 |
|
||
|
Access + MS SQL Server
|
|||
|---|---|---|---|
|
#18+
>...которые реально могут себе позволить только Access (mdb). В принцепе MSDE (урезанный SQL) идет прямо с офисом. Но что касается Проекта, то действительно лучше mdb, так как всвязи с масовостью обяснять каждому клиенту как проинсталировать MSDE будет хлопотно. Но в Центре - только клиент-серверная технология. Хотя перекачкой даных не занимался, но думаю в этом нет никаких проблем. >Сориентруйте, пожалуйста, на ключевые слова В меню Accessa Сервис > Служебные программы > Разделение баз данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32143261&tid=1681779]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 338ms |

| 0 / 0 |
