• 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)

  • 相关阅读:
    ld -l选项注意事项
    linux下创建用户(转)
    delete void *
    __attribute__机制介绍(转)
    正常断开连接情况下,判断非阻塞模式socket连接是否断开
    std::thread “terminate called without an active exception”
    Android 开发手记二 C可执行程序编译实例(转帖)
    c++11 on Android
    由一段小程序看算法复杂度
    Linux守护进程的编程实现(转)
  • 原文地址:https://www.cnblogs.com/aimenfeifei/p/3281829.html
Copyright © 2020-2023  润新知