Если я выполняю запрос к библиотеке MySQL Connector/C, то данные, которые я возвращаю, отображаются в прямом формате char *
, включая числовые типы данных.Являются ли данные, возвращаемые из запроса MySQL Connector/C не в формате родных данных C?
Например, если я выполняю запрос, который возвращает 4 столбца, все из которых равны INTEGER
в MySQL, вместо того, чтобы возвращать 4 байта данных (каждый байт представляет одно значение строки столбца), я фактически получаю назад 4 ASCII закодированные байты символов, где 1
фактически является байтом с числовым значением 49
в нем (ASCII для 1
).
Является ли это точной или я просто пропустил что-то в комплекте?
Нужно ли мне тогда atoi
, что возвращаемый байт в int
в моем коде или есть механизм для получения собственных типов данных C из клиента MySQL напрямую?
Я предполагаю, что мой настоящий вопрос: является ли структура mysql_store_result
преобразованием этих данных в кодированные представления ASCII способом, который может быть обойден кодом моего приложения?
mysql ints 32bit. для 4-х целых чисел вы должны вернуть 16 байт данных. –
Некоторые инструменты, которые вы используете, заставляют вас пропустить понимание результатов. Как именно вы «вернулись» – Hogan
Я определенно не знаю. Число '' '1000000' возвращается как 8-байтовая строка (ASCII = 49,48,48,48,48,48,48,0) - 7 байтов для чисел, а затем нулевой байт. – SimplePanda