Метка «sqlite3»

Конвертация КЛАДР в формат sqlite.

  1. Скачиваем кладр с официального сайта
    wget www.gnivc.ru/html/gnivcsoft/KLADR/Base.7z
  2. Устанавливаем архиватор 7z
    sudo yum install p7zip
  3. Распаковываем архив
    7za e Base.7z
  4. Устанавливаем sqlite
    sudo yum install sqlite
  5. Устанавливаем sqlite3-dbf
    sudo yum install sqlite3-dbf
  6. Запускаем sqlite3
    sqlite3 my_kladr.db
  7. В sqlite загружаем модуль libspatialite
    .load libspatialite.so.2
  8. Импорт данных из КЛАДР в sqlite
    CREATE VIRTUAL TABLE virt_street_tbl USING VirtualDbf('/home/developer/kladr/STREET.DBF', 'CP866');
    CREATE VIRTUAL TABLE virt_socrbase_tbl USING VirtualDbf('/home/developer/kladr/SOCRBASE.DBF', 'CP866');
    CREATE VIRTUAL TABLE virt_kladr_tbl USING VirtualDbf('/home/developer/kladr/KLADR.DBF', 'CP866');
    CREATE VIRTUAL TABLE virt_flat_tbl USING VirtualDbf('/home/developer/kladr/FLAT.DBF', 'CP866');
    CREATE VIRTUAL TABLE virt_doma_tbl USING VirtualDbf('/home/developer/kladr/DOMA.DBF', 'CP866');
    CREATE VIRTUAL TABLE virt_altnames_tbl USING VirtualDbf('/home/developer/kladr/ALTNAMES.DBF', 'CP866');

    create table street_tbl as select * from virt_street_tbl;
    create table socrbase_tbl as select * from virt_socrbase_tbl;
    create table kladr_tbl as select * from virt_kladr_tbl;
    create table flat_tbl as select * from virt_flat_tbl;
    create table doma_tbl as select * from virt_doma_tbl;
    create table altnames_tbl as select * from virt_altnames_tbl;

    drop table virt_street_tbl;
    drop table virt_socrbase_tbl;
    drop table virt_kladr_tbl;
    drop table virt_flat_tbl;
    drop table virt_doma_tbl;
    drop table virt_altnames_tbl;

  9. Выходим из sqlite
    .exit

Резлуьтат: файл my_kladr.db содержит КЛАДР в формате sqlite.

Подключение файла my_kladr.db к базе данных PostgreSQL
Читать полностью »

Во время разработки большого проекта наступает такой момент, когда надо встроить в приложение библиотеку из мира open source с подходящей лицензией. Например, вам захотелось ускорить декодирование картинок, или понадобился sqlite3 с fts4, или нужны какие-то плюшки из libicu, которых нету в системной libicucore.

Для этого библиотеку, которая понадобилась, нужно будет собрать для 5 архитектур: armv7, armv7s, arm64, i386, x86_64. С кросскомпиляцией есть много подводных камней, на которые не хотелось бы наткнуться, когда есть уже проверенные решения. В этом коротком посте я расскажу об автоматизации сборки библиотек на примере protobuf и sqlite3.
Читать полностью »

Рейтинг постов хаба
Привет!

Решил посмотреть лучшие посты своего любимого хаба и с ужасом обнаружил, что такой фичи нет.
Когда это нас останавливало!

Прошу под кат всех желающих посмотреть на самые рейтинговые посты для каждого хаба + пару слов о реализации скрипта.

Читать полностью »

Читатели, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книге Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.

Core Data для iOS. Глава №3. Теоретическая часть

Содержание:

Читать полностью »

Что такое и для чего OpenDNSSEC есть информация в сети. Подробной информации на эту тему немного и в основном на английском. Попробую восполнить пробел. Сам не являюсь специалистом в этой области, было интересно, захотел, сделал.

Статья писалась одновременно с установкой/настройкой OpenDNSSEC. В общей сумме ушло около месяца. Процедура выполнялась дважды. Сначала был установлен OpenDNSSEC 1.3. Зоны подписаны, якоря у регистратора домена(РД) прописаны, цепочка доверия выстроена, о чём сообщалось в личном кабинете регистратора домена(РД), в общем всё получилось. Спустя полгода, в результате очередного ручного обновления портов, порт OpenDNSSEC 1.3.x был автоматически обновлён на 1.4.1, а там много чего по другому. Но всё, разумеется, продолжало работать без каких-либо намёков на проблему. Обнаружил случайно, когда в DNS зону потребовалось внести изменения. И началось…
Читать полностью »

