通過加入assigned欄位來判斷是否需要更新資料庫字段
field.h
#ifndef _field_h_
#define _field_h_
#include #define setifassigned(a, b) \
if (b.assigned()) \
templateclass field
field(const field& rhs) : value_(rhs.value_), assigned_(false) {}
field(const t& value) : value_(value), assigned_(false) {}
field& operator= (const field& rhs)
field& operator= (const t& value)
operator t ()
operator const t() const
const t& ref() const
bool assigned() const
t value()
private:
t value_;
bool assigned_;
};void getfieldstring(const sdbus::variantmap& mp, int fid, field& field);
void getfieldint(const sdbus::variantmap& mp, int fid, field& field);
void getfielddouble(const sdbus::variantmap& mp, int fid, field& field);
void getfieldbool(const sdbus::variantmap& mp, int fid, field& field);
#endif
filed.cpp
#include "field.h"
void getfieldstring(const sdbus::variantmap& mp, int fid, field& field)
}void getfieldint(const sdbus::variantmap& mp, int fid, field& field)
}void getfielddouble(const sdbus::variantmap& mp, int fid, field& field)
}void getfieldbool(const sdbus::variantmap& mp, int fid, field& field)
}
使用方式:
classquote
public:
fieldid_;
fieldprotocol_id_;
......
}賦值:
getfieldstring(mp,fid_id, quote->id_);
讀取:if(quote->protocol_id_.assigned())
if(quote->*.assigned())
優勢舉例:
更新資料庫某些字段,可以統一提供乙個介面即可。
資料庫字段
mysql char size 字長字元,0 255位元組 varchar size 變長字元,0 255位元組 date 日期資料,格式為yyyy mm dd hh mm ss datetime 日期資料,比date更確切,包含分秒 int整形資料 double s,p 數字型,可存放實型和整形,...
C 查詢ACCESS資料庫欄位和時間字段
查詢表的所有字段 string.format select from tablename 查詢表中的乙個字段 在access中將欄位用cstr 轉換成字串來判斷 string.format select from where cstr tablename,filed name,filed value...
資料庫修改字段
一 更改字段型別長度 a mysql alter table 表名 change 原欄位名 新欄位名 字段型別 b oracle alter table 表名 rename column 原欄位名 to 新欄位名 二 更改字段型別 alter table 表名 alter column 欄位名 更改...