Proc C C 入門之指示器變數

2021-07-25 23:10:33 字數 2199 閱讀 5177

使用者能夠將任何乙個宿主變數同乙個指示變數進行關聯。指示器變數必須被定義為 2 個字

節的整數型別( short),在 sql 語句中,如果沒有指定 indicator 關鍵字,指示變數必須

緊跟在與其關聯的宿主變數後。如果使用 declare section 宣告宿主變數,則相關指示

變數也必須採用 declare section 進行宣告。

:host_variable indicator :indicator_variable

或者:host_variable:indicator_variable

通過在宿主變數後用指示變數, 檢測是否返回了null.

exec sql begin declare section;

char desc[35];

short ind_desc;

exec sql end declare section;

…exec sql select emp_desc into :desc :ind_desc from emp where emp_no=7788;

if(ind_desc < 0)

cout

<

else

cout

<< desc << endl;

varchar型別在經過proc預編譯後會變成

typedef struct varchar;

可以看出,字串部分儲存在arr指向的記憶體空間,所以對varchar型別的變數進行字串訪問的時候需要提取arr成員,綜合例項如下:

#include 

#include

#include

#include "sqlca.h"

//演示 指示變數,用來主的對宿主變數做說明

extern sqlgls(char * , size_t *, size_t * );

extern sqlglmt(void *,char *,size_t *,size_t *);

void sqlerr02()

void nodata()

}exec sql begin declare section;

char *usrname = "scott";

char *passwd = "lzj123529";

char *serverid = "orcl";

int deptno;

varchar dname[20]; //varchar型別 和 char 型別的區別. 與編譯選項有關係

short dname_ind;

varchar loc[20];

short loc_ind;

exec sql end declare section;

void connet()

else

}//修改單挑資料

int main()

if (dname_ind == -1)

if (loc_ind == -1)

printf("any key con....\n");

getchar();

printf("deptno:%d, dname:%s, loc:%s\n", deptno, dname.arr, loc.arr);

loc_ind = -1;

exec sql update dept set loc=:loc:loc_ind where deptno=:deptno;//將之前獲取的條目的loc更新為null

if (sqlca.sqlcode != 0)

exec sql commit work release;

printf("return ok...\n");

return ret ;

}

效果如下

oracle@lzj:~$ ./array 

connect ok...

please enter deptno: 30

any key con...

.deptno:30, dname:sales, loc:chicago

return ok...

索引指示器

索引指示器 其目的包括 1.了解什麼是 索引指示器 2.如何實現 索引指示器 3.過載 索引指示器 4.了解如何實現多引數的 索引指示器 索引指示器並不難使用。它們的用法跟陣列相同。在乙個類內部,你可以按照你的意願來管理一組資料的集合。這些物件可以是類成員的有限集合,也可以是另外乙個陣列,或者是一些...

進度指示器

uiprogressview 進度指示器 uiprogressview 與uiactivityindicatorview 相似,只不過它提供了乙個介面讓你可以顯示乙個類似進度條的東西,這樣就能讓使用者知道當前操作完成了多少 告知使用者離操作結束還多遠 一.建立 uiprogressview prog...

索引指示器

官方描述 索引器允許類或結構的例項就像陣列一樣進行索引。索引器形態類似於,不同之處在於它們的取值函式採用引數。這一功能在建立集合類的場合特別有用,而在其他某些情況下,比如處理大型檔案或者抽象有些資源等,能讓類具有類似陣列行為也是非常有用的。大致結構 this argument list getset...