该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如题,
我在mysql建一个表table_1,其字段如下:
+--------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+-------+
| SN | char(32) | NO | PRI | NULL | |
| MAC | char(32) | NO | | NULL | |
| HWVersion | char(32) | NO | | NULL | |
| DeviceType | tinyint(3) unsigned | YES | | NULL | |
| VideoInputNum | tinyint(3) unsigned | YES | | NULL | |
| VideoCodecCapacity | tinyint(3) unsigned | YES | | NULL | |
| AlarmInputNum | tinyint(3) unsigned | YES | | NULL | |
| Reserve | char(8) | YES | | NULL | |
+--------------------+---------------------+------+-----+---------+-------+
我在应用程序中定义了如下结构体
typedef struct NPE_DEVICE_STATIC_INFO
{
int8_t SN[32];
int8_t MAC[32];
int8_t HWVersion[32];
uint8_t DeviceType;
uint8_t VideoInputNum;
uint8_t VideoCodecCapacity;
uint8_t AlarmInputNum;
uint8_t reserve[8];
}DeviceStaticInfo_s;
问题:
1.用什么方法把这个结构体保存到这个数据库表最为快捷?
我现在是采用把结构体里的成员转成字符串后用insert into插入表中。
如:
insert into table_1 values('ipcsn01','mac01','version01',1,2,3,4,'\0');
但是用这种方法的话,如果结构体很庞大的话,转换相当麻烦,还有别快捷的方法吗?
2.用select 语句查询出来的结果保存在MYSQL_RES res,我想把查询结果转换成struct结构体中,怎么转换呢,
可以直接从MYSQL_RES结构体中提取出来吗?我目前用的方法是从res中提取一行到MYSQL_ROW(char **二维指针)结构体中,
然后一个一个字段从二维数组里边转换出来。
跟问题1一样,如果结构体庞大的话,这个转换过种相当麻烦,请问大神们一般用什么方法把struct结构体存入数据库表中,以及怎么从查询结果中提取数据到struct结构体呢?