• 大小: 934KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: CVI  SQL  

资源简介

一个利用CVI通过ODBC访问数据库的完整例子,里面包含数据库,程序已调通,可对数据库进行查找,修改,添加和删除,适合想用CVI访问数据库的初学者学习参考

资源截图

代码片段和文件信息

#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(); //  设置输入框的模式
RunUserInterface ();
DiscardPanel (panelHandle);
DBDisconnect(hdbc); // 断开连接释放系统资源
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; //设置指针数为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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       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


评论

共有 条评论