c++中cin和数据库怎么结合

来自:互联网
时间:2024-04-28
阅读:

c++中cin和数据库怎么结合

C++ 中 cin 和数据库的结合

在 C++ 中使用 cin 从命令行读取用户输入,而数据库用于存储和管理数据。要将 cin 与数据库结合起来,需要使用数据库接口库(例如 MySQL Connector/C++ 或 ODBC)。

使用 MySQL Connector/C++

  1. 安装 MySQL Connector/C++ 库。
  2. 在 C++ 代码中包含必要的头文件。

    <code class="cpp">#include <iostream>
    #include mysqlx/xdevapi.h&gt;</iostream></code>
  3. 建立数据库连接。

    <code class="cpp">mysqlx::Session session("host", "port", "user", "password", "database");</code>
  4. 创建查询语句。

    <code class="cpp">std::string query = "SELECT * FROM table_name WHERE column_name = ?";</code>
  5. 将 cin 输入绑定到查询参数。

    <code class="cpp">mysqlx::PreparedStatement stmt = session.prepare(query);
    std::string input;
    std::cin &gt;&gt; input;
    stmt.bind("column_name", input);</code>
  6. 执行查询。

    <code class="cpp">mysqlx::Result res = stmt.execute();</code>
  7. 获取查询结果。

    <code class="cpp">for (auto row : res.fetchAll()) {
        std::cout () </code>

使用 ODBC

  1. 包含必要的 ODBC 头文件。

    <code class="cpp">#include <iostream>
    #include <sql.h>
    #include <sqlext.h></sqlext.h></sql.h></iostream></code>
  2. 建立数据库连接。

    <code class="cpp">SQLHENV henv;
    SQLHDBC hdbc;
    
    SQLAllocEnv(&amp;henv);
    SQLAllocConnect(henv, &amp;hdbc);
    SQLDriverConnect(hdbc, nullptr, "DSN", SQL_NTS, nullptr, 0, nullptr, SQL_DRIVER_NOPROMPT);</code>
  3. 创建 SQL 语句句柄。

    <code class="cpp">SQLHSTMT hstmt;
    SQLAllocStmt(hdbc, &amp;hstmt);</code>
  4. 设置 SQL 语句。

    <code class="cpp">std::string sql = "SELECT * FROM table_name WHERE column_name = ?";
    SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, nullptr, 0, nullptr);</code>
  5. 将 cin 输入绑定到 SQL 语句。

    <code class="cpp">std::string input;
    std::cin &gt;&gt; input;
    SQLSetParam(hstmt, 1, SQL_C_CHAR, input.c_str(), input.length(), nullptr);</code>
  6. 执行 SQL 语句。

    <code class="cpp">SQLExecute(hstmt);</code>
  7. 获取查询结果。

    <code class="cpp">SQLBindCol(hstmt, 1, SQL_C_CHAR, nullptr, 0, nullptr);
    
    while (SQLFetch(hstmt) == SQL_SUCCESS) {
        char buffer[1024];
        SQLGetData(hstmt, 1, SQL_C_CHAR, buffer, sizeof(buffer), nullptr);
        std::cout </code>

以上就是c++++中cin和数据库怎么结合的详细内容。

返回顶部
顶部