資源簡(jiǎn)介
一個(gè)利用CVI通過ODBC訪問數(shù)據(jù)庫(kù)的完整例子,里面包含數(shù)據(jù)庫(kù),程序已調(diào)通,可對(duì)數(shù)據(jù)庫(kù)進(jìn)行查找,修改,添加和刪除,適合想用CVI訪問數(shù)據(jù)庫(kù)的初學(xué)者學(xué)習(xí)參考

代碼片段和文件信息
#include?“cvi_db.h“
#include?
#include?
#include?“db.h“
static?int?hstmt;
static?int?hmap;
static?int?hdbc;
static?int?i=1;
static?int?panelHandle;
void?setindicator(void);
void?sethot(void);
void?setclear(void);
int?setmainkey(void);
void?setmode(int?cmdfirstint?cmdprevint?cmdnextint?cmdlastint?cmdaddint?cmddelint?cmdmodifyint?cmdfind);
int?main?(int?argc?char?*argv[])
{
if?(InitCVIRTE?(0?argv?0)?==?0)
return?-1; /*?out?of?memory?*/
if?((panelHandle?=?LoadPanel?(0?“db.uir“?PANEL))?0)
return?-1;
hdbc=DBConnect(“DSN=student“);?//建立連接
DisplayPanel?(panelHandle);
first(panelHandlePANEL_CMD_FIRSTEVENT_COMMITNULL00);?//將記錄定位搭到第一條
setindicator(); //??設(shè)置輸入框的模式
RunUserInterface?();
DiscardPanel?(panelHandle);
DBDisconnect(hdbc); // 斷開連接釋放系統(tǒng)資源
return?0;
}
int?CVICALLBACK?first?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
long?agestatus;
int?agevalue;
long?sexstatus;
char?sexvalue[5];
long?namestatus;
char?namevalue[20];
long?idstatus;
int?idvalue;
switch?(event)
{
case?EVENT_COMMIT:
hmap=DBBeginMap(hdbc);
DBMapColumnToInt(hmap“ID“&idvalue&idstatus);
DBMapColumnToChar(hmap“NAME“20namevalue&namestatus““);
DBMapColumnToChar(hmap“SEX“5sexvalue&sexstatus““);
DBMapColumnToInt(hmap“AGE“&agevalue&agestatus);
hstmt=DBActivateMap(hmap“std“);
while(DBFetchNext(hstmt)!=DB_EOF)
{
if(i)
break;
}
SetCtrlVal(panelHandlePANEL_NUMERIC_IDidvalue);
SetCtrlVal(panelHandlePANEL_STRING_NAMEnamevalue);
SetCtrlVal(panelHandlePANEL_STRING_SEXsexvalue);
SetCtrlVal(panelHandlePANEL_NUMERIC_AGEagevalue);
DBDeactivateMap(hmap);
i=1;?//設(shè)置指針數(shù)為1
break;
}
return?0;
}
int?CVICALLBACK?prev?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
long?agestatus;
int?agevalue;
long?sexstatus;
char?sexvalue[5];
long?namestatus;
char?namevalue[20];
long?idstatus;
int?idvalue;
int?j=0;
switch?(event)
{
case?EVENT_COMMIT:
hmap=DBBeginMap(hdbc);
DBMapColumnToInt(hmap“ID“&idvalue&idstatus);
DBMapColumnToChar(hmap“NAME“20namevalue&namestatus““);
DBMapColumnToChar(hmap“SEX“5sexvalue&sexstatus““);
DBMapColumnToInt(hmap“AGE“&agevalue&agestatus);
hstmt=DBActivateMap(hmap“std“);
i--;
if(i<=0)
i=1;
while(DBFetchNext(hstmt)!=DB_EOF)
{
j++;
if((i-j==0))
break;
}
SetCtrlVal(panelHandlePANEL_NUMERIC_IDidvalue);
SetCtrlVal(panelHandlePANEL_STRING_NAMEnamevalue);
SetCtrlVal(panelHandlePANEL_STRING_SEXsexvalue);
SetCtrlVal(panelHandlePANEL_NUMERIC_AGEagevalue);
DBDeactivateMap(hmap);??
break;
}
return?0;
}
int?CVICALLBACK?next?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
int?numberofrecords;
int?hs
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????5580??2010-09-03?17:08??CVISQL\cvibuild.db\build.ini
?????文件????1945742??2010-09-03?17:04??CVISQL\cvibuild.db\db.nidobj
?????文件??????????4??2010-09-03?17:04??CVISQL\cvibuild.db\dependencies.bri
?????文件???????5012??2010-09-03?17:04??CVISQL\cvibuild.db\resources.res
?????文件??????12888??2010-09-03?17:04??CVISQL\db.c
?????文件???????3123??2010-09-03?17:04??CVISQL\db.cws
?????文件???????2800??2010-09-03?14:51??CVISQL\db.h
?????文件???????4085??2010-09-02?17:21??CVISQL\db.prj
?????文件???????5828??2010-09-03?14:51??CVISQL\db.uir
?????文件????2622468??2010-09-03?17:04??CVISQL\db_dbg.cdb
?????文件?????322560??2010-09-03?17:04??CVISQL\db_dbg.exe
?????文件?????151552??2010-09-03?17:08??CVISQL\std.mdb
?????目錄??????????0??2010-09-03?17:08??CVISQL\cvibuild.db
?????目錄??????????0??2010-09-03?17:08??CVISQL
-----------?---------??----------?-----??----
??????????????5081642????????????????????14
評(píng)論
共有 條評(píng)論