VC利用ODBC连接MySql数据库的方法及其操作数据的方法

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

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

(2)                  如果怎么安装都不成功,需要卸载重新安装,卸载后需要注意的是要将安装mysql文件地址中的所有文件删除,然后再将C:Documents and SettingsAll UsersApplication DataMySQLMySQL Server 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数据库,

       CDatabase m_db;

       CRecordset rs(&m_db);

      

(1)

连接数据库的方法:

if(!m_db.IsOpen ())

       {

              CString strdatasource;

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

              BOOL bflag = m_db.Open (NULL, FALSE, FALSE,  strdatasource);

              if (!bflag)

              {

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

              }

       }

(2)Select方法:

       CRecordset rs(&m_db);

              CString strselect;

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

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

             

              while(!rs.IsEOF())

              {    

                     CString str;

                     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

              CString dataToDel;

              dataToDel.Format("delete from 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 set OpenPrice = '%f' where TradingDay = '%s'", m_tradingname, m_openprice, m_tradingday);  //需要进一步修改

                           

m_db.ExecuteSQL(dataToModify);

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

CString dataToCreate;

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

      

       m_db.ExecuteSQL(dataToCreate);

       m_db.Close ();

(7)

原文地址:https://www.cnblogs.com/aimenfeifei/p/3281829.html