Microsoft SQL Server Compact 3.5: руководство по установке и работе

Ошибка «Не удается загрузить библиотеку sqlceme35.dll» при запуске программы почти всегда означает, что в системе отсутствует или поврежден пакет Microsoft SQL Server Compact 3.5 — встраиваемая СУБД, которую многие приложения используют для локального хранения данных в файлах .sdf. Без корректно установленного рантайма такие программы либо не запускаются вовсе, либо падают при первой попытке обратиться к базе. Проблема решается установкой нужного дистрибутива, но есть нюансы с разрядностью и версией пакета.

Эта статья разбирает, что представляет собой SQL Server Compact 3.5, как его правильно установить на современные версии Windows, как подключиться к файлу базы данных и что делать с типичными ошибками. Материал будет полезен как пользователям программ, требующих этот компонент, так и разработчикам, поддерживающим старые проекты.

Что такое SQL Server Compact 3.5 и зачем он нужен

SQL Server Compact Edition — это компактная встраиваемая СУБД от Microsoft, не требующая отдельной службы или сервера. Вся база данных хранится в одном файле с расширением .sdf, а движок подключается к приложению в виде набора DLL-библиотек. Это принципиально отличает Compact от «полноценного» SQL Server, который работает как системная служба.

Версия 3.5 получила широкое распространение в конце 2000-х — начале 2010-х годов. На ней построено множество настольных приложений: учетные программы, справочники, кассовое ПО, утилиты для мобильных устройств на Windows Mobile. До сих пор при установке некоторых приложений мастер установки автоматически ставит пакет SSCERuntime как обязательную зависимость.

Где скачать и как установить

Официальный установщик называется SQL Server Compact 3.5 Service Pack 2 и распространяется бесплатно через каталог загрузок Microsoft. Ищите пакет с именем вида SSCERuntime-ENU.exe или локализованный вариант. Важно: SP2 — это финальное обновление линейки 3.5, и именно его следует ставить, так как многие программы собраны именно под него.

На 64-битных версиях Windows установщик ставит оба набора библиотек — x86 и x64. Это сделано намеренно: 32-битные приложения на 64-битной системе используют 32-битные DLL движка. Если вручную установить только одну разрядность, часть программ продолжит выдавать ошибку загрузки провайдера.

Порядок установки стандартный: запустите скачанный файл от имени администратора, примите лицензионное соглашение и дождитесь завершения. Перезагрузка обычно не требуется, но если программа была запущена во время установки — перезапустите её.

☑️ Проверка после установки SQL Server Compact 3.5

Выполнено: 0 / 4

Типичные ошибки и их причины

Самая частая жалоба — сообщение о невозможности загрузить sqlceme35.dll или провайдер System.Data.SqlServerCe. Причина почти всегда одна из трех: рантайм не установлен, установлена не та разрядность, либо приложение собрано под конкретную архитектуру (x86), а система предоставляет только 64-битные библиотеки.

Вторая группа проблем связана с самим файлом базы. Ошибки вида «база данных повреждена» или отказ в доступе к .sdf-файлу возникают при нехватке прав на папку, блокировке файла другим процессом или реальном повреждении после аварийного завершения. SQL Server Compact допускает только ограниченное число одновременных подключений, и два приложения, открывшие один файл, могут конфликтовать.

⚠️ Внимание: не удаляйте и не переименовывайте файлы .sdf, пока не убедитесь, что у вас есть резервная копия. В этих файлах хранятся рабочие данные программы, и восстановить их после удаления зачастую невозможно.
  • 🔧 Ошибка загрузки sqlceme35.dll — переустановите рантайм SP2 обеих разрядностей
  • 🔑 Отказ в доступе к файлу .sdf — проверьте права на папку и запустите программу от имени администратора
  • 🔒 Файл занят другим процессом — закройте все копии приложения и проверьте диспетчер задач
  • 💾 Повреждение базы — попробуйте встроенные методы Repair через API или штатную функцию восстановления в самой программе
📊 С какой проблемой вы столкнулись при работе с SQL Server Compact 3.5?
Ошибка загрузки DLL при запуске программы
Не удается открыть файл базы .sdf
База данных повреждена
Нужно перенести базу на другой компьютер

Строки подключения и работа с базой

Для разработчиков ключевой элемент — строка подключения. В простейшем виде она выглядит так:

Data Source=C:\Data\MyBase.sdf;Password=мойпароль;Max Database Size=4091

Параметр Password задается, только если база была создана с шифрованием. Параметр Max Database Size важен, потому что у Compact 3.5 существует ограничение на максимальный размер файла базы — по умолчанию он заметно меньше предельного, и при росте базы его нужно указывать явно. Точные допустимые значения зависят от версии движка, поэтому сверяйтесь с документацией Microsoft для вашего пакета.

Просмотреть содержимое .sdf-файла без программирования можно через SQL Server Management Studio старых версий (2008 линейки) либо через сторонние бесплатные просмотрщики, например инструменты вроде SQL Compact Toolbox — расширения для Visual Studio. Учтите, что современные выпуски SSMS поддержку Compact Edition уже не включают.

Сравнение с другими встраиваемыми СУБД

Чтобы понять место Compact 3.5, полезно сопоставить его с альтернативами, которые используются в похожих сценариях:

КритерийSQL Server Compact 3.5SQLiteSQL Server Express
Тип работыВстраиваемая, в процессе приложенияВстраиваемаяОтдельная служба-сервер
Файл базыОдин файл .sdfОдин файлФайлы .mdf/.ldf
УстановкаПакет рантайма в системеДостаточно DLL рядом с программойПолноценный инсталлятор
Поддержка MicrosoftЗавершена, продукт устарелАктивно развивается сообществомПоддерживается
Типичное применениеСтарые desktop-приложения .NETКроссплатформенные приложенияМногопользовательские системы

Из таблицы видно главное: SQL Server Compact 3.5 — это устаревший продукт, поддержка которого завершена. Он остается актуальным только как зависимость старых программ. Для новых проектов разумнее выбирать SQLite либо SQL Server Express / LocalDB.

⚠️ Внимание: поскольку продукт больше не получает обновлений безопасности, не стоит использовать его для хранения чувствительных данных в новых решениях. Для legacy-приложений это приемлемо, но для новых — нет.

Перенос базы на другой компьютер

Перенос сводится к двум шагам: установить рантайм SP2 на целевой машине и скопировать файл .sdf в нужную папку. Сама база не привязана к конкретному компьютеру — никакой активации или привязки к железу у формата нет.

Подводные камни кроются в деталях. Во-первых, если база зашифрована паролем, он понадобится и на новом месте — без пароля файл не откроется. Во-вторых, проверьте, куда именно программа ищет базу: путь может быть задан в конфигурационном файле приложения (например, в app.config в секции connectionStrings), и после переноса его придется поправить.

В-третьих, не копируйте файл, пока программа на исходном компьютере запущена и держит базу открытой. Скопированный «на лету» файл может оказаться в несогласованном состоянии. Корректный порядок: закрыть приложение, дождаться освобождения файла, затем копировать.

  • 📦 Установите на новый ПК тот же пакет SSCERuntime SP2, что и на старом
  • 📁 Скопируйте .sdf-файл только после полного закрытия программы-источника
  • 🔍 Проверьте путь к базе в настройках или конфигурационном файле приложения
  • 🔐 Подготовьте пароль, если база создана с шифрованием
Как узнать, какая программа использует SQL Server Compact на компьютере

Откройте «Программы и компоненты» и найдите Microsoft SQL Server Compact 3.5 в списке — сам факт установки говорит, что какая-то программа его потребовала. Найти конкретное приложение можно поиском файлов с расширением .sdf по диску: рядом с таким файлом обычно находится и папка программы, которая с ним работает.

Миграция данных на современные решения

Если старое приложение заменяется новым, данные из .sdf-файла часто нужно перенести. Прямого штатного конвертера «в один клик» у Microsoft для этого нет, поэтому используются обходные пути: экспорт таблиц через скрипты на .NET с использованием провайдера System.Data.SqlServerCe, либо сторонние инструменты миграции, умеющие читать формат Compact и выгружать данные в SQL Server, SQLite или CSV.

Практический совет: начните с выгрузки в CSV — это универсальный формат, который примет практически любая СУБД. Перед массовой выгрузкой проверьте корректность переноса типов данных: некоторые типы Compact (например, ntext или image) требуют аккуратного сопоставления с типами целевой базы.

Часто задаваемые вопросы

Можно ли установить SQL Server Compact 3.5 на Windows 10 и 11?

Да, пакет SP2 устанавливается и работает на современных версиях Windows, хотя официально продукт давно не поддерживается. На 64-битных системах убедитесь, что установлены обе разрядности рантайма — иначе 32-битные приложения не смогут загрузить движок.

Чем открыть файл .sdf без исходной программы?

Подойдут старые версии SQL Server Management Studio линейки 2008, расширение SQL Compact Toolbox для Visual Studio или сторонние просмотрщики формата. Если база зашифрована, потребуется пароль, заданный при её создании.

Что делать, если программа пишет «база данных повреждена»?

Сначала сделайте копию .sdf-файла. Затем проверьте, есть ли в самой программе штатная функция восстановления или сжатия базы. На уровне API существует метод Repair у объекта SqlCeEngine, но пользоваться им имеет смысл только при наличии резервной копии и понимания рисков.

Чем заменить SQL Server Compact в новом проекте?

Наиболее близкая по духу замена — SQLite: та же встраиваемая модель с одним файлом базы, но с активной поддержкой и кроссплатформенностью. Альтернатива в экосистеме Microsoft — SQL Server Express LocalDB, если нужна совместимость с T-SQL.

Нужно ли удалять SQL Server Compact 3.5 из системы?

Если на компьютере есть программы, которые его используют, — удалять нельзя: они перестанут запускаться. Если уверены, что зависимых приложений не осталось, пакет можно удалить через «Программы и компоненты», это безопасно для системы.