Так случилось, что в короткие сроки появилась необходимость перевезти 70 человек с аналоговыми телефонами из одного бизнес центра в другой. Ситуация усугублялась тем, что в новом офисе у владельца не было аналоговых портов в АТС, а АТС в старом принадлежала телефонной компании. Пришлось в короткие сроки внедрять IP телефонию с переносом всех аналоговых городских линий на Asterisk. Поставка оборудования была назначена на день предшествующий дню переезда, что означало — времени на развертывание телефонии будет очень мало.

Что из этого вышло под катом.
Материала много, так что не пугайтесь.
Читать полностью »

Недавно я столкнулся с задачей оптимизации запроса к Sqlite в моем iOS приложении.
Задача заключалась в следующем. Имелся список документов (PDF файлов), словарь (список слов), ну и связь документов и слов из словаря (вхождение слов в документ). Необходимо было реализовать поиск и вывести список документов в которых есть введенное слово.

Структура базы имела следующий вид:
Читать полностью »

Skype database crashПромучавшись в очередной раз над восстановлением побившейся базы, решил набросать краткую инструкцию, как мне удалось вернуть почти всю историю сообщений скайпа. Знатоки sqlite3 приглашаются для написания более лучших способов, чем я нащупал наугад.

Предыстория

Переустановил ОС Win7, установил skype (6-й), привычно скопировал всю папку профиля из старого:
%AppData%RoamingSkypeмой_профиль
в новое место.

Запускаю скайп и вдруг он виснет на автовходе. После повторного запуска вижу приглашение войти. Вхожу — все контакты на месте, а сообщений — практически нигде нет. Только в некоторых групповых чатах сохранились. Вся личная переписка, коей скопилось немало — исчезла. Проделал N(^k) попыток копировать базу данных, удаляя файлы блокировок, is-corrupt и прочие. Скайп ругается, что с базой проблемы, затем просит перезайти — после чего сообщений нет.
Погуглив, нашел хабро-посты про экспорт сообщений, угон аккаунтов и т.п. Ага, значит sqlite! Это обнадёживает.
Читать полностью »

Хочу поделиться очередной реализацией паттерна ActiveRecord на Objective-C, а конкретно для iOS.

Когда только начинал использовать CoreData в iOS разработке, то уже тогда появлялись мысли о том, что это взаимодействие можно как-то упростить. Спустя некоторое время я познакомился с ActiveRecord из RubyOnRails, и тогда я понял чего мне не хватает.
Немного поискав на гитхабе нашел массу реализаций, но по разным причинам они мне не понравились. Одни написаны для CoreData, а мне она не нравится, в других нужно создавать таблицы руками, или писать raw sql-запросы. А в каких-то код был до неприличия ужасен, я и сам порой пишу не очень чисто, но огромный забор из вложенных if/switch/if/switch это чересчур.
В конце концов решил написать свой велосипед, без CoreData и без SQL для пользователя.
Главной причиной этой разработки был, есть и, надеюсь, будет — интерес к разработке.

Вот что из этого всего вышло.
А под катом небольшое описание возможностей и реализации (на самом деле много текста и кусков кода, резюме в самом конце статьи).
Читать полностью »

Python / Python sqlite3: Находим медленные запросы
Привет, коллеги!
При работе с базами данных sqlite передо мной возникла задача поиска медленных запросов и их логгирования.
Спросив всезнающий Google я к сожалению не обнаружил ни одного решения (плохо искал?).
Поэтому я хочу предложить свой вариант протоколирования.
Подсчет времени выполнения запроса мы будем вести на уровне курсора.
Для этого переопределим данный класс добавив в него подсчет времени выполнения запроса.
import sqlite3import time
 class mycursor(sqlite3.Cursor):
    def execute(self, *args, **kwargs):
        timestart = time.clock()
        query = super(mycursor, self).execute(*args, **kwargs)
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js