C VARIANT資料型別操作詳解

2021-07-11 15:07:05 字數 1053 閱讀 6163

使用variant來傳遞引數意味著非強型別語言(例如vbscript)能夠呼叫使用強型別語言(c++)實現的方法。

variant的結構可以參考標頭檔案vc98\include\oaidl.h中關於結構體tagvariant的定義。

variant 資料型別在檔案oaidl.idl中定義如下:

[cpp]view plain

copy

struct

tagvariant  __variant_name_4;         /* vt_record            */

} __variant_name_3;  

} __variant_name_2;  

decimal decval;  

} __variant_name_1;  

};  

variant資料結構包含兩個域(如果不考慮保留的域)。vt域描述了第二個域的資料型別。為了使多種型別能夠在第二個域中出現,我們定義了乙個聯合結構。所以,第二個域的名稱隨著vt域中輸入值的不同而改變。用於指定vt域值情況的常量在聯合的定義中以每一行的注釋形式給出。

使用variant和variantarg資料結構要分兩步完全。舉乙個例子,讓我們考慮如下**:

[cpp]view plain

copy

long

lvalue = 999;  

variant vparam;  

vparam.vt = vt_i4;  

vparam.lval = lvalue;  

在第一行中指定資料型別。常量vt_i4表明在第二個域中將出現乙個long型的資料。根據型別variant的定義,可以得知,當乙個long型資料存入variant型別時,其第二個域使用的名稱是lval。

使用char指標時 需要分配空間

variant    var;

char achvalue[2048] = ;

var.pcval = achvalue;

string strtest= var1.pcval;

SQL Server 2005 常用資料型別詳解

1.字串資料型別 char 此資料型別可儲存1 8000個定長字串,字串長度在建立時指定 如未指定,預設為char 1 每個字元占用1byte儲存空間。nchar 此資料型別可儲存1 4000個定長unicode字串,字串長度在建立時指定 如未指定,預設為nchar 1 每個字元占用2bytes儲存...

redis資料型別與資料操作

redis資料型別 string set key value get key 127.0.0.1 6379 1 set test1 value1 ok127.0.0.1 6379 1 get test1 value1 127.0.0.1 6379 1 hash hash是乙個string型別的fie...

blob資料型別 資料庫資料型別和基礎操作

資料庫是 按照資料結構來組織 儲存和管理資料的倉庫 是乙個長期儲存在計算機內的 有組織的 可共享的 統一管理的大量資料的集合。它並不是隨意儲存的,儲存資料是有規則的,要不查詢效率會很低,除了文字型別 整數型別還有像能儲存影象 聲音這樣二進位制資料的blob型別。資料庫型別 資料表字段型別 常見字段種...