怎样把数据库里面的一列数据取出来放进一个数组里面。 我的数据库里面该列数据类型是FLOAT,想把它取出来,放进数组里面,用来计算。请各位帮忙一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么都是相同的贴子,,,下在是贴在别的地方的,,自己改吧,取得字符串后用atof()转换为double这是直接打开mdb数据文件的 1,初始化, #include "afxdao.h " CString m_filepathname; CDaoDatabase m_MyDatabase; AfxGetModuleState()-> m_dwVersion = 0x0601; AfxDaoInit(); m_filepathname = "数据库.mdb "; 2,连接打开 if(!m_filepathname.IsEmpty ()) { int i; CString str; TRY { if(m_MyDatabase.IsOpen()) { bError = IsError(m_filepathname); if(bError) { //.............. } m_MyDatabase.Close(); } m_MyDatabase.Open (m_filepathname); } CATCH (CDaoException, pEx) { //pEx-> ReportError(); CString str = pEx-> m_pErrorInfo-> m_strDescription; str = str + "\n是否需要人工连接到数据库? "; if(AfxMessageBox(str, MB_YESNO) == IDYES) { if(OnDatabaseLink()) return TRUE; else return FALSE; } else return FALSE; } END_CATCH //; int nTableCount = m_MyDatabase.GetTableDefCount (); for(i=0; i <nTableCount; i++) { CDaoTableDefInfo TableInfo; m_MyDatabase.GetTableDefInfo (i, TableInfo, AFX_DAO_ALL_INFO); if(TableInfo.m_lAttributes != 0) continue; //过滤系统表 str = (char *)(LPCTSTR)TableInfo.m_strName ; //表名称 if(str == "客户表 ") //改吧{ CString str1 = "SELECT [客户表].[姓名] FROM 客户表; "; CDaoRecordset m_MyRS(&m_MyDatabase); m_MyRS.Open(dbOpenDynaset, str1); m_MyRS.MoveFirst(); while(!m_MyRS.IsEOF()) { CString strVar = strVARIANT(m_MyRS.GetFieldValue(0)); //转吧 atof() m_MyRS.MoveNext(); } str = str + ": " CDaoTableDef m_MyTable(&m_MyDatabase); m_MyTable.Open(TableInfo.m_strName); int nFieldCount = m_MyTable.GetFieldCount(); for(int j=0; j <nFieldCount; j++) { CDaoFieldInfo FieldInfo; m_MyTable.GetFieldInfo(j, FieldInfo, AFX_DAO_ALL_INFO); str = str + "- " + (char *)(LPCTSTR)FieldInfo.m_strName ; } AfxMessageBox(str); m_MyTable.Close(); } return TRUE; } return FALSE; 3,这些代码没意义,只是示意,删掉了些,改动了些,可能没法执行了,, 4,还些转换函数 CString strVARIANT(const COleVariant &var){ CString strRet; strRet = _T("Fish"); switch(var.vt ) { case VT_EMPTY: case VT_NULL: strRet = _T("NULL"); break; case VT_I2: strRet.Format (_T("%hd"), V_I2(&var)); break; case VT_I4: strRet.Format (_T("%d"), V_I4(&var)); break; case VT_R4: strRet.Format (_T("%e"), (double)V_R4(&var)); break; case VT_R8: strRet.Format (_T("%e"), V_R8(&var)); break; case VT_CY: strRet = COleCurrency(var).Format (); break; case VT_DATE: strRet = COleDateTime(var).Format (_T("%m-%d-%y")); break; case VT_BSTR: strRet = V_BSTRT(&var); break; case VT_DISPATCH: strRet = _T("VT_DISPATCH"); break; case VT_ERROR: strRet = _T("VT_ERROR"); break; case VT_BOOL: return strBOOL(V_BOOL(&var)); case VT_VARIANT: strRet = _T("VT_VARIANT"); break; case VT_UNKNOWN: strRet = _T("VT_UNKNOWN"); break; case VT_I1: strRet = _T("VT_I1"); break; case VT_UI1: strRet.Format (_T("0x%02hx"), (unsigned short)V_UI1(&var)); break; case VT_UI2: strRet = _T("VT_UI2"); break; case VT_UI4: strRet = _T("VT_UI4"); break; case VT_I8: strRet = _T("VT_I8"); break; case VT_UI8: strRet = _T("VT_UI8"); break; case VT_INT: strRet = _T("VT_INT"); break; case VT_UINT: strRet = _T("VT_UINT"); break; case VT_VOID: strRet = _T("VT_VOID"); break; case VT_HRESULT: strRet = _T("VT_HRESULT"); break; case VT_PTR: strRet = _T("VT_PTR"); break; case VT_SAFEARRAY: strRet = _T("VT_SAFEARRAY"); break; case VT_CARRAY: strRet = _T("VT_CARRAY"); break; case VT_USERDEFINED: strRet = _T("VT_USERDEFINED"); break; case VT_LPSTR: strRet = _T("VT_LPSTR"); break; case VT_LPWSTR: strRet = _T("VT_LPWSTR"); break; case VT_FILETIME: strRet = _T("VT_FILETIME"); break; case VT_BLOB: strRet = _T("VT_BLOB"); break; case VT_STREAM: strRet = _T("VT_STREAM"); break; case VT_STORAGE: strRet = _T("VT_STORAGE"); break; case VT_STREAMED_OBJECT: strRet = _T("VT_STREAMED_OBJECT"); break; case VT_STORED_OBJECT: strRet = _T("VT_STORED_OBJECT"); break; case VT_BLOB_OBJECT: strRet = _T("VT_BLOB_OBJECT"); break; case VT_CF: strRet = _T("VT_CF"); break; case VT_CLSID: strRet = _T("VT_CLSID"); break; } WORD vt = var.vt ; if(vt & VT_ARRAY) { vt = vt & ~VT_ARRAY; strRet = _T("Pointer to "); } if(vt != var.vt ) { switch(vt) { case VT_EMPTY: strRet += _T("VT_EMPTY"); break; case VT_NULL: strRet += _T("VT_NULL"); break; case VT_I2: strRet += _T("VT_I2"); break; case VT_I4: strRet += _T("VT_I4"); break; case VT_R4: strRet += _T("VT_R4"); break; case VT_R8: strRet += _T("VT_R8"); break; case VT_CY: strRet += _T("VT_CY"); break; case VT_DATE: strRet += _T("VT_DATE"); break; case VT_BSTR: strRet += _T("VT_BSTR"); break; case VT_DISPATCH: strRet += _T("VT_DISPATCH"); break; case VT_ERROR: strRet += _T("VT_ERROR"); break; case VT_BOOL: strRet += _T("VT_BOOL"); break; case VT_VARIANT: strRet += _T("VT_VARIANT"); break; case VT_UNKNOWN: strRet += _T("VT_UNKNOWN"); break; case VT_I1: strRet += _T("VT_I1"); break; case VT_UI1: strRet += _T("VT_UI1"); break; case VT_UI2: strRet += _T("VT_UI2"); break; case VT_UI4: strRet += _T("VT_UI4"); break; case VT_I8: strRet += _T("VT_I8"); break; case VT_UI8: strRet += _T("VT_UI8"); break; case VT_INT: strRet += _T("VT_INT"); break; case VT_UINT: strRet += _T("VT_UINT"); break; case VT_VOID: strRet += _T("VT_VOID"); break; case VT_HRESULT: strRet += _T("VT_HRESULT"); break; case VT_PTR: strRet += _T("VT_PTR"); break; case VT_SAFEARRAY: strRet += _T("VT_SAFEARRAY"); break; case VT_CARRAY: strRet += _T("VT_CARRAY"); break; case VT_USERDEFINED: strRet += _T("VT_USERDEFINED"); break; case VT_LPSTR: strRet += _T("VT_LPSTR"); break; case VT_LPWSTR: strRet += _T("VT_LPWSTR"); break; case VT_FILETIME: strRet += _T("VT_FILETIME"); break; case VT_BLOB: strRet += _T("VT_BLOB"); break; case VT_STREAM: strRet += _T("VT_STREAM"); break; case VT_STORAGE: strRet += _T("VT_STORAGE"); break; case VT_STREAMED_OBJECT: strRet += _T("VT_STREAMED_OBJECT"); break; case VT_STORED_OBJECT: strRet += _T("VT_STORED_OBJECT"); break; case VT_BLOB_OBJECT: strRet += _T("VT_BLOB_OBJECT"); break; case VT_CF: strRet += _T("VT_CF"); break; case VT_CLSID: strRet += _T("VT_CLSID"); break; } } return strRet;}LPCTSTR strBOOL(BOOL bFlag){ return bFlag ? _T("TRUE") : _T("FALSE");} 关于ON_COMMAND_RANGE宏的问题~求救!! WS_EX_COMPOSITED会让窗口的控制按钮失去鼠标滑过效应 请问com组件如何查询得知其被引用了多少次? 菜鸟的两个小问题 详细问题 为何句柄无效 求《windows网络编程》03年第1版一书所带源代码啊!! 我为什么总报错:不能将参数从“const char”转换为“LPCTSTR” 工程项目的.dsw工作区文件丢失后怎么办 急,内存问题,new出错? 请问:可以将void CALLBACK Proc1(......)在一个类中声明吗?谢谢。 如何实现这个界面,我需要思路 在二进制文件中查找字符串
下在是贴在别的地方的,,自己改吧,取得字符串后用atof()转换为double
这是直接打开mdb数据文件的 1,初始化,
#include "afxdao.h " CString m_filepathname;
CDaoDatabase m_MyDatabase; AfxGetModuleState()-> m_dwVersion = 0x0601;
AfxDaoInit();
m_filepathname = "数据库.mdb ";
2,连接打开
if(!m_filepathname.IsEmpty ())
{
int i;
CString str;
TRY
{
if(m_MyDatabase.IsOpen())
{
bError = IsError(m_filepathname);
if(bError)
{
//..............
}
m_MyDatabase.Close();
} m_MyDatabase.Open (m_filepathname);
}
CATCH (CDaoException, pEx)
{
//pEx-> ReportError();
CString str = pEx-> m_pErrorInfo-> m_strDescription;
str = str + "\n是否需要人工连接到数据库? ";
if(AfxMessageBox(str, MB_YESNO) == IDYES)
{
if(OnDatabaseLink())
return TRUE;
else
return FALSE;
}
else
return FALSE;
}
END_CATCH
//;
int nTableCount = m_MyDatabase.GetTableDefCount ();
for(i=0; i <nTableCount; i++)
{
CDaoTableDefInfo TableInfo;
m_MyDatabase.GetTableDefInfo (i, TableInfo, AFX_DAO_ALL_INFO);
if(TableInfo.m_lAttributes != 0)
continue; //过滤系统表 str = (char *)(LPCTSTR)TableInfo.m_strName ; //表名称
if(str == "客户表 ") //改吧
{
CString str1 = "SELECT [客户表].[姓名] FROM 客户表; "; CDaoRecordset m_MyRS(&m_MyDatabase);
m_MyRS.Open(dbOpenDynaset, str1);
m_MyRS.MoveFirst(); while(!m_MyRS.IsEOF())
{
CString strVar = strVARIANT(m_MyRS.GetFieldValue(0)); //转吧 atof()
m_MyRS.MoveNext();
}
str = str + ": " CDaoTableDef m_MyTable(&m_MyDatabase);
m_MyTable.Open(TableInfo.m_strName); int nFieldCount = m_MyTable.GetFieldCount();
for(int j=0; j <nFieldCount; j++)
{
CDaoFieldInfo FieldInfo;
m_MyTable.GetFieldInfo(j, FieldInfo, AFX_DAO_ALL_INFO); str = str + "- " + (char *)(LPCTSTR)FieldInfo.m_strName ;
}
AfxMessageBox(str);
m_MyTable.Close();
}
return TRUE;
}
return FALSE;
3,这些代码没意义,只是示意,删掉了些,改动了些,可能没法执行了,,
{
CString strRet;
strRet = _T("Fish");
switch(var.vt )
{
case VT_EMPTY:
case VT_NULL:
strRet = _T("NULL");
break;
case VT_I2:
strRet.Format (_T("%hd"), V_I2(&var));
break;
case VT_I4:
strRet.Format (_T("%d"), V_I4(&var));
break;
case VT_R4:
strRet.Format (_T("%e"), (double)V_R4(&var));
break;
case VT_R8:
strRet.Format (_T("%e"), V_R8(&var));
break;
case VT_CY:
strRet = COleCurrency(var).Format ();
break;
case VT_DATE:
strRet = COleDateTime(var).Format (_T("%m-%d-%y"));
break;
case VT_BSTR:
strRet = V_BSTRT(&var);
break;
case VT_DISPATCH:
strRet = _T("VT_DISPATCH");
break;
case VT_ERROR:
strRet = _T("VT_ERROR");
break;
case VT_BOOL:
return strBOOL(V_BOOL(&var));
case VT_VARIANT:
strRet = _T("VT_VARIANT");
break;
case VT_UNKNOWN:
strRet = _T("VT_UNKNOWN");
break;
case VT_I1:
strRet = _T("VT_I1");
break;
case VT_UI1:
strRet.Format (_T("0x%02hx"), (unsigned short)V_UI1(&var));
break;
case VT_UI2:
strRet = _T("VT_UI2");
break;
case VT_UI4:
strRet = _T("VT_UI4");
break;
case VT_I8:
strRet = _T("VT_I8");
break;
case VT_UI8:
strRet = _T("VT_UI8");
break;
case VT_INT:
strRet = _T("VT_INT");
break;
case VT_UINT:
strRet = _T("VT_UINT");
break;
case VT_VOID:
strRet = _T("VT_VOID");
break;
case VT_HRESULT:
strRet = _T("VT_HRESULT");
break;
case VT_PTR:
strRet = _T("VT_PTR");
break;
case VT_SAFEARRAY:
strRet = _T("VT_SAFEARRAY");
break;
case VT_CARRAY:
strRet = _T("VT_CARRAY");
break;
case VT_USERDEFINED:
strRet = _T("VT_USERDEFINED");
break;
case VT_LPSTR:
strRet = _T("VT_LPSTR");
break;
case VT_LPWSTR:
strRet = _T("VT_LPWSTR");
break;
case VT_FILETIME:
strRet = _T("VT_FILETIME");
break;
case VT_BLOB:
strRet = _T("VT_BLOB");
break;
case VT_STREAM:
strRet = _T("VT_STREAM");
break;
case VT_STORAGE:
strRet = _T("VT_STORAGE");
break;
case VT_STREAMED_OBJECT:
strRet = _T("VT_STREAMED_OBJECT");
break;
case VT_STORED_OBJECT:
strRet = _T("VT_STORED_OBJECT");
break;
case VT_BLOB_OBJECT:
strRet = _T("VT_BLOB_OBJECT");
break;
case VT_CF:
strRet = _T("VT_CF");
break;
case VT_CLSID:
strRet = _T("VT_CLSID");
break;
}
WORD vt = var.vt ;
if(vt & VT_ARRAY)
{
vt = vt & ~VT_ARRAY;
strRet = _T("Pointer to ");
}
if(vt != var.vt )
{
switch(vt)
{
case VT_EMPTY:
strRet += _T("VT_EMPTY");
break;
case VT_NULL:
strRet += _T("VT_NULL");
break;
case VT_I2:
strRet += _T("VT_I2");
break;
case VT_I4:
strRet += _T("VT_I4");
break;
case VT_R4:
strRet += _T("VT_R4");
break;
case VT_R8:
strRet += _T("VT_R8");
break;
case VT_CY:
strRet += _T("VT_CY");
break;
case VT_DATE:
strRet += _T("VT_DATE");
break;
case VT_BSTR:
strRet += _T("VT_BSTR");
break;
case VT_DISPATCH:
strRet += _T("VT_DISPATCH");
break;
case VT_ERROR:
strRet += _T("VT_ERROR");
break;
case VT_BOOL:
strRet += _T("VT_BOOL");
break;
case VT_VARIANT:
strRet += _T("VT_VARIANT");
break;
case VT_UNKNOWN:
strRet += _T("VT_UNKNOWN");
break;
case VT_I1:
strRet += _T("VT_I1");
break;
case VT_UI1:
strRet += _T("VT_UI1");
break;
case VT_UI2:
strRet += _T("VT_UI2");
break;
case VT_UI4:
strRet += _T("VT_UI4");
break;
case VT_I8:
strRet += _T("VT_I8");
break;
case VT_UI8:
strRet += _T("VT_UI8");
break;
case VT_INT:
strRet += _T("VT_INT");
break;
case VT_UINT:
strRet += _T("VT_UINT");
break;
case VT_VOID:
strRet += _T("VT_VOID");
break;
case VT_HRESULT:
strRet += _T("VT_HRESULT");
break;
case VT_PTR:
strRet += _T("VT_PTR");
break;
case VT_SAFEARRAY:
strRet += _T("VT_SAFEARRAY");
break;
case VT_CARRAY:
strRet += _T("VT_CARRAY");
break;
case VT_USERDEFINED:
strRet += _T("VT_USERDEFINED");
break;
case VT_LPSTR:
strRet += _T("VT_LPSTR");
break;
case VT_LPWSTR:
strRet += _T("VT_LPWSTR");
break;
case VT_FILETIME:
strRet += _T("VT_FILETIME");
break;
case VT_BLOB:
strRet += _T("VT_BLOB");
break;
case VT_STREAM:
strRet += _T("VT_STREAM");
break;
case VT_STORAGE:
strRet += _T("VT_STORAGE");
break;
case VT_STREAMED_OBJECT:
strRet += _T("VT_STREAMED_OBJECT");
break;
case VT_STORED_OBJECT:
strRet += _T("VT_STORED_OBJECT");
break;
case VT_BLOB_OBJECT:
strRet += _T("VT_BLOB_OBJECT");
break;
case VT_CF:
strRet += _T("VT_CF");
break;
case VT_CLSID:
strRet += _T("VT_CLSID");
break;
}
}
return strRet;
}LPCTSTR strBOOL(BOOL bFlag)
{
return bFlag ? _T("TRUE") : _T("FALSE");
}