Swift - Могу ли я получить доступ к SQLITE с другого смартфона? - PullRequest
0 голосов
/ 31 января 2020

У меня есть приложение swift для управления небольшими магазинами с помощью SQLITE на моем смартфоне, и я подумал, что другое приложение, предназначенное для продавцов, может получить доступ к той же базе данных. Как будто телефон был сервером, или другой смартфон получил доступ к тому же файлу .sqlite.

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

Возможно ли это сделать?

Что-то вроде кода ниже.

        var db: OpaquePointer? = nil

        let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
            .appendingPathComponent("some form or link with the address of the other smartphone")

        if sqlite3_open(fileURL.path, &db) == SQLITE_OK {

            print("Successfully opened connection to database at \(String(describing: fileURL.path))")

        } else {

            print("cant open database")

        }

1 Ответ

1 голос
/ 31 января 2020

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

Возможно, вы захотите взглянуть на другую СУБД, например MySQL, MariaDB или любая из других систем баз данных, которые реализуют модель клиент-сервер (т.е. одно приложение считывает и записывает данные в / из базы данных и общается с клиентами через сетевые сокеты) или самостоятельно реализуют модель клиент-сервер поверх SQLite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...