⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 employee.cpp

📁 这个源代码是本程序演示了vc连接sql和access的方法好东东。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  InitCommonControls(); 
  if (!(hwndTab = CreateWindow ( 
      WC_TABCONTROL, TEXT(""), 
      WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, 
      10, 40, 425, 250, 
      hwndParent, (HMENU)IDC_TAB, g_hInst, NULL)))
    return NULL; 

  // Add tabs. 
  tie.mask = TCIF_TEXT | TCIF_IMAGE; 
  tie.iImage = -1; 

  tie.pszText = TEXT("Company Info"); 
  if (TabCtrl_InsertItem (hwndTab, 0, &tie) == -1) 
  { 
    DestroyWindow(hwndTab); 
    return NULL; 
  } 
  tie.pszText = TEXT("Personal Info"); 
  if (TabCtrl_InsertItem (hwndTab, 1, &tie) == -1) 
  { 
    DestroyWindow(hwndTab); 
    return NULL; 
  } 

  return hwndTab; 
} 

/***********************************************************************

FUNCTION: 
  InitSQLServer

PURPOSE:

***********************************************************************/
BOOL InitSQLServer ()
{
  if(FAILED(CoInitialize(NULL)))
    return FALSE;

  //_bstr_t strCnn("Provider=sqloledb;Data Source=;Integrated Security='SSPI';Initial Catalog=Northwind;User Id=;Password=;");
  //_bstr_t strCnn("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=68620154;Initial Catalog=Northwind;Data Source=FIREWALL");
  _bstr_t strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=employee.mdb;Persist Security Info=False";
  
  // Open recordset from Authors table.
  g_pRS.CreateInstance(__uuidof(Recordset));
  g_pRS->CursorType = adOpenStatic;

  // Use client cursor to enable AbsolutePosition property.
  g_pRS->CursorLocation = adUseClient;
  g_pRS->Open("Employees", strCnn, adOpenKeyset, adLockBatchOptimistic, adCmdTable);


  return TRUE;
}

