我最近在学SQL,但是找不到有关如何用C语言在vs中连接数据库的资料。
谁能指点一下吗?(最好给出几行代码)
十分感谢!

解决方案 »

  1.   

    http://topic.csdn.net/u/20100430/15/2b49da49-595e-4f3a-a75c-7579c4d04dd3.html
    以前客串过一下,,,
      

  2.   

    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #define SNO_LEN 30
    #define NAME_LEN 50
    #define DEPART_LEN 100
    #define SSEX_LEN 5
    int main()
    {
    /* Step 1 定义句柄和变量 */
    //以king开头的表示的是连接KINGBASEES的变量
    //以server开头的表示的是连接SQLSERVER的变量
    SQLHENV kinghenv, serverhenv; //环境句柄
    SQLHDBC kinghdbc,serverhdbc; //连接句柄
    SQLHSTMT kinghstmt,serverhstmt; //语句句柄
    SQLRETURN ret;
    SQLCHAR sName[NAME_LEN], sDepart[DEPART_LEN],sSex[SSEX_LEN],sSno[SNO_LEN];
    SQLINTEGER sAge;
    SQLINTEGER cbAge = 0, cbSno = SQL_NTS, cbSex = SQL_NTS,cbName = SQL_NTS,cbDepart = SQL_NTS;
    /* Step 2 初始化环境 */ 
    ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &kinghenv);
    ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv);
    ret = SQLSetEnvAttr(kinghenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
    ret = SQLSetEnvAttr(serverhenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
    /* Step 3 :建立连接 */
    ret = SQLAllocHandle(SQL_HANDLE_DBC, kinghenv, &kinghdbc);
    ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, &serverhdbc);
    ret = SQLConnect(kinghdbc,
    "KingbaseES ODBC",SQL_NTS,
    "SYSTEM",SQL_NTS,
    "MANAGER",SQL_NTS);
    if (!SQL_SUCCEEDED(ret)) //连接失败时返回错误值
    return -1;
    ret = SQLConnect(serverhdbc,
    "SQLServer",SQL_NTS,
    "sa",SQL_NTS,
    "sa",SQL_NTS);
    if (!SQL_SUCCEEDED(ret)) //连接失败时返回错误值
    return -1;
    /* Step 4 :初始化语句句柄 */
    ret = SQLAllocHandle(SQL_HANDLE_STMT, kinghdbc, &kinghstmt);
    ret = SQLSetStmtAttr(kinghstmt,SQL_ATTR_ROW_BIND_TYPE,(SQLPOINTER)SQL_BIND_BY_COLUMN,SQL_IS_INTEGER );ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt);
    /* Step 5 :两种方式执行语句 *//* 预编译带有参数的语句 */
    ret = SQLPrepare(serverhstmt,"INSERT INTO STUDENT (SNO,SNAME,SSEX,SAGE,SDEPT) VALUES ( , , , , )", SQL_NTS);
    if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) 
    {
    ret = SQLBindParameter(serverhstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, SNO_LEN, 0, sSno, 0, &cbSno); 
    ret = SQLBindParameter(serverhstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, NAME_LEN, 0, sName, 0, &cbName);
    ret = SQLBindParameter(serverhstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 2, 0, sSex, 0, &cbSex); 
    ret = SQLBindParameter(serverhstmt, 4, SQL_PARAM_INPUT, SQL_C_LONG,SQL_INTEGER, 0, 0, &sAge, 0, &cbAge);
    ret = SQLBindParameter(serverhstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, DEPART_LEN, 0, sDepart, 0, &cbDepart);
    }/*执行SQL语句*/
    ret = SQLExecDirect(kinghstmt,"SELECT * FROM STUDENT",SQL_NTS);
    if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) 
    {
    ret = SQLBindCol(kinghstmt, 1, SQL_C_CHAR,sSno,SNO_LEN, &cbSno);
    ret = SQLBindCol(kinghstmt, 2, SQL_C_CHAR, sName, NAME_LEN, &cbName);
    ret = SQLBindCol(kinghstmt, 3, SQL_C_CHAR, sSex, SSEX_LEN, &cbSex);
    ret = SQLBindCol(kinghstmt, 4, SQL_C_LONG, &sAge, 0, &cbAge);
    ret = SQLBindCol(kinghstmt, 5, SQL_C_CHAR, sDepart, DEPART_LEN, &cbDepart);
      

  3.   

    http://download.csdn.net/source/2520916
      

  4.   

    要配置ODBC,看看数据库系统概论,上面有个实例