当前位置:首页 > 使用CVI软件平台进行Mysql数据库开发简介
int CVICALLBACK insertdata (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int resultcode; int hstat; int numberofrecords; switch (event) { case EVENT_COMMIT: //激活SQL查询 hstat = DBActivateSQL (hdbc, \ //获得记录总数 numberofrecords = DBNumberOfRecords (hstat); DBDeactivateSQL (hstat); //带参数查询 hstat = DBPrepareSQL (hdbc, \ALUES (?, '', '', 0)\ resultcode = DBCreateParamInt (hstat, \DB_PARAM_INPUT, numberofrecords + 1); resultcode = DBExecutePreparedSQL (hstat); DBClosePreparedSQL (hstat); //刷新数据 readdata (panel, PANEL_CMD_READDATA, EVENT_COMMIT, NULL, 0, 0); break; } return 0; }
//修改记录
int CVICALLBACK modifydata (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { char labeltext[10]; int comparisonresult; int hstat; int value; Point colrow; //设置i为静态局部变量,在本函数内部值不会丢失 static int i = 1; long agestatus;
int agevalue; long sexstatus; char sexvalue[10]; int resultcode; long idstatus; int idvalue; long namestatus; char namevalue[10]; char SqlCommand[200]; int hmap; switch (event) { case EVENT_COMMIT: //设置表格为可修改状态 SetCtrlAttribute (panelHandle, PANEL_TABLE, ATTR_CTRL_MODE, VAL_HOT); //以下程序表示:当点击“修改”按钮时,按钮标签将变为“保存” if (i) { SetCtrlAttribute (panelHandle, PANEL_CMD_MODIFY, ATTR_LABEL_TEXT, \保存\ i = 0; } else { SetCtrlAttribute (panelHandle, PANEL_CMD_MODIFY, ATTR_LABEL_TEXT, \修改\ SetCtrlAttribute (panelHandle, PANEL_TABLE, ATTR_CTRL_MODE, VAL_INDICATOR); i = 1; } //得到按钮的标签文本 GetCtrlAttribute (panelHandle, PANEL_CMD_MODIFY, ATTR_LABEL_TEXT, labeltext); //将得到的文本与“修改”二字相对照 comparisonresult = strcmp (labeltext, \修改\ //如果确定标签文本上的字符就是“修改”二字,则执行以下操作
if (comparisonresult == 0) { //当联接数据库成功时进行下面操作 if (hdbc > 0) { memset(SqlCommand,0,200); //一次修改只能修改最后触发的行数据,否则将以下代码放到表格控件的事件函数中 GetTableCellVal (panelHandle, PANEL_TABLE, MakePoint(2, globalvalue), namevalue); GetTableCellVal (panelHandle, PANEL_TABLE, MakePoint(3, globalvalue), sexvalue); GetTableCellVal (panelHandle, PANEL_TABLE, MakePoint(4, globalvalue), &agevalue); sprintf(SqlCommand,\table2 SET NAME='%s',SEX='%s',AGE=%d WHERE ID=%d;\ //带参数更新 hstat = DBPrepareSQL (hdbc, SqlCommand); resultcode = DBExecutePreparedSQL (hstat); DBClosePreparedSQL (hstat); } } break; } return 0; }
//删除数据表
int CVICALLBACK deletetable (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int hstat; switch (event) { case EVENT_COMMIT: DisableBreakOnLibraryErrors (); //激活SQL查询 hstat = DBActivateSQL (hdbc, \
//如果表存在数据,执行如下操作 if (hstat > 0) { //释放被激活句柄 DBDeactivateSQL (hstat); //删除数据表 DBImmediateSQL (hdbc, \ } DeleteTableRows (panelHandle, PANEL_TABLE, 1, -1); SetCtrlAttribute (panelHandle, PANEL_CMD_READDATA, ATTR_DIMMED, 1); break; } return 0; }
//创建数据表
int CVICALLBACK createtable (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { long agestatus; int agevalue; long sexstatus; char sexvalue[10]; long namestatus; char namevalue[10]; int resultcode; long idstatus; int idvalue; int hmap; switch (event) { case EVENT_COMMIT: //创建一个数据库映射 hmap = DBBeginMap (hdbc); resultcode = DBMapColumnToInt (hmap, \ resultcode = DBMapColumnToChar (hmap, \10, namevalue, &namestatus, \ resultcode = DBMapColumnToChar (hmap, \
共分享92篇相关文档