LINUX.ORG.RU

Забыл сказать самое важное - UDF для MySQL 5.

Не совсем понял - ORM - это object orinted maping?

mrco ★★
() автор топика
Ответ на: комментарий от mrco

Википедия - ORM (англ. Object-relational mapping), (русск. Объектно-реляционная проекция) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

anti_social
()

Да, можно. Читайте документацию или сформулируйте точнее вопрос.

anonymous
()
Ответ на: комментарий от mrco

Я к тому, что всю работу с базой на уровне SQL лучше выносить в отдельный слой, в своём приложении вообще абстрагируясь от его синтаксиса. Понятно же, что `Entry.objects.filter(private=0)[:5]` гораздо выше уровнем, чем `SELECT * FROM entry WHERE private=0 LIMIT 5;`. Когда поменяется хранилище, тебе понадобится только поправить орм, а функции не тронешь.

Уточни вопрос, что-то здесь не так.

Sphinx ★★☆☆
()
Ответ на: комментарий от anonymous

ок, подробнее. Имеется udf.c:
#include <my_global.h>
#include <my_sys.h>
#include <m_string.h> /* To get strmov() */
#include <mysql.h>
#include <ctype.h>
my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
{
if (args->arg_count != 3 || args->arg_type[0] != INT_RESULT
|| args->arg_type[1] != INT_RESULT || args->arg_type[2] != STRING_RESULT
)
{
strcpy(message,"Wrong arguments to metaphon; Use the source");
return 1;
}
initid->max_length=2048;
return 0;
}

void metaphon_deinit(UDF_INIT *initid __attribute__((unused)))
{
}

char *metaphon(UDF_INIT *initid __attribute__((unused)),
UDF_ARGS *args, char *result, unsigned long *length,
char *is_null, char *error __attribute__((unused)))
{
int cid = ((int*)args->args[0])[0];
int gid = ((int*)args->args[1])[0];
const char *text = args->args[2];

if (!text) /* Null argument */
{
*is_null=1;
return 0;
}
result[0]=0;
strcpy( result, text );
//SELECT name FROM table2 WHERE id=cid... и т.п.
*length= strlen(result);
return result;
}

Вот такая переделка стандартного udf_example.c, и в этой функции нужно выполнить ряд запросов по базе данных и на выходе дать сумарную строку. И собственно не понятно как работать с самим сервером. Просто подключаться через libmysqclient к самому же себе выглядит глупо, ведь этот код и так в самом сервере исполняется.

mrco ★★
() автор топика
Ответ на: комментарий от mrco

А зачем делать это в UDF ? Простая ХП не пойдет ?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.