Android.Можно ли написать пользовательскую функцию на C / C ++ и использовать ее в запросе SQL? - PullRequest
2 голосов
/ 08 ноября 2010

SQLite3 не поддерживает хранимые процедуры.Можно ли написать пользовательскую функцию на C / C ++ и использовать ее в запросе SQL?

Что-то в этом роде

SELECT * FROM table WHERE CUST_FUNCTION(name1, name2) = 1

или

SELECT CUST_FUNCTION(name1, name2) FROM table

Возможно, у вас есть какие-тохороший пример, как это сделать.

Ответы [ 3 ]

4 голосов
/ 25 января 2011

К сожалению, кажется, что вы не можете.

Я искал что-то подобное для расчета расстояния из запроса sqlite - иногда его упоминали какметод для этого.

sqlite поддерживает что-то вроде этого, поэтому документация и другие ссылки предполагают, что это возможно. Однако , просмотрев различные источники, я пришел к выводу, что, хотя вы можете сделать это в нескольких местах, использующих sqlite (например, iPhone, я считаю), вы не можете сделать это в Androidsqlite (по крайней мере, я не нашел никого, способного сделать это в Android).

Вот несколько ссылок, которые я нашел, предполагая, что это невозможно в Android, и, к сожалению, я не смогне найдено никаких контрпримеров.Но мне бы очень хотелось узнать, что я не прав в этом ...


Android-сортировка sqlite по вычисленному столбцу (расстояние координат)

  • "Техника, которую вы описываете, кажется, неприменима к Android, который не может использовать sqlite3_create_function (). - CommonsWare 9 января '10 в 19:00"

Sqlite на Android: как создать функцию sqlite dist db - для использования в приложении для расчета расстояния с использованием lat, long

  • org.sqlite isне Android API, так что это не имеет значения.- hackbod 1 марта '10 в 4:59 1
  • Вы правы, org.sqlite не является Android API.Однако вы можете использовать его для реализации контент-провайдера, который делает то, что он просил.- Джошуа Смит 1 марта 2010 года в 12: 39
  • На самом деле, я довольно скептически отношусь к подходу, изложенному в ответе поставщика контента, на который вы ссылаетесь.org.sqlite отсутствует в Android, и неясно, существует ли реализация org.sqlite, которая будет работать совместно со средой Android SQLite.- Pentium10 27 июня 2010 года в 9:12

0 голосов
/ 25 января 2011

Да, это возможно, но это не будет официально поддерживаться на Android.Мы можем сделать это, написав наш общий объект на C и SQLite.Я думаю, что другим способом было бы использовать Java-библиотеки для SQLite, вместо этого полагаясь на библиотеки Google

0 голосов
/ 09 ноября 2010

Я не занимался разработкой для Android, но это, безусловно, возможно на других платформах.

Посмотрите на sqlite_create_funciton api http://www.sqlite.org/c3ref/create_function.html

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