mysql, unsigned поле, через C-интерфейс
От: SergH Россия  
Дата: 24.05.10 16:48
Оценка:
Привет!

mysql 5.1.35

Есть табличка, в которой одно из полей -- unsigned int.
Есть программа, которая пишет в неё данные через mysql_stmt_bind + mysql_stmt_execute.

Проблема возникает при попытке передать значение с установленным старшим битом. Оно трактуется как отрицательное и в таблицу пишется 0. Проблема связана с тем, что у структуры MYSQL_BIND в списке типов, которые она может описывать, нет ни слова про unsigned. MYSQL_TYPE_INT и всё.

Я пока вижу два варианта:
— перейти на bigint
— отказаться в этом месте от mysql_stmt_bind, пихать данные в запрос напрямую.

Оба варианта не нравятся. Может есть ещё какой-то, который я пропустил?
Делай что должно, и будь что будет
Re: mysql, unsigned поле, через C-интерфейс
От: SergH Россия  
Дата: 24.05.10 16:53
Оценка: :)
Здравствуйте, SergH, Вы писали:

SH>Оба варианта не нравятся. Может есть ещё какой-то, который я пропустил?


Дорогой Сергей, конечно есть!
У MYSQL_BIND есть волшебное поле is_unsigned. Оно как раз для этого.
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.