/***********************************************************************

FUNCTION: 
  DisplayData

PURPOSE:

***********************************************************************/
VOID DisplayData ()
{
  // Empty all of the data fields.
  EmptyDataFields ();

  // Take care of the record count and position.
  TCHAR szRecord[100];
  _bstr_t bstrRecordCount;
  int iAbsolutePosition;
  bstrRecordCount = g_pRS->RecordCount;
  iAbsolutePosition = g_pRS->AbsolutePosition;
  swprintf (szRecord, TEXT("%d of %S"), iAbsolutePosition, 
            (wchar_t *)bstrRecordCount);
  SetDlgItemText (g_hWnd, IDC_RECORD, szRecord);
  
  // Take care of the field items except for "Notes", "ReportsTo" and "Photo".
  _bstr_t bstrName;
  _bstr_t bstrFName;
  _bstr_t bstrLName;
  _bstr_t bstrTitle;
  _bstr_t bstrCTitle;
  _bstr_t bstrAddress;
  _bstr_t bstrCity;
  _bstr_t bstrRegion;
  _bstr_t bstrZipCode;
  _bstr_t bstrCountry;
  _bstr_t bstrHomePhone;
  _bstr_t bstrExtension;
  _bstr_t bstrEID;
  _bstr_t bstrBirthdate;
  _bstr_t bstrHiredate;
  
  if (g_pRS->Fields->Item["FirstName"]->ActualSize > 0)
  {
    bstrFName = g_pRS->Fields->Item["FirstName"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_FIRSTNAME, bstrFName);
    bstrName = bstrFName;
  }
  if (g_pRS->Fields->Item["LastName"]->ActualSize > 0)
  {
    bstrLName = g_pRS->Fields->Item["LastName"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_LASTNAME, bstrLName);
    bstrName = bstrName + " " + bstrLName;
    SetDlgItemText (g_hWnd, IDC_NAME, bstrName);
  }
  if (g_pRS->Fields->Item["Title"]->ActualSize > 0)
  {
    bstrTitle = g_pRS->Fields->Item["Title"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_TITLE, bstrTitle);
  }
  if (g_pRS->Fields->Item["TitleOfCourtesy"]->ActualSize > 0)
  {
    bstrCTitle = g_pRS->Fields->Item["TitleOfCourtesy"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_CTITLE, bstrCTitle);
  }
  if (g_pRS->Fields->Item["Address"]->ActualSize > 0)
  {
    bstrAddress = g_pRS->Fields->Item["Address"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_ADDRESS, bstrAddress);
  }
  if (g_pRS->Fields->Item["City"]->ActualSize > 0)
  {
    bstrCity = g_pRS->Fields->Item["City"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_CITY, bstrCity);
  }
  if (g_pRS->Fields->Item["Region"]->ActualSize > 0)
  {
    bstrRegion = g_pRS->Fields->Item["Region"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_REGION, bstrRegion);
  }
  if (g_pRS->Fields->Item["PostalCode"]->ActualSize > 0)
  {
    bstrZipCode = g_pRS->Fields->Item["PostalCode"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_ZIPCODE, bstrZipCode);
  }
  if (g_pRS->Fields->Item["Country"]->ActualSize > 0)
  {
    bstrCountry = g_pRS->Fields->Item["Country"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_COUNTRY, bstrCountry);
  }
  if (g_pRS->Fields->Item["HomePhone"]->ActualSize > 0)
  {
    bstrHomePhone = g_pRS->Fields->Item["HomePhone"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_HOMEPHONE, bstrHomePhone);
  }
  if (g_pRS->Fields->Item["Extension"]->ActualSize > 0)
  {
    bstrExtension = g_pRS->Fields->Item["Extension"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_EXTENSION, bstrExtension);
  }
 
  if (g_pRS->Fields->Item["EmployeeID"]->ActualSize > 0)
  {
    bstrEID = g_pRS->Fields->Item["EmployeeID"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_EID, bstrEID);
  }
  if (g_pRS->Fields->Item["BirthDate"]->ActualSize > 0)
  {
    bstrBirthdate = g_pRS->Fields->Item["BirthDate"]->Value;
    SetDlgItemText (g_hDlg2Wnd, IDC_BIRTHDATE, bstrBirthdate);
  }
  if (g_pRS->Fields->Item["HireDate"]->ActualSize > 0)
  {
    bstrHiredate = g_pRS->Fields->Item["HireDate"]->Value;
    SetDlgItemText (g_hDlg1Wnd, IDC_HIREDATE, bstrHiredate);
  }
  
  // Take care of "ReportsTo" item.
  if (g_pRS->Fields->Item["ReportsTo"]->ActualSize > 0)
  {
    _bstr_t bstrReportsTo;
    _bstr_t bstrReportsToFName;
    _bstr_t bstrReportsToLName;
    TCHAR szFindString[100];
    bstrReportsTo = g_pRS->Fields->Item["ReportsTo"]->Value;
    swprintf (szFindString, TEXT("EmployeeID = %S"), (wchar_t *)bstrReportsTo);
  
    g_pRS->MoveFirst ();                                        // Move to the first record to ensure a search for the whole records.
    g_pRS->Find (szFindString, 1, adSearchForward);             // Search for the whole records.
    if (!(g_pRS->EndOfFile))                                    // Did find the match.
    {
      bstrReportsToLName = g_pRS->Fields->Item["LastName"]->Value;
      bstrReportsToFName = g_pRS->Fields->Item["FirstName"]->Value;
      bstrReportsTo = bstrReportsToFName + " " + bstrReportsToLName;
      SetDlgItemText (g_hDlg1Wnd, IDC_REPORTSTO, (wchar_t *)bstrReportsTo);
    }
    g_pRS->Move (iAbsolutePosition - g_pRS->AbsolutePosition);  // Move back to the record before the search.
  }

  // Take care of "Notes" and "Photo" items.
  DisplayPhoto ();
  DisplayNotes ();
}

/***********************************************************************

FUNCTION: 
  EmptyDataFields

PURPOSE:

***********************************************************************/
VOID EmptyDataFields ()
{ 
  SetDlgItemText (g_hWnd, IDC_NAME, NULL);
  SetDlgItemText (g_hWnd, IDC_RECORD, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_FIRSTNAME, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_LASTNAME, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_TITLE, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_CTITLE, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_ADDRESS, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_CITY, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_REGION, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_ZIPCODE, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_COUNTRY, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_HOMEPHONE, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_EXTENSION, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_EID, NULL);
  SetDlgItemText (g_hDlg2Wnd, IDC_BIRTHDATE, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_HIREDATE, NULL);
  SetDlgItemText (g_hDlg1Wnd, IDC_REPORTSTO, NULL);
}

/***********************************************************************

FUNCTION: 
  DisplayNotes

PURPOSE:

***********************************************************************/
VOID DisplayNotes ()
{
  _bstr_t varChunk;
  _bstr_t varNotes;
  long lngTotalsize,
       lngOffSet = 0,
       lngChunkSize = 100; 

  lngTotalsize = g_pRS->Fields->Item["Notes"]->ActualSize / 2 ;  // Becuase of being WChar
  if (lngTotalsize <= 0)
    return;

  while (lngOffSet < lngTotalsize)
  {
    varChunk = g_pRS->Fields->Item["Notes"]->GetChunk(lngChunkSize);
    varNotes = varNotes + varChunk;
    lngOffSet = lngOffSet + lngChunkSize;
  }
  SetDlgItemText (g_hDlg2Wnd, IDC_NOTES, varNotes);
}

/***********************************************************************

FUNCTION: 
  DisplayPhoto

PURPOSE: 

***********************************************************************/
VOID DisplayPhoto ()
{
  // Put your code in displaying the photo. Make sure to get rid of the 
  // photo header (Please see the VB "Employee" sample.).
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -