设为首页 加入收藏

TOP

c / c + + 调用mysql存储过程(三)
2014-03-10 13:04:14 来源: 作者: 【 】 浏览:461
Tags:   调用 mysql 存储 过程

 

  5、C语言调用存储过程的方法步骤:

  5.1、Mysql 的句柄初始化

  if(!mysql_init(&mysql))

  {

  printf("mysql_init failed!\n");

  return 0;

  }

  5.2、连接到MySQL数据库

  //login or connect

  if(!mysql_real_connect(&mysql,"localhost","root","","billingdb",0,NULL,CLIENT_MULTI_STATEMENTS))

  {

  printf("mysql_real_connect() failed!\n");

  mysql_close(&mysql);

  return 0;

  }

  5.3、调用存储过程

  //call

  strcpy(query,"call querystudent (1,@ret,@ out_name,@ out_age)");

  printf("query sql=[%s]\n",query);

  ret= mysql_real_query(&mysql,query,(unsigned int)strlen(query));

  5.4、查询返回值及输出参数值

  mysql_query(&mysql, "SELECT @ret,@ out_name,@ out_age ");

  //get result

  if (ret)

  {

  printf("Error exec query: %s\n",mysql_error(&mysql));

  }

  else

  {

  printf("[%s] exec...\n", query);

  }

  results = mysql_store_result(&mysql);

  5.5、获取结果值

  while((record = mysql_fetch_row(results))) {

  printf("[%s]-[%s]-[%s]\n", record[0], record ,record );

  }

  常规的存储过程将只返回结果,^_^。

  5.6、释放资源和mysql连接句柄

  mysql_free_result(results);

  mysql_close(&mysql);

  6、结论

  Mysql 的存储过程可以实现相当强大的功能,这里只是一些基本的用法,希望能给你一些帮助。也欢迎分享......

  7、个人使用经验心得

  像C#调用都可以绑定输出参数,直接通过输出参数得到值,但是c++中使用prepare绑定输出参数,却返回以下错误信息:

  Error Code: 1414. OUT or INOUT argument 2 for routine knockout_dbo.ko_SignUpYoungBoxer is not a variable or NEW pseudo-variable in BEFORE trigger

      

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇用字符串实现1000以内阶乘 下一篇USACO 2009 Feb ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: