zoukankan      html  css  js  c++  java
  • mysql c connector 多条sql语句执行示例

     

    //  假设参数 sql已经包含多条sql语句。如 sql = "insert into table1(...) values(...); update table2 set a=1;";  

    const bool CDBOperator::MultiQuery(const std::string sql, std::string& error)

    {
    int res = 0;
    bool ret = false;
    MYSQL_RES* result = NULL;
    std::string e;
    try
    {
    //disable autocommit
    if(!AutoCommit(AUTOCOMMIT_DISABLE, error))
    {
    return false;
    }
    res = mysql_real_query(m_mysql, sql.c_str(), sql.length());
    // if query fail
    if(0 != res)
    {
    error = mysql_error(m_mysql);
    Rollback(e);
    AutoCommit(AUTOCOMMIT_ENABLE, e);
    return false;
    }
    do
    {
    /* did current statement return data? */
    result = mysql_store_result(m_mysql);
    if (result) {
    mysql_free_result(result);
    } else { /* no result set or error */
    if (mysql_field_count(m_mysql) == 0) {
    printf("%lld rows affected ",
    mysql_affected_rows(m_mysql));
    } else { /* some error occurred */
    printf("Could not retrieve result set ");
    break;
    }
    }
    /* more results? -1 = no, >0 = error, 0 = yes (keep looping) */
    if ((res = mysql_next_result(m_mysql)) > 0)
    printf("Could not execute statement ");
    } while (res == 0);
    ret = Commit(error);
    AutoCommit(AUTOCOMMIT_ENABLE, e);
    if(!ret)
    {
    return false;
    }
    return true;
    }
    catch(...)
    {
    error = mysql_error(m_mysql);
    return false;
    }
  • 相关阅读:
    Oracle函数题
    多态
    继承
    封装
    属性和修饰符
    方法重载
    构造方法
    类与实例
    SQL Server 2005 To Oracle
    Toad for Oracle 使用文档
  • 原文地址:https://www.cnblogs.com/qianlicao/p/9011559.html
Copyright © 2011-2022 走看看