Отправка данных двойного типа напрямую из C в MySQL - PullRequest
1 голос
/ 11 октября 2011

Я использую MySQL C API.Теперь у меня есть несколько данных двойного типа в C, и я хочу вставить их в базу данных.Все, что я теперь знаю, это использовать mysql_real_query () со строкой оператора, чтобы сделать это.Я беспокоюсь о потере точности, так как вышеописанный процесс включает в себя удвоение, затем удвоение.Есть ли способ избежать этого?Как отправка двойных двоичных данных непосредственно в MySQL?Я предполагаю, что MySQL реализует double так же, как и C.

1 Ответ

2 голосов
/ 11 октября 2011

Вы должны использовать подготовленный оператор с заполнителем для вашего double, а затем вы можете связать double без преобразования чего-либо в строку. Как то так:

char *insert = "insert into pancakes (d) values (?)";
MYSQL_BIND b;
MYSQL_STMT *stmt = mysql_stmt_init(mysql);
mysql_stmt_prepare(stmt, insert, strlen(insert));

b.buffer_type = MYSQL_TYPE_DOUBLE;
b.buffer = &your_double;
/* Fill in the rest of b...*/
mysql_stmt_bind_param(stmt, &b);

Ссылки:

...