MFC中利用ODBC连接MySql方法总结

来源:互联网 发布:零度网络 下载空间 编辑:程序博客网 时间:2024/06/11 11:03

1,安装MySql,安装方法:http://www.jb51.net/article/23876.htm。在安装过程中,需要注意的几点。

(1)                 第一次安装不成功,如果第一次添加了用户密码,再次安装的时候不要填写旧的密码,只需要填写新密码即可。

(2)                 如果怎么安装都不成功,需要卸载重新安装,卸载后需要注意的是要将安装mysql文件地址中的所有文件删除,然后再将C:\Documents and Settings\All Users\Application Data\MySQL\MySQLServer 5.1。这个地方的文件同样也删除掉,否则再次安装还是会失败!

以上就是我在安装mysql中遇到的几个问题。

2,利用ODBC连接MySql需要配置MySql的数据源,这就需要另外一个软件,将MySql数据库加载到ODBC中,需要软件名:mysql_connector-odbc-3.51.exe。

3,在ODBC中配置MySql数据源,方法:

http://jingyan.baidu.com/article/8065f87f38b31423312498e4.html。

4,VC中利用ODBC连接MySql数据库,

       CDatabasem_db;

       CRecordsetrs(&m_db);

      

(1)

连接数据库的方法:

if(!m_db.IsOpen ())

       {

              CStringstrdatasource;

              strdatasource.Format("ODBC; DSN=%s; UID=%s; PWD=%s",dsn, uid, pwd);

              BOOLbflag = m_db.Open (NULL, FALSE, FALSE, strdatasource);

              if(!bflag)

              {

                     MessageBox("打开数据库失败!!");

              }

       }

(2)Select方法:

              CRecordset rs(&m_db);

              CStringstrselect;

              strselect.Format("SELECT * FROM %s ", m_tradingname);

              rs.Open(CRecordset::forwardOnly, strselect);

             

              while(!rs.IsEOF())

              {    

                     CStringstr;

                     rs.GetFieldValue("TradingDay",str);

                     m_list.InsertItem(0,str);

                    

                     rs.GetFieldValue("OpenPrice",str);

                     m_list.SetItemText(0,1, str);

                    

                     rs.GetFieldValue("HighestPrice",str);         

                     m_list.SetItemText(0,2, str);

                    

                     rs.GetFieldValue("LowestPrice",str);         

                     m_list.SetItemText(0,3, str);

                    

                     rs.GetFieldValue("ClosePrice",str);         

                     m_list.SetItemText(0,4, str);

                    

                     rs.GetFieldValue("Volume",str);         

                     m_list.SetItemText(0,5, str);

                     rs.MoveNext();

              }

             

              rs.Close();

              m_db.Close();

 

(3)删除数据库表中的记录:delete from where

 

              CStringdataToDel;

              dataToDel.Format("deletefrom suger1311 where TradingDay = '%s'", m_strday);                             

              m_db.ExecuteSQL(dataToDel);

              m_db.Close();

 

(4)          向数据库表中插入新的记录:Insert  into      values()

             

CString str;

 

str.Format ("insert into %s values(%s,%f,  %f, %f, %f, %d)",m_tradingname,  m_tradingday,m_openprice,  m_highestprice,m_lowestprice, m_closeprice, m_volume);

 

m_db.ExecuteSQL (str);

 

m_db.Close ();      

 

(5) 修改数据库表中的记录:update tables  set  …..

 

CString dataToModify;

 

dataToModify.Format("update %s setOpenPrice = '%f' where TradingDay = '%s'", m_tradingname, m_openprice,m_tradingday);  //需要进一步修改

                           

m_db.ExecuteSQL(dataToModify);

 

 

(6) 创建新的数据库表:

 

CString dataToCreate;

 

       dataToCreate.Format("createtable %s (TradingDay varchar(16) not NULL, OpenPrice double not NULL,HighestPrice double not NULL, LowestPrice double not NULL, ClosePrice doublenot NULL, Volume int(16), PRIMARY KEY(TradingDay) )",m_newname ); 

      

       m_db.ExecuteSQL(dataToCreate);

       m_db.Close();

(7)

0 0
原创粉丝点击