本文整理汇总了C++中CRecordset::Open方法的典型用法代码示例。如果您正苦于以下问题:C++ CRecordset::Open方法的具体用法?C++ CRecordset::Open怎么用?C++ CRecordset::Open使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRecordset
的用法示例。
在下文中一共展示了CRecordset::Open方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CRecordset
CRecordset * CMyDatabase::getTableRecordset(CString TableName, CString Whereis)
{
CString SqlString = _T("SELECT * FROM ")+TableName+Whereis;
CRecordset *record;
record= new CRecordset(this->m_nDatabase);
record->Open(CRecordset::dynaset,SqlString);
return record;
}
示例2: GetFieldList
BOOL CBCGPODBCGridCtrl::GetFieldList (LPCTSTR lpszTable, CStringList& lstField)
{
ASSERT (lpszTable != NULL);
lstField.RemoveAll ();
if (m_pDataBase == NULL)
{
ASSERT (FALSE);
return FALSE;
}
try
{
ASSERT_VALID (m_pDataBase);
if (!m_pDataBase->IsOpen ())
{
ASSERT (FALSE);
return FALSE;
}
CRecordset* pRecordSet = new CRecordset (m_pDataBase);
CString strSQL = _T("SELECT * FROM ");
strSQL += lpszTable;
if (!pRecordSet->Open (CRecordset::forwardOnly, strSQL))
{
delete pRecordSet;
return FALSE;
}
const short nColumns = pRecordSet->GetODBCFieldCount ();
for (short nColumn = 0; nColumn < nColumns; nColumn++)
{
CODBCFieldInfo fieldinfo;
pRecordSet->GetODBCFieldInfo (nColumn, fieldinfo);
lstField.AddTail (fieldinfo.m_strName);
}
pRecordSet->Close ();
delete pRecordSet;
}
catch (CDBException* pEx)
{
OnODBCException (pEx);
pEx->Delete ();
return FALSE;
}
return TRUE;
}
示例3: OnInitialUpdate
void CRecordView::OnInitialUpdate()
{
CRecordset* pRecordset = OnGetRecordset();
// recordset must be allocated already
ASSERT(pRecordset != NULL);
if (!pRecordset->IsOpen())
{
CWaitCursor wait;
pRecordset->Open();
}
CFormView::OnInitialUpdate();
}
示例4: getProvinceid
int CMyDatabase::getProvinceid(CString provinceName)
{
CString SqlString2 = _T("SELECT * FROM Province WHERE Province='")+provinceName+_T("' ");
CRecordset *record;
record= new CRecordset(this->m_nDatabase);
record->Open(CRecordset::dynaset,SqlString2);
CString tempStr=_T("0");
int PID=0;
if (!record->IsEOF())
{
record->MoveFirst();
record->GetFieldValue(_T("ProvinceID"),tempStr);
}
PID = _ttoi(tempStr) ;
return PID;
}
示例5: getTypesID
int CMyDatabase::getTypesID(CString TypesName)
{
CString SqlString2 = _T("SELECT * FROM types WHERE Name='")+TypesName+_T("' ");
CRecordset *record;
record= new CRecordset(this->m_nDatabase);
record->Open(CRecordset::dynaset,SqlString2);
CString tempStr=_T("0");
int PID=0;
if (!record->IsEOF())
{
record->MoveFirst();
record->GetFieldValue(_T("CID"),tempStr);
}
PID = _ttoi(tempStr) ;
return PID;
}
示例6: addTypeName
void CMyDatabase::addTypeName(CString TypeName,CString PTypeName)
{
CString SqlString2 = _T("SELECT * FROM types WHERE Name='")+PTypeName+_T("' ");
CRecordset *record;
record= new CRecordset(this->m_nDatabase);
record->Open(CRecordset::dynaset,SqlString2);
CString tempStr=_T("0");
if (!record->IsEOF())
{
record->MoveFirst();
record->GetFieldValue(_T("CID"),tempStr);
}
CString SqlString;
SqlString.Format(_T("INSERT INTO types (Name,PID) VALUES('%s',%s)"),TypeName,tempStr);
this->m_nDatabase->ExecuteSQL(SqlString);
}
示例7: new
//-------------------------------------------------------------->>>
//函数:DBOpenRecordset
//功能:执行 SQL 语句得到视图
//参数:
// nOpenType :返回的记录集类型
// dynaset = 0,uses SQLExtendedFetch, keyset driven cursor
// snapshot = 1,uses SQLExtendedFetch, static cursor
// forwardOnly = 2,uses SQLFetch
// dynamic = 3,uses SQLExtendedFetch, dynamic cursor
// sSQL :要执行的SQL语句
//返回:
// CRecordset :返回记录集,注:记录集用完要先关闭后删除.
// NULL :SQL语句错误
//-------------------------------------------------------------->>>
CRecordset * CDBManager::DBOpenRecordset(UINT nOpenType, CString sSQL)
{
CRecordset *reSet;
reSet = new(CRecordset);
reSet->m_pDatabase = &m_DB;
try
{
reSet->Open(nOpenType, sSQL);
}
catch(CDBException)
{
delete reSet;
m_ErrorMsg = "SQL语句错误!";
return(NULL);
};
return(reSet);
}
示例8: ThreadUpdatePLSModel
UINT ThreadUpdatePLSModel(LPVOID lpParam)
{
double coeff=2;//系数
CDBManageTrueDlg* pCDBManageTrueDlg=(CDBManageTrueDlg*)lpParam;
CTrueWineLib TrueWineLib;
CWineTypeIndex WineTypeIndex;
CAlcoholTypeIndex AlcoholTypeIndex;
CFlavourTypeIndex FlavourTypeIndex;
CBrandTypeIndex BrandTypeIndex;
CPLSModel PLSModel;
map<CString,int> map_TrueWineIndex;
map<CString, int> map_AlcoholContent;
map<CString,int> map_Flavour;
map<CString,int> map_Brand;
if(!PLSModel.Open())
{
pCDBManageTrueDlg->MessageBox(L"打开PLS模型库失败",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(!PLSModel.IsEOF())
{
PLSModel.MoveFirst();
}
while(!PLSModel.IsEOF())
{
PLSModel.Delete();
PLSModel.MoveNext();
}
//打开索引库
if(!WineTypeIndex.Open())
{
pCDBManageTrueDlg->MessageBox(L"打开真酒索引库失败",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(0==WineTypeIndex.GetRecordCount())
{
pCDBManageTrueDlg->MessageBox(L"光谱管理信息出现错误,请尝试更新!",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(!AlcoholTypeIndex.Open())
{
pCDBManageTrueDlg->MessageBox(L"打开酒精度索引库失败",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(0==AlcoholTypeIndex.GetRecordCount())
{
pCDBManageTrueDlg->MessageBox(L"光谱管理信息出现错误,请尝试更新!",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(!FlavourTypeIndex.Open())
{
pCDBManageTrueDlg->MessageBox(L"打开香型索引库失败",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(0==FlavourTypeIndex.GetRecordCount())
{
pCDBManageTrueDlg->MessageBox(L"光谱管理信息出现错误,请尝试更新!",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(!BrandTypeIndex.Open())
{
pCDBManageTrueDlg->MessageBox(L"打开品牌索引库失败",L"更新模型失败",MB_ICONERROR);
return -1;
}
if(0==BrandTypeIndex.GetRecordCount())
{
pCDBManageTrueDlg->MessageBox(L"光谱管理信息出现错误,请尝试更新!",L"更新模型失败",MB_ICONERROR);
return -1;
}
/////////////////////////
WineTypeIndex.MoveFirst();
while(!WineTypeIndex.IsEOF())
{
map_TrueWineIndex[WineTypeIndex.m_WineName]=WineTypeIndex.m_TypeIndex;
WineTypeIndex.MoveNext();
}
AlcoholTypeIndex.MoveFirst();
while(!AlcoholTypeIndex.IsEOF())
{
map_AlcoholContent[AlcoholTypeIndex.m_AlcoholContent]=AlcoholTypeIndex.m_AlcoholIndex;
AlcoholTypeIndex.MoveNext();
}
AlcoholTypeIndex.MoveFirst();
FlavourTypeIndex.MoveFirst();
while(!FlavourTypeIndex.IsEOF())
{
map_Flavour[FlavourTypeIndex.m_Flavour]=FlavourTypeIndex.m_FlavourIndex;
//.........这里部分代码省略.........
示例9: UpdateIndexTable
void CDBManageTrueDlg::UpdateIndexTable(void)
{
//CTrueWineLib TrueWineLib;
CDatabase m_db;
CRecordset rs;
m_db.OpenEx(_T("DSN=白酒鉴定与溯源数据库;"),CDatabase::noOdbcDialog);
rs.m_pDatabase = &m_db;
CString WineName;
CString AlcoholContent;
CString Flavour;
CString Brand;
CString ProductionBatchNo;
//更新白酒类型索引
CWineTypeIndex WineTypeIndex;
if(!WineTypeIndex.Open())
{
MessageBox(L"打开光谱索引库失败",L"更新失败",MB_ICONERROR);
return;
}
if(!WineTypeIndex.IsEOF())
{
WineTypeIndex.MoveFirst();
while(!WineTypeIndex.IsEOF())
{
WineTypeIndex.Delete();
WineTypeIndex.MoveNext();
}
}
CString command=_T("SELECT DISTINCT WineName,AlcoholContent,Flavour,Brand,ProductionBatchNo FROM TrueWineLib");
if(!rs.Open(AFX_DB_USE_DEFAULT_TYPE,command))
{
MessageBox(L"打开真酒库失败",L"更新失败",MB_ICONERROR);
return;
}
if(!rs.IsEOF())
{
int count=1;
rs.MoveFirst();
while(!rs.IsEOF())
{
rs.GetFieldValue(L"WineName",WineName);
rs.GetFieldValue(L"AlcoholContent",AlcoholContent);
rs.GetFieldValue(L"Flavour",Flavour);
rs.GetFieldValue(L"Brand",Brand);
rs.GetFieldValue(L"ProductionBatchNo",ProductionBatchNo);
WineTypeIndex.AddNew();
WineTypeIndex.m_WineName=WineName; //不知道为什么使用了select distinct 得到某几列记录时,自动把这一列分配给最前面的类型相同的列
WineTypeIndex.m_AlcoholContent=AlcoholContent;
WineTypeIndex.m_Flavour=Flavour;
WineTypeIndex.m_Brand=Brand;
WineTypeIndex.m_ProductionBatchNo=ProductionBatchNo;
WineTypeIndex.m_TypeIndex=count;
count++;
rs.MoveNext();
WineTypeIndex.Update();
}
}
rs.Close();
//更新酒精度索引
CAlcoholTypeIndex AlcoholTypeIndex;
if(!AlcoholTypeIndex.Open())
{
MessageBox(L"打开光谱索引库失败",L"更新失败",MB_ICONERROR);
return;
}
if(!AlcoholTypeIndex.IsEOF())
{
AlcoholTypeIndex.MoveFirst();
while(!AlcoholTypeIndex.IsEOF())
{
AlcoholTypeIndex.Delete();
AlcoholTypeIndex.MoveNext();
}
}
command=_T("SELECT DISTINCT AlcoholContent FROM TrueWineLib");
if(!rs.Open(AFX_DB_USE_DEFAULT_TYPE,command))
{
MessageBox(L"打开真酒库失败",L"更新失败",MB_ICONERROR);
return;
}
CString alcohol;
if(!rs.IsEOF())
{
rs.MoveFirst();
int i=1;
while(!rs.IsEOF())
{
rs.GetFieldValue(_T("AlcoholContent"),alcohol);
AlcoholTypeIndex.AddNew();
AlcoholTypeIndex.m_AlcoholContent=alcohol;
//.........这里部分代码省略.........
示例10: OnInitDialog
BOOL CFieldContentsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
try
{
// prüfe Parameter
ASSERT (NULL != m_pDatabase && m_pDatabase -> IsOpen ());
ASSERT (!m_strField.IsEmpty ());
ASSERT (!m_strTable.IsEmpty ());
// Listbox füllen
CWaitCursor wc;
// zuerst SelectString zusammenbauen
CString strSelect;
AfxFormatString2 (strSelect, IDS_SELECT_FIELD, m_strField, m_strTable);
CRecordset rs (m_pDatabase);
VERIFY (rs.Open (CRecordset::forwardOnly, strSelect, CRecordset::readOnly));
CString strVal;
int iMax = 0;
while (!rs.IsEOF ())
{
rs.GetFieldValue (m_strField, strVal);
if (!strVal.IsEmpty ())
{
if (m_lbFields.AddString (strVal) < 0)
AfxThrowMemoryException ();
iMax = max (iMax, strVal.GetLength ());
}
rs.MoveNext ();
}
// HorizontalExtent setzen
if (iMax > 0)
{
WORD wUnits = LOWORD (:: GetDialogBaseUnits ());
m_lbFields.SetHorizontalExtent (wUnits * iMax);
}
// TypInfo ausgeben
CODBCFieldInfo FieldInfo;
rs.GetODBCFieldInfo (m_strField, FieldInfo);
switch (FieldInfo.m_nSQLType)
{
case SQL_DATE: // Zeitformate
case SQL_TIME:
case SQL_TIMESTAMP:
{
m_uiResID = IDS_DATETIME_FORMAT;
VERIFY (m_strFieldType.LoadString (IDS_DATE_TIME));
}
break;
case SQL_DECIMAL:
case SQL_NUMERIC:
case SQL_BIGINT:
case SQL_CHAR:
case SQL_VARCHAR:
{
m_uiResID = IDS_STRING_FORMAT;
VERIFY (m_strFieldType.LoadString (IDS_TEXT));
}
break;
default: // alle Zahlenformate
VERIFY (m_strFieldType.LoadString (IDS_ZAHL));
break;
}
// Caption setzen
CString strFormat;
GetWindowText (strFormat);
strVal.Format (strFormat, m_strTable);
SetWindowText (strVal);
// Feldname setzen
m_strFieldName = FieldInfo.m_strName;
// Controls setzen
m_lbFields.EnableWindow (m_lbFields.GetCount () > 0);
m_btOk.EnableWindow (FALSE);
rs.Close ();
UpdateData (FALSE);
}
catch (CException *e)
{
e -> ReportError ();
e -> Delete ();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}