在我的应用程序中,是通过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等一系列函数进行结果的转化,那么对于一个上万条记录的查询而言,会不会对性能有一定的影响?
解决方案 »
- 32位bmp转24位
- 想做一个这样的软件,大家进来看看
- 在基于对话框的工程中,可不可以象单文档一样加上最大话和最小化按纽?
- 谁有CodeJock的Extreme Toolkit V1.9.3.1 正式版?
- 求教,初级入门问题
- 请教一个问题,知道的人请回答,谢谢。
- 谁知道鼠标的图像是如何存取的,哪里有例子
- 请教各位,关于char 类型的数组的最大长度
- 请教:如何学sdk 编程?
- 如何使自己的浏览器设置为 windows 的默认济览器?
- 有关在DLL中向主窗口中加载的CControlBar*一个问题
- socket中的accept的第二个参数是客户端的IP地址,怎么把它放到一个char*或者char数组中
MYSQL_ROW row = mysql_fecth_row(...)
row[0]就是char*型的,标识第一列数据的在内存中的地址。
不要把返回值单纯看作是字符串,而看作是内存块。
那么数据有多长呢?用mysql_fetch_lengths()取得。
具体看一下MYSQL手册。
如果我们能获得数据在内存中的起始地址和长度,那想当什么类型处理就怎么处理。如果你已知类型是int的,就像这样转换:(int)*row[0]。
如果你说的方法可行的话。那么text与datetime类型的值。如何取呢?