📄 flightplandlg.cpp
字号:
value = pRecordset->GetCollect("index");
if( value.vt == VT_NULL )
{
pRecordset->MoveNext();
continue;
}
else
m_Index[i] = value.lVal;
value = pRecordset->GetCollect("FlightID");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.InsertItem( i, temp, 0 );
value = pRecordset->GetCollect("Date");
if( value.vt != VT_NULL )
{
t = value.date;
temp.Format("%d-%02d-%02d",t.GetYear(),t.GetMonth(),t.GetDay());
}
else
temp = "";
m_FiInfo.SetItemText( i, 1, temp );
value = pRecordset->GetCollect("TakeoffPlace");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.SetItemText( i, 2, temp );
value = pRecordset->GetCollect("LandingPlace");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.SetItemText( i, 3, temp );
value = pRecordset->GetCollect("TakeoffAir");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.SetItemText( i, 4, temp );
value = pRecordset->GetCollect("LandingAir");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.SetItemText( i, 5, temp );
value = pRecordset->GetCollect("TakeoffTime");
if( value.vt != VT_NULL )
{
t = value.date;
temp.Format("%02d:%02d",t.GetHour(),t.GetMinute());
}
else
temp = "";
m_FiInfo.SetItemText( i, 6, temp );
value = pRecordset->GetCollect("LandingTime");
if( value.vt != VT_NULL )
{
t = value.date;
temp.Format("%02d:%02d",t.GetHour(),t.GetMinute());
}
else
temp = "";
m_FiInfo.SetItemText( i, 7, temp );
value = pRecordset->GetCollect("Plane");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_FiInfo.SetItemText( i, 8, temp );
value = pRecordset->GetCollect("MaxPassengerNum");
if( value.vt != VT_NULL )
temp.Format("%d",value.lVal);
else
temp = "0";
m_FiInfo.SetItemText( i, 9, temp );
value = pRecordset->GetCollect("PassengerNum");
if( value.vt != VT_NULL )
temp.Format("%d",value.lVal);
else
temp = "0";
m_FiInfo.SetItemText( i, 10, temp );
value = pRecordset->GetCollect("Distance");
if( value.vt != VT_NULL )
temp.Format("%d",value.lVal);
else
temp = "0";
m_FiInfo.SetItemText( i, 11, temp );
pRecordset->MoveNext();
}
}
catch(...)
{
MessageBox("读取记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
return true;
}
void CFlightPlanDlg::OnBnClickedBtslt()
{
CString temp;
COleDateTime t;
m_SltTime.GetTime(t);
temp.Format("DateSerial(%d,%d,%d)",t.GetYear(),t.GetMonth(),t.GetDay() );
m_Sql.Format("SELECT * FROM FlightIDInfo WHERE (Date = %s)",temp);
LoadPlan();
}
// 得到当前选择项
int CFlightPlanDlg::GetCurSltCount()
{
// 是否有选中项
if(m_FiInfo.GetSelectedCount() <= 0)
return -1;
for(int i =0;i<m_FiInfo.GetItemCount();i++ )
{
if(m_FiInfo.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)//选中状态。。
{
return i;
}
}
return -1; // 没有找到选中项
}
void CFlightPlanDlg::OnLvnItemchangedFiinfolist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
int k = GetCurSltCount();
if( k == -1 )
return;
m_CurSlt = m_Index[k];
GetCurSltData();
}
// 将当前记录添入界面
bool CFlightPlanDlg::GetCurSltData()
{
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
try
{
HRESULT hr;
// 创建Connection对象
hr = pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 连接数据库
hr = pConnection->Open(m_DBData.Linkbuf.GetBuffer(),
m_DBData.UserName.GetBuffer(),m_DBData.PassWord.GetBuffer(),
adModeUnknown);
}
else
{
MessageBox("创建数据库连接失败","失败",MB_OK);
return false;
}
}
catch( ... )
{
MessageBox( "连接数据库失败","失败",MB_OK);
return false;
}
CString temp;
try
{
pRecordset.CreateInstance("ADODB.Recordset");
temp.Format("SELECT * FROM FlightIDInfo WHERE (index = %d)",m_CurSlt);
pRecordset->Open(temp.GetBuffer(),
_variant_t((IDispatch*)pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch( _com_error * e )
{
pConnection->Close();
MessageBox( e->ErrorMessage(),"异常",MB_OK );
return false;
}
if( !pRecordset->adoEOF )
{
_variant_t value;
COleDateTime t;
try
{
value = pRecordset->GetCollect("FlightID");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_Fi = temp.Trim();
value = pRecordset->GetCollect("Date");
if( value.vt != VT_NULL )
t = value.date;
m_FlightDate.SetTime(t);
value = pRecordset->GetCollect("TakeoffPlace");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_StartCity = temp;
value = pRecordset->GetCollect("LandingPlace");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_EndCity = temp;
value = pRecordset->GetCollect("TakeoffAir");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_StartAir = temp;
value = pRecordset->GetCollect("LandingAir");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_EndAir = temp;
value = pRecordset->GetCollect("TakeoffTime");
if( value.vt != VT_NULL )
t = value.date;
m_StartTime.SetTime(t);
value = pRecordset->GetCollect("LandingTime");
if( value.vt != VT_NULL )
t = value.date;
m_EndTime.SetTime(t);
value = pRecordset->GetCollect("Plane");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_An = temp;
value = pRecordset->GetCollect("MaxPassengerNum");
if( value.vt != VT_NULL )
m_MaxPassenger = value.lVal;
else
m_MaxPassenger = 0;
value = pRecordset->GetCollect("PassengerNum");
if( value.vt != VT_NULL )
m_Passanger = value.lVal;
else
m_Passanger = 0;
value = pRecordset->GetCollect("Distance");
if( value.vt != VT_NULL )
m_Length = value.lVal;
else
m_Length = 0;
}
catch(...)
{
MessageBox("读取记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
UpdateData(false);
return true;
}
// 更新当前记录
bool CFlightPlanDlg::UpdateCurDate()
{
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
try
{
HRESULT hr;
// 创建Connection对象
hr = pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 连接数据库
hr = pConnection->Open(m_DBData.Linkbuf.GetBuffer(),
m_DBData.UserName.GetBuffer(),m_DBData.PassWord.GetBuffer(),
adModeUnknown);
}
else
{
MessageBox("创建数据库连接失败","失败",MB_OK);
return false;
}
}
catch( ... )
{
MessageBox( "连接数据库失败","失败",MB_OK);
return false;
}
CString temp;
try
{
// 生成Recordset实例
pRecordset.CreateInstance("ADODB.Recordset");
temp.Format("SELECT * FROM FlightIDInfo WHERE (index = %d)",m_CurSlt);
pRecordset->Open(temp.GetBuffer(),
_variant_t((IDispatch*)pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch( _com_error * e )
{
pConnection->Close();
MessageBox( e->ErrorMessage(),"异常",MB_OK );
return false;
}
try
{
COleDateTime t,t1;
pRecordset->Update();
m_FlightDate.GetTime( t1 );
t.SetDate(t1.GetYear(),t1.GetMonth(),t1.GetDay());
pRecordset->PutCollect( "Date", _variant_t(t) );
pRecordset->PutCollect( "FlightID", _variant_t(m_Fi) );
// 起飞时间
m_StartTime.GetTime(t1);
t.SetTime(t1.GetHour(),t1.GetMinute(),0);
pRecordset->PutCollect( "TakeoffTime", _variant_t(t) );
// 降落时间
m_EndTime.GetTime(t1);
t.SetTime(t1.GetHour(),t1.GetMinute(),0);
pRecordset->PutCollect( "LandingTime", _variant_t(t) );
// 出发城市
pRecordset->PutCollect( "TakeoffPlace", _variant_t(m_StartCity) );
// 降落城市
pRecordset->PutCollect( "LandingPlace", _variant_t(m_EndCity) );
// 起飞机场
pRecordset->PutCollect( "TakeoffAir", _variant_t(m_StartAir) );
// 降落机场
pRecordset->PutCollect( "LandingAir", _variant_t(m_EndAir) );
pRecordset->PutCollect( "Plane", _variant_t(m_An) );
pRecordset->PutCollect( "MaxPassengerNum", _variant_t(m_MaxPassenger) );
pRecordset->PutCollect( "PassengerNum", _variant_t(m_Passanger) );
pRecordset->PutCollect( "Distance", _variant_t(m_Length) );
pRecordset->Update();
}
catch(...)
{
MessageBox("添加记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
return true;
}
void CFlightPlanDlg::OnBnClickedBtaddfi2()
{
if( UpdateData() == false )
return;
if( UpdateCurDate() == false )
{
MessageBox("记录修改失败");
}
else
{
MessageBox("记录修改成功");
LoadPlan();
}
}
// 删除
void CFlightPlanDlg::OnBnClickedBtaddfi3()
{
CString temp;
temp.Format("DELETE FROM FlightIDInfo WHERE (index = %d)",m_CurSlt);
if( ExecuteSQL(temp) == false )
{
MessageBox("删除记录失败");
}
else
{
MessageBox("删除记录成功");
LoadPlan();
}
}
// 执行SQL语句
bool CFlightPlanDlg::ExecuteSQL( CString sql )
{
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
try
{
HRESULT hr;
// 创建Connection对象
hr = pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 连接数据库
hr = pConnection->Open(m_DBData.Linkbuf.GetBuffer(),
m_DBData.UserName.GetBuffer(),m_DBData.PassWord.GetBuffer(),
adModeUnknown);
}
else
{
MessageBox("创建数据库连接失败","失败",MB_OK);
return false;
}
}
catch( ... )
{
MessageBox( "连接数据库失败","失败",MB_OK);
return false;
}
try
{
_variant_t RecordsAffected;
pConnection->Execute( sql.GetBuffer(), &RecordsAffected,adCmdText);
}
catch( _com_error *e)
{
MessageBox(e->ErrorMessage());
return false;
}
try
{
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -