the question: I am trying to use the C API to insert floating (4 byte) point data into a mysql table. It is very desirable to put the data in as the binary representation and not as a sprintf family converted string (to maintain precision & improve performance). My initial attempt is below - perhaps I have misunderstood the usage of mysql_real_query? I should make two notes on the following code: the host and source are the same machine so endianism is (should) not be an issue and I am also trying to insert two integers in the same manner. With the code as it is I get an error in mysql statement.
the table description: +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | frame | int | | MUL | 0 | | | atom | int | | MUL | 0 | | | x | float | | | 0 | | | y | float | | | 0 | | | z | float | | | 0 | | +-------+---------+------+-----+---------+-------+ the code: char insert_format[] = "INSERT INTO %s VALUES (%hhd%hhd%hhd%hhd, %hhd%hhd%hhd%hhd, %hhd%hhd%hhd%hhd, %hhd%hhd%hhd%hhd,%hhd%hhd%hhd%hhd)"; int build_real_insert(char *query, char *table, int frame, int atom, float x, float y, float z) { unsigned char *fbp = (unsigned char *)&frame; unsigned char *abp = (unsigned char *)&atom; unsigned char *xbp = (unsigned char *)&x; unsigned char *ybp = (unsigned char *)&y; unsigned char *zbp = (unsigned char *)&z; return sprintf(query, insert_format, table, fbp[0], fbp[1], fbp[2], fbp[3], abp[0], abp[1], abp[2], abp[3], xbp[0], xbp[1], xbp[2], xbp[3], ybp[0], ybp[1], ybp[2], ybp[3], zbp[0], zbp[1], zbp[2], zbp[3]); } in the body: query_len = build_real_insert(query,table_name,frame,i,x[i],y[i],z[i]); if(mysql_real_query(mysql,query,query_len)) { // error handling Many thanks, David -- David A. C. Beck [EMAIL PROTECTED] Valerie Daggett Laboratory Biomolecular Structure and Design Program Department of Medicinal Chemistry University of Washington, Seattle --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php