在我的应用程序中,是通过MySQL的C语言API操作MySQL数据库.
我有一个疑问,对于select得到的记录集,每一条记录MYSQL_ROW类型,实际上就是char**.也就是说所有的字段都是也字符串的形式返回的.如果某个字段为int,我就只能通过atoi进行转化了.
请问1.如果使用API,字段只能以字符串的形式返回?能不能直接返回int,long, double等类型?
2.如果必须要通过atoi,atol,atof等一系列函数进行结果的转化,那么对于一个上万条记录的查询而言,会不会对性能有一定的影响?
我有一个疑问,对于select得到的记录集,每一条记录MYSQL_ROW类型,实际上就是char**.也就是说所有的字段都是也字符串的形式返回的.如果某个字段为int,我就只能通过atoi进行转化了.
请问1.如果使用API,字段只能以字符串的形式返回?能不能直接返回int,long, double等类型?
2.如果必须要通过atoi,atol,atof等一系列函数进行结果的转化,那么对于一个上万条记录的查询而言,会不会对性能有一定的影响?
MYSQL_ROW row = mysql_fecth_row(...)
row[0]就是char*型的,标识第一列数据的在内存中的地址。
不要把返回值单纯看作是字符串,而看作是内存块。
那么数据有多长呢?用mysql_fetch_lengths()取得。
具体看一下MYSQL手册。
如果我们能获得数据在内存中的起始地址和长度,那想当什么类型处理就怎么处理。如果你已知类型是int的,就像这样转换:(int)*row[0]。
如果你说的方法可行的话。那么text与datetime类型的值。如何取呢?