从数据库读取数据训练神经网络
来源:互联网 发布:linux终端输入密码 编辑:程序博客网 时间:2024/06/05 08:21
由于数据列太多(504列),无法加载到txt和excel中,而且操作起来不方便,因此这里直接从数据库中加载数据
另外,对于数据库中一些连接和操作的语句,这里也记录下来,以后用起来方便些。就不用去代码中找了。
1、连接数据库
在此之前,需要用odbc配置数据源,建立数据库,配置数据源即可。
CDataBase* m_pDataBase; //定义
m_pDataBase=new CDatabase(); //构造函数中
m_pDataBase->Close();//析构函数中<span style="white-space:pre"></span>delete m_pDataBase;
#include "afxdb.h" --数据库头文件不要忘记
BOOL CChangeIdeaApp::PrepareDataBase(){BOOL bRet;TRY{bRet=m_pDataBase->Open(NULL,FALSE,FALSE,_T("ODBC;DSN=ZKDB"));//;UID=sa;PWD=psdmaes}CATCH_ALL(e){char MsgError[255];e->GetErrorMessage(MsgError,255);AfxMessageBox(MsgError);delete m_pDataBase;return FALSE;}END_CATCH_ALLif(!bRet){AfxMessageBox(_T("连接失败!")); delete m_pDataBase;return FALSE;}}这个例子是以前做的一个利用字库做idea的,这里重新拿出来
2、读取数据
这里是一个读取字库中记录的小程序,这里有一些随机读取的功能,可以用来做一般的模板使用
int row=GetProfileInt("字库","行数",2358);int col=GetProfileInt("字库","列数",10);CString OutContent="";srand((int)time(0));for(int i=0;i<4;i++){int r=rand()%row;//随机取行和列int c=rand()%col;char GetName[100];SDWORD cbName;c++;c++;char ss[1024];HSTMT hStmt;RETCODE retcode;sprintf(ss,"select * from ZkTable where ROW=%d",r);if(SQLAllocStmt(m_pDataBase->m_hdbc,&hStmt)!=SQL_SUCCESS) {AfxMessageBox("SQLAllocStmt error !",MB_OK);return FALSE;}retcode = SQLExecDirect(hStmt, (unsigned char *)ss, SQL_NTS); if((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO)) {SQLFreeStmt(hStmt,SQL_DROP);AfxMessageBox("SQLExecDirect Error",MB_OK);return FALSE;}while(retcode==SQL_SUCCESS){ retcode = SQLFetch(hStmt); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){SQLGetData(hStmt, c, SQL_C_CHAR, &GetName[0], 256, &cbName); //c为第c列,从1开始,一些其他的格式见下表1OutContent+=GetName;break;}}SQLFreeStmt(hStmt,SQL_DROP);}RecordContent=OutContent;
经过改进,完整的从数据库中读取数据成为矩阵的代码如下
功能:从数据库中读取50行数据,共504列到矩阵中。
对于这种矩阵类,我觉得还是很好用的,我应该掌握它。并让它成为自己的程序。
bool CMatrix::LoadDataFromBase(){CNNBPApp* pApp = (CNNBPApp*)AfxGetApp();//设置矩阵的行列m_nRow =50;SetMatrixRowNumber(m_nRow);m_nCol =504;SetMatrixColNumber(m_nCol);double GetValue;SDWORD cbName;char ss[1024];CString OutContent="";HSTMT hStmt;RETCODE retcode;sprintf(ss,"select * from aatest");if(SQLAllocStmt(pApp->m_pDataBase->m_hdbc,&hStmt)!=SQL_SUCCESS) {AfxMessageBox("SQLAllocStmt error !",MB_OK);return FALSE;}retcode = SQLExecDirect(hStmt, (unsigned char *)ss, SQL_NTS); if((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO)) {SQLFreeStmt(hStmt,SQL_DROP);AfxMessageBox("SQLExecDirect Error",MB_OK);return FALSE;}int i=0;while(retcode==SQL_SUCCESS){ retcode = SQLFetch(hStmt); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){for(int j=1;j<=504;j++){SQLGetData(hStmt, j, SQL_C_DOUBLE, &GetValue, 256, &cbName); m_pTMatrix [i][j-1] = GetValue;}}i++;if(i>=50)break;}SQLFreeStmt(hStmt,SQL_DROP);}
这里贴出来,以后找起来就方便了。
表1 格式大全来源http://www.cnblogs.com/zhenjing/
值
SQL类型
C类型
bit
SQL_BIT
SQL_C_BIT
tinyint
SQL_TINYINT
SQL_C_STINYINT
tinyint unsigned
SQL_TINYINT
SQL_C_UTINYINT
bigint
SQL_BIGINT
SQL_C_SBIGINT
bigint unsigned
SQL_BIGINT
SQL_C_UBIGINT
long varbinary
SQL_LONGVARBINARY
SQL_C_BINARY
blob
SQL_LONGVARBINARY
SQL_C_BINARY
longblob
SQL_LONGVARBINARY
SQL_C_BINARY
tinyblob
SQL_LONGVARBINARY
SQL_C_BINARY
mediumblob
SQL_LONGVARBINARY
SQL_C_BINARY
long varchar
SQL_LONGVARCHAR
SQL_C_CHAR
text
SQL_LONGVARCHAR
SQL_C_CHAR
mediumtext
SQL_LONGVARCHAR
SQL_C_CHAR
char
SQL_CHAR
SQL_C_CHAR
numeric
SQL_NUMERIC
SQL_C_CHAR
decimal
SQL_DECIMAL
SQL_C_CHAR
integer
SQL_INTEGER
SQL_C_SLONG
integer unsigned
SQL_INTEGER
SQL_C_ULONG
int
SQL_INTEGER
SQL_C_SLONG
int unsigned
SQL_INTEGER
SQL_C_ULONG
mediumint
SQL_INTEGER
SQL_C_SLONG
mediumint unsigned
SQL_INTEGER
SQL_C_ULONG
smallint
SQL_SMALLINT
SQL_C_SSHORT
smallint unsigned
SQL_SMALLINT
SQL_C_USHORT
real
SQL_FLOAT
SQL_C_DOUBLE
double
SQL_FLOAT
SQL_C_DOUBLE
float
SQL_REAL
SQL_C_FLOAT
double precision
SQL_DOUBLE
SQL_C_DOUBLE
date
SQL_DATE
SQL_C_DATE
time
SQL_TIME
SQL_C_TIME
year
SQL_SMALLINT
SQL_C_SHORT
datetime
SQL_TIMESTAMP
SQL_C_TIMESTAMP
timestamp
SQL_TIMESTAMP
SQL_C_TIMESTAMP
text
SQL_VARCHAR
SQL_C_CHAR
varchar
SQL_VARCHAR
SQL_C_CHAR
enum
SQL_VARCHAR
SQL_C_CHAR
set
SQL_VARCHAR
SQL_C_CHAR
bit
SQL_CHAR
SQL_C_CHAR
bool
SQL_CHAR
SQL_C_CHAR
- 从数据库读取数据训练神经网络
- 从数据库sqlite3读取数据
- pandas从数据库读取数据
- 从 MySQL 数据库读取数据
- 从数据库中读取数据创建菜单
- MapX从数据库读取数据形成新图层
- 从数据库中读取XML数据
- 从Excel读取数据并存入数据库
- [C#] 从数据库读取数据并输出
- 从数据库读取数据放入Spinner
- 从数据库中读取序列化数据
- 从数据库中读取数据到Excel
- 幻灯片从数据库中读取数据
- 从文本文件读取数据存储到数据库
- 如何从数据库中读取数据
- 从数据库读取前10条数据
- C#从数据库mysql读取数据
- HighCharts从数据库中读取数据
- CentOS - 系统管理(2)
- Android的onLayout、layout方法讲解
- 大型网站架构改进历程:存储的瓶颈(四)
- 利用海伦公式求三角形面积,三边长a,b,c由键盘输入,若输入的三边长不能构成三角形,输出相应的提示信息。
- [搜狗] 找一个字符串中包含全部出现字符的最小字符串
- 从数据库读取数据训练神经网络
- 码率、帧率和I B P帧
- DOM 事件
- 不能再遍历一个list 的时候 对其增删
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- PLSQL显示乱码-无法进行中文条件查询解决
- Maven中央仓库——你可能不知道的细节
- UVa 10892 LCM Cardinality (分解质因数+数学)
- Object C 实现 “多继承”