Zainab Mostafa Ответов: 3

Я хочу преобразовать базу данных из SQL server в access


Я хочу преобразовать базу данных из SQL Server в Access.

У меня есть веб-сайт с SQL Server, ASP.NET и C#, и я хочу преобразовать базу данных из SQL Server в Access, не теряя ничего на веб-сайте.

Как я могу это сделать ?


Что я уже пробовал:

Я попробовал сделать строку подключения с ole db, но код вставки и обновления отличается от SQL server

Я просто хочу изменить только соединение
и код остается таким, как есть

Maciej Los

Почему? Есть ли для этого какая-то особая причина?

Zainab Mostafa

возможности клиентского устройства слабы

phil.o

Если ваш сайт изначально не был спроектирован с использованием абстрактного источника данных, это не является тривиальной задачей. Вы должны либо переписать существующий код, чтобы учесть изменение СУБД, либо переписать его, абстрагируя слой данных. Одна строка подключения ничего не может сделать для этой проблемы.

RedDk

В принципе, это довольно просто. Но тогда есть тот факт, что доступ поставляется во многих версиях ... что делает получение чего-либо библиотекарски 64-битного для связи с чем-то другим 32-битным приводом большим большим запретом.

В любом случае, получение базы данных SQL Server, работающей под управлением 64-разрядной версии, можно выполнить с помощью Excel и Access (32-разрядной версии), если вы нацелены на экземпляр MSSMLBZ. Используйте простые инструменты SQL, доступные на ленте, и убедитесь, что 32-разрядный MSSMLBZ (или его эквивалент, как я себе представляю) запущен и подключен (вы сможете увидеть это в Проводнике баз данных Excel или Access).

3 Ответов

Рейтинг:
25

OriginalGriff

Я бы предположил, что это, вероятно, ошибка.
Это веб-сайт, который всегда подразумевает, что требуется многопользовательский доступ к БД, иногда массово многопользовательский. SQL Server хорош в этом.

Доступ есть ... не очень хорошо получается. На самом деле, единственная причина, по которой я не использую слово "ужасный", заключается в том, что ругательства доступны.

Access - это однопользовательская база данных, которую можно использовать - в ограниченном смысле-для многопользовательского доступа; но она всегда будет Пита и всегда будет давать вам периодические проблемы, которые очень трудно решить. А проблемы с производительностью вы не поверите, как только количество пользователей начнет расти.

Даже тогда это не просто случай изменения строки подключения, если только ваше приложение не было написано с нуля с учетом многопользовательского доступа к одному файлу. Некоторые синтаксисы отличаются (SQL Server использует CASE, Access использует IIF, например), базы данных Access меньше, чем SQL Server ...

Серьезно, я бы даже не рассматривал базу данных доступа для веб-сайта. Только SQL Server или MYSql!


Zainab Mostafa

этот веб-сайт предназначен только для одного пользователя (врача)

W∴ Balboos, GHB

Существует доступная бесплатная версия SQL Server - ограниченное количество подключений.

Я полагаю, вы могли бы откопать копию FoxPro, где - нибудь-хотя гораздо лучше, чем доступ, он не поддерживался в течение многих лет.

Если его оборудование настолько старо, что не может поддерживать ничего из этого - он давно прошел точку экономии денег, не обновляя.

Maciej Los

5ed!

Рейтинг:
1

F-ES Sitecore

Цитата:
Я просто хочу изменить только соединение


Ты не можешь. Если ваш код использует такие объекты, как SqlConnection и т. д., то ваш сайт может работать только с SQL Server. Если вы хотите использовать Oledb вместо этого, вам нужно будет изменить все ваши SqlConnection на OleDbConnection и так далее. Если вы используете жестко закодированный SQL, то вам также нужно будет изменить его, чтобы быть совместимым с ole db. Если вы используете хранимые процедуры, вам нужно будет преобразовать их в запросы доступа, и если ваши хранимые процедуры не являются невероятно простыми, Вы тоже будете бороться с этим и, возможно, вам придется переписать части вашего кода, чтобы приспособиться.

Если вы используете Entity Framework, то вам становится еще хуже.

Короткий ответ заключается в том, что то, что вы хотите сделать, невозможно. Сколько усилий это потребует, зависит от того, как вы написали сайт, который мы не знаем. Если вы действительно собираетесь взять на себя усилия по преобразованию этого в Access, то, как было предложено, вы не должны менять сайт с тесно связанного с SQL Server на тесно связанный с Access, вместо этого вы должны написать уровень абстракции, который позволяет вам в значительной степени переключаться между SQL и Access или даже легко переключаться на MySql, если это становится обязательным требованием.


Рейтинг:
1

Dave Kreskowiak

Цитата:
Я просто хочу изменить только соединение
и код остается таким, как есть

Невозможно.

Вы написали свой код для SQL Server, используя объекты, специфичные для SQL Server, SqlConnection, SqlCommand, SqlDataAdapter, ... Sqlxxxx, неважно.

Вы должны все изменить код, чтобы использовать вместо доступа, который использует объект oledbconnection, oledbcommand объект, объект oledbdataadapter, ..., OleDbxxxx.

Да, и не вздумайте просто искать и заменять "Sql" на "OleDb". Это тоже не спасет тебя от работы. Сами операторы SQL также могут быть переписаны, а типы параметров изменены.


Теперь, если вы использовали Entity Framework для обработки всей своей активности в базе данных, вы вообще не можете использовать Access. Это не поддерживается.


Access не является полной реализацией SQL. Это подмножество TSQL с расширениями, специфичными для доступа.