Хранение объектов в SQLite.Является ли это возможным? - PullRequest
0 голосов
/ 04 февраля 2012

У меня очень сложная проблема, но если я смогу это сделать, то в основном решу ее ударом.По сути, я создаю приложение, которое сначала будет работать как на iOS, так и на Android, а затем, возможно, для Blackberry и Windows Phone.Проблема в том, что я буду использовать Dropbox для синхронизации всех этих устройств.Данные, которые мне нужно сохранить, должны храниться в базе данных SQLite (в идеале, поскольку я не могу использовать базовые данные на всех устройствах, а с XML сложно работать на всех платформах).Я создам пользовательский объект (в C ++, или структуру, или что-нибудь, что мне нужно создать, пока я могу заставить это работать на всех платформах), и я хочу иметь возможность хранить необработанный объект C ++ в базе данных и позжечитать их данные в Android (а затем в Blackberry и WP).

Итак, в основном, мой вопрос заключается в том, могу ли я хранить необработанные объекты C ++ в базе данных SQLite?И поэтому сможете читать их на Android и Windows Phone?Это звучит глупо, так как программирование Android выполняется на Java, а WP - на C #, и это заставляет меня сомневаться, что мои объекты C ++ могут быть прочитаны из базы данных практически без проблем.

Ответы [ 2 ]

1 голос
/ 04 февраля 2012

Звучит так, как будто здесь два вопроса, я, вероятно, могу ответить на первый, но не уверен относительно второго. Ваш первый вопрос, можете ли вы сохранить скомпилированный объект C ++ в SQlite, ответ будет положительным. SQLite имеет тип данных BLOB, в котором вы можете хранить двоичные объекты, и он не будет пытаться выполнить какую-либо проверку для них, он будет просто хранить и возвращать их, как только получит их (проверка вообще не будет). Это совершенно независимо от того, на каком языке вы программируете, потому что Java и C # не должны знать или заботиться о том, что находится в этих объектах.

Что касается моего второго вопроса, могу ли я выполнить эти двоичные объекты, я склонен сказать «нет». Я не думаю, что существует какой-либо механизм, по крайней мере в Android, для выполнения этих двоичных объектов, как только вы извлекаете его из SQLite. NDK позволяет вам компилировать и создавать собственный код, но я не знаю ни одного способа динамической загрузки собственного объекта. Тем более, что вам придется скомпилировать его для всех ваших желаемых целей

Надеюсь, это поможет, David

1 голос
/ 04 февраля 2012

Я предполагаю, что это может быть что-то вроде дампа двоичных данных - структуры для i.e.- и ответ - да (тип данных blob).

В любом случае, если бы я делал что-то подобное, я бы сохранял закодированный json в текстовом поле БД, для простоты и переносимости. Помните, что этот выбор зависит от многих фактов, например, от того, как часто будет осуществляться доступ к БД для извлечения / сохранения этих объектов, или от того, насколько большими будут объекты и т. Д. И т. Д.

Надеюсь, это поможет

...