用C来访问本机上的MySQL数据库是否必须在机器上启动MYSQL服务?然后再用连接函数来连接这个数据库?像其它数据一样用ODBC来访问?

解决方案 »

  1.   

    如果我给客户写一个把信息存在MYSQL数据库中的程序,不至于让客户安装一个MYSQL程序吧
    希望像ACCESS那样,只要有一个.mdb文件就行了。
      

  2.   

    刚刚查了一下,好像必须得装什么驱动之类的。如果是在Linux下,上面的问题如何解决?也有相关驱动要装吗?还是必须要启动MYSQL服务?
      

  3.   

    必须启动mysql服务
    想要mdb那种文件级的,建议你用下sqlite。
      

  4.   

    必须启动mysql服务
    想要mdb那种文件级的,建议你用下嵌入式MySQL
      

  5.   

    #include <stdio.h>
    #include <stdlib.h>
    #include "/usr/local/mysql/include/mysql/mysql.h"  
    /*注意哦,上面必须是mysql.h的绝对地址,一般在mysql下的include目录下,仔细看看你的在哪里?*/int main(int argc, char *argv[]) 
    {
    MYSQL my_connection;int res;mysql_init(&my_connection); /*mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)*/
    if (mysql_real_connect(&my_connection, "localhost", "root", "","cusemysql",0,NULL,CLIENT_FOUND_ROWS)) 
    {
        printf("Connection success\n");
        res = mysql_query(&my_connection, "insert into children values(10,'Ann',5)");    if (!res) 
        {
            printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(&my_connection));
    /*里头的函数返回受表中影响的行数*/
        } 
        else 
        {
        //分别打印出错误代码及详细信息
            fprintf(stderr, "Insert error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
        }
        mysql_close(&my_connection);
    } else 
    {
        fprintf(stderr, "Connection failed\n");    if (mysql_errno(&my_connection)) 
        {
            fprintf(stderr, "Connection error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
            }
    }
        return EXIT_SUCCESS;
    }
    /////////////////////////////////////////////
    代码写完了,要编译哦
    #gcc -o insert insert.c -L /usr/local/mysql/lib/mysql/*.a -lz
      

  6.   


    http://blog.csdn.net/hzhxxx/archive/2006/12/14/1443031.aspx
      

  7.   

    服务是必须要启动的,因为你的是客户端程序。
    用C来访问,可以是C-api,也可以是ODBC api。按照你个人喜好。