SQLite на Windows

2 комментария

sqlite windows

SQLite — популярная СУБД для многих программ, включая Skype. Программой SQLite Expert Вы можете легко просмотреть чужую чужую переписку  . И никакие пароли тут не работают. О том, как это сделать, расскажу в следующей статье, а сегодня поведаю как быть, если надо использовать SQLite на Windows XP, если мы пишем приложение на .NET. Для начала нам необходимо загрузить подходящую сборку SQLite под используемую нами версию .NET Framework с официального сайта. Чтобы продемонстрировать, как может ничего не работать, если мы не внимательно прочитали предупреждение сайта или даже если и читали, но не знали, что тестовая система окажется настолько старенькой, пойдем сначала по первому пути.

Предположим, что у нас есть приложение, написанное на .NET Framework 4.0, которое записывает некоторую информацию в базу данных SQLite. Чтобы такое приложение написать, для воспроизведения первого варианта развития событий скачиваем библиотеки указанной СУБД из раздела «Precompiled Binaries for 32-bit Windows (.NET Framework 4.0)» по второй ссылке (mixed-mode assembly нам не нужна, у нас предполагается только управляемая сборка). Распаковываем zip-архив, берем из архива 3 библиотеки:

  1. SQLite.Designer.dll
  2. SQLite.Interop.dll
  3. System.Data.SQLite.dll

и копируем их в папку с проектом программы. Для этого в Visual Studio щелкаем правой кнопкой мыши по имени проекта и выбираем пункт Add (Добавить) -> Existing Item… (Существующий элемент…). В открывшемся окне находим папку с проектом Вашей программы на .NET, в фильтре файлов выбираем All Files (*), выделяем три перечисленных файлика и нажимаем кнопку Add (Добавить).

Добавить существующий элемент в Visual Studio

В правой панели Visual Studio должны появиться библиотеки SQLite.

visual studio sqlite

Выделяем данные библиотеки в самой панели Solution Explorer, зажав кнопку Ctrl. Чуть ниже у нас должна располагаться панель Properties (Свойства). Находим свойство «Copy to Output Directory» и выбираем значение «Copy Always».

Затем в свойствах проекта щелкаем правой кнопкой мыши по пункту References.

visual studio references

В контекстном меню выбираем «Add Reference…».

В открывшемся окне нажимаем кнопку «Browse…», в очередном окне  ищем библиотеки

  1. SQLite.Designer.dll
  2. System.Data.SQLite.dll

Выделяем их и нажимаем «Add» (Добавить).

Таким образом, мы добавили в проект нашей программы библиотеки СУБД SQLite. Наполняем наше приложение кодом для работы с базой данных, это не входит в рамки данной статьи, но рабочий проект Visual Studio 2013 демонстрируемой тестовой программки выложу в конце статьи.

Наше тестовое приложение выводит на экран содержимое тестовой базы, состоящее из трех городов:

sqlite result

Приложение запускалось в Windows 10, причем платформа (Platform target) в свойствах проекта на вкладке Build в обязательном порядке была выставлена x86. Иначе библиотечки отказывались работать.

Все работает! 

О чем же я говорила в начале статьи?  Ах да, перенесем данный проект на машину с Windows XP SP2 с установленным .NET Framework 4.0 и попробуем запустить получившийся exe-шник.

windows xp

Ooops!!

sqlite error ошибка

Что, простите?! Это как?! Мы же все сделали правильно!

lamb wtf

Что ж, вот тут как раз и необходимо вспомнить то, о чем я говорила в самом начале. RTFM Читаем, что написано на сайте: «All downloadable packages on this web page that do not include the word «static» in their file name require the appropriate version (e.g. 2005, 2008, 2010, 2012, 2013, or 2015) of the Microsoft Visual C++ Runtime Library». А мы как раз скачали библиотеку без статической линковки Microsoft Visual C++ Runtime. Смотрим в установленных программах на Windows XP  — таких в квартире не живет. Но производитель о нас позаботился и выложил сборки данной библиотеки со статической линковкой. Поэтому еще раз идем на официальный сайт и скачиваем тот же zip-архив библиотеки, только уже из раздела «Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0)».

Те библиотеки удаляем из проекта, выделив их на панели Solution Explorer в Visual Studio с зажатой клавишей Ctrl, щелкнув правой кнопкой мыши по выделенным объектам и кликнув по пункту контекстного меню «Delete» (Удалить). А новые со статической линковкой копируем на их место, повторив все действия, описанные в данной статье выше.

Пересобираем проект, на Windows 10 все как работало, так и работает, а теперь программа «завелась» на на старой хрюше:

sqlite на windows xp

Вот сам тестовый проект с test.db. Ее либо надо положить в папку Документы Вашей учетной записи, либо поправить код.

Подпишитесь на обновления блога!


2 комментария “SQLite на Windows”

  1. Артём

    Спасибо. Всё работает!

    Ответить
    • NoService
      NoService

      Артём, не за что! http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ad.gif

      Ответить

Оставьте комментарий

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> <img src="" alt="" class="" width="" height="">

http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ab.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ac.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ag.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ah.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ai.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ak.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/am.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/an.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ao.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aq.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ar.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/at.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/av.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aw.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ay.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/az.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bb.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bc.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bd.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/be.gif 
больше...