void CEmpEdit::OnBnClickedButton2()
{

	// TODO: Next Record
	CString var_name,var_id,var_sh,var_sa,var_dep;
	CEmpTable recset(&database);
	CString SqlString("SELECT * FROM EmpTable");
	short col_index = 0;
	rec_index++;
		if(rec_index == (rc+1))
			rec_index =1;

	recset.Open(CRecordset::dynaset,SqlString,CRecordset::readOnly);
	recset.SetAbsolutePosition(rec_index);
	recset.GetFieldValue(col_index+1,var_id);
	recset.GetFieldValue(col_index+2,var_name);
	recset.GetFieldValue(col_index+3,var_dep);
	recset.GetFieldValue(col_index+4,var_sh);
	recset.GetFieldValue(col_index+5,var_sa);
	EID->SetWindowText(var_id);
	ENA->SetWindowText(var_name);
	EWO->SetWindowText(var_sh);
	ESA->SetWindowText(var_sa);
	EDE->SetWindowText(var_dep);
	
	
}
void CEmpEdit::OnBnClickedButton7()
{
	// TODO: Remove
			CString SqlString;
			CString var_name,var_id,var_sh,var_sa,var_dep,var_Eid;
	
	CEmpTable recset(&database);
	SqlString =  "SELECT * FROM EmpTable";
	recset.Open(CRecordset::dynaset,SqlString,CRecordset::none);
	recset.SetAbsolutePosition(rec_index);
	int col_index=0;
	if(recset.CanUpdate())
	{
		recset.Delete();
		if(rec_index == rc){
			recset.MoveFirst();
		}
		else
			recset.MoveNext();
		AfxMessageBox("Record Successfully deleted!");
		recset.GetFieldValue(col_index+1,var_id);
		recset.GetFieldValue(col_index+2,var_name);
		recset.GetFieldValue(col_index+3,var_dep);
		recset.GetFieldValue(col_index+4,var_sh);
		recset.GetFieldValue(col_index+5,var_sa);
		EID->SetWindowText(var_id);	
		ENA->SetWindowText(var_name);
		EWO->SetWindowText(var_sh);
		ESA->SetWindowText(var_sa);
		EDE->SetWindowText(var_dep);
		rc--;
	
	}
}
void CEmpEdit::OnBnClickedButton1()
{
	// TODO: New
	CString var_id;
	//EID->SetSel(0,-1);
	ENA->SetSel(0,-1);
	EWO->SetSel(0,-1);
	ESA->SetSel(0,-1);
	EDE->SetSel(0,-1);
	//EID->Clear();
	ENA->Clear();
	EWO->Clear();
	ESA->Clear();
	EDE->Clear();
	CEmpTable recset(&database);
	CString SqlString("SELECT * FROM EmpTable");
	short col_index = 0;
	recset.Open(CRecordset::dynaset,SqlString,CRecordset::readOnly);
	//AfxMessageBox(_T("5"));
	recset.MoveLast();
	recset.GetFieldValue(col_index+1,var_id);
	var_id.Remove('E');
	//AfxMessageBox(var_id);
	int k=_ttoi(var_id);
	k++;
	CString id;
	id.Format("E%d",k);
	EID->SetWindowText(id);
}
void CEmpEdit::OnBnClickedButton6()
{
	// TODO: Update
	CString SqlString,s1;
	CString var_name,var_id,var_sh,var_sa,var_dep,var_Eid;
	int flg=0,col_index=1;
	
	CEmpTable recset(&database);
	
	EID->GetWindowText(var_id);
	ENA->GetWindowText(var_name);
	EWO->GetWindowText(var_sh);
	ESA->GetWindowText(var_sa);
	EDE->GetWindowText(var_dep);
	

	CString coma(", ");
	//CString CB(");");
	CString sc(" ;");
	CString Quo("'");
	CString Ei("  [Employee ID] = ");
	CString De(" , [Deprtment] = ");
	CString Sh(" , [Shift] = ");
	CString Sa(" , [Salary] = ");
	CString Id(" [ID] = ");
	CString sp(" AND ");
	CString wh(" WHERE "); 
	CString Bo(" ( ");
	CString Bc(" ) ");	
		recset.Open(CRecordset::dynaset,_T("SELECT * FROM EmpTable"),CRecordset::readOnly);

		recset.SetAbsolutePosition(rec_index);
		//recset.GetFieldValue(col_index,var_id);
		recset.GetFieldValue(col_index-1,var_Eid);

		
		s1.Format("UPDATE EmpTable SET [Employee Name] = ");

		
		SqlString=s1+Quo+var_name+Quo+De+Quo+var_dep+Quo+Sh+Quo+var_sh+Quo+Sa+var_sa+wh+Id+var_Eid+sc;
		AfxMessageBox(SqlString);
			try
{
   database.ExecuteSQL(SqlString);
}
catch(CDBException* pe)
{
	flg=1;
   // The error code is in pe->m_nRetCode
   pe->ReportError();
   pe->Delete();
}
if (flg == 0)
{
MessageBox(_T("Record Successfully Updated To The Database"),_T("Successfull")); 
}


	}
Exemple #5
0
///////////////////////////////////////////////////////////////////////////////
//	void GetExcelDriver(CListCtrl* pList, CString strTitle)
//	參數:
//		pList		需要導出的List控件指针
//		strTitle	導出的數據表標題
//	說明:\
//      導出CListCtrl控件的全部數據到Excel文件。Excel文件名由用戶通過"另存為"
//      對話框輸入指定。創建名為strTitle的工作表,將List控件內的所有數據(包括列
//      名和數據項)以文本的形式保存到Excel工作表中。保持行列關係。
///////////////////////////////////////////////////////////////////////////////
void ExportExcelToList(CListCtrl* pList, CString strTitle)
{
    CString warningStr;
    CDatabase database;
    CString sDriver;
    CString sExcelFile;
    CString sSql;
    CString tableName = strTitle;

    // 檢查是否有安裝Excel驅動 "Microsoft Excel Driver (*.xls)" 
    sDriver = GetExcelDriver();
    if (sDriver.IsEmpty())
    {
        //沒有發現Excel驅動
        AfxMessageBox(L"沒有安装Excel!\n請先安裝Excel軟件才能使用Excel導出功能!!");
        return;
    }

    //默認文件名(獲得文件名)
    if (!LoadGetDefaultXlsFileName(sExcelFile))
        return;

    //創建進行存取的字符串
    sSql.Format(L"ODBC;DRIVER={%s};DSN='''';DBQ=%s",sDriver, sExcelFile);

    // 創建數據庫 (既Excel表格文件)
    if (database.Open(NULL,false,false,sSql)) //開啟資料庫
    {
        pList->DeleteAllItems();
        //創建結構表
        CString sItem;
        CString columnName;
        LVCOLUMN columnData;
        columnData.mask = LVCF_TEXT;
        columnData.cchTextMax = 100;
        columnData.pszText = columnName.GetBuffer(100);
        int ListCount = 0;
        CRecordset recset(&database);
        /*****************修改SQL語法在這**************************/
        sSql = L"";
        for (int j = 0; pList->GetColumn(j, &columnData); j++)
        {
            if (j != 0)
            {
                sSql = sSql + L", ";
            }
            sSql = sSql + columnData.pszText;
        }
        columnName.ReleaseBuffer();
        
        sSql = L"SELECT " + sSql + L" FROM " + tableName;
        AfxMessageBox(sSql);
        recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
        while (!recset.IsEOF())
        {
            pList->InsertItem(ListCount, NULL);
            for (int i = 0; pList->GetColumn(i, &columnData); i++)
            {
                pList->GetColumn(i, &columnData);
                recset.GetFieldValue(columnData.pszText, sItem);
                LONG Value = _ttol(sItem);
                sItem.Format(L"%d", Value);
                pList->SetItemText(ListCount, i, sItem);
            }
            //next
            ListCount++;
            recset.MoveNext();
        }
    }
    //關閉數據庫
    database.Close();
    warningStr.Format(L"%s檔案導入成功!", sExcelFile);
    AfxMessageBox(warningStr);
}