2008-08-14 18 views
4

Ich habe eine MySQL-Abfrage, die ein Ergebnis mit einer einzigen Spalte von ganzen Zahlen zurückgibt. Gibt es eine Möglichkeit, die MySQL C-API dazu zu bringen, diese als ganze Zahlen und nicht als ASCII-Text zu übertragen? In diesem Fall gibt es eine Möglichkeit, MySQL dazu zu bringen, irgendeinen anderen API-Code als ASCII-Text zu verwenden. Ich denke, das würde ein bisschen Zeit in sprintf/sscanf oder was auch immer sonst verwendet werden, sowie in der Bandbreite sparen.Gibt es irgendeine Art von Nicht-Text-Schnittstelle zu MySQL?

Antwort

1

Sie haben wahrscheinlich kein Glück, um ehrlich zu sein. Betrachtet man die MySQL C-API (http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html, http://dev.mysql.com/doc/refman/5.0/en/c-api-datatypes.html, siehe MYSQL_ROW), scheint es keinen Mechanismus zu geben, Daten in ihrem eigentlichen Typ zurückzugeben ... die Freuden der Verwendung von Strukturen, denke ich.

Sie könnten immer einen Wrapper implementieren, der das Typattribut MYSQL_ROW (http://dev.mysql.com/doc/refman/5.0/en/c-api-datatypes.html) überprüft und eine C-Union zurückgibt, aber das ist wahrscheinlich ein schlechter Tipp; Tu das nicht.

Verwandte Themen