1.数据库名:test;

表名:chengjibiao;

字段:Id  int , Name char , Englishint , Maths int , Physis int ;

2.存储过程:

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`query` $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `query`( in N int, out schar(254) )

BEGIN

declare a,b,c,d,e int;

declare f char(100);

declare g decimal(4,2);

set e=1;

drop table if exists zongping;

create table zongping(NUM int,Name char(255),English int,Mathsint,Physis int,Total int,aver decimal(4,2));

repeat

select English,Maths,Physis,Name into a,b,c,f from chengjibiaowhere Id=e;

set d=a+b+c;

set g=(a+b+c)/3;

insert into zongping(NUM,Name,English,Maths,Physis,Total,aver)values( e,f,a,b,c,d,g );

set e=e+1;

until e=N

end repeat;

select *from zongping as s;

drop table zongping;

END $$

DELIMITER ;

3.主函数(在文件main.c中):

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "/usr/include/mysql/mysql.h"

#include "/usr/include/mysql/mysql_version.h"

#include "/usr/include/mysql/errmsg.h"

int main( int argc,char **argv[] )

{

MYSQL mysql;

MYSQL_ROW results,record;

char query[50],s[254];

/**链接数据库**/

if(!mysql_init(&mysql))

{

printf("mysql_init failed!/n");

return 0;

}

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

{

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

mysql_close(&mysql);

return 0;

}

/**调用存储过程**/

strcpy(query,"callquery(7,@s)");

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

/**取得存储过程返回值**/

mysql_query(&mysql,"SELECT @s ");

results =mysql_store_result(&mysql);

/**输出返回值**/

printf( "Id      Name     Maths     English    Physis    Total     aver/n" );

while((record =mysql_fetch_row(results)))

{

printf("%1s%10s%8s%12s%11s%10s%10s/n", record[0], record[1],record[2],record[3],record[4],record[5],record[6]);

}

mysql_free_result(results);

mysql_close(&mysql);

return 0;

}

(编译:gcc -o main main.c -L/usr/lib/mysql/ -lmysqlclient -lz)

4.

成绩表:

+----+-------+-------+---------+--------+

| Id | Name| Maths | English |Physis |

+----+-------+-------+---------+--------+

|1 | liu |90|80 |86 |

|2 | zhang |88 |86 |87 |

|3 | xiao|78|88 |98 |

|4 | wang|77|87 |97 |

|5 | li|79 |89 |99 |

|6 | yi|67 |77 |87 |

运行程序得到的结果:

IdNameMathsEnglishPhysisTotalaver

1liu90808625685.33

2zhang88868726187.00

3xiao78889826488.00

4wang77879726187.00

5li79899926789.00

6yi67778723177.00

c语言中有存储过程吗,C语言调用存储过程并且获得返回值相关推荐

  1. jfinal调用mysql存储过程 封装_jfinal如何调用存储过程?

    存储过程用一下 Db.execute(ICallback) 这个方法,在其中用一下: connection.prepareCall(sql).execute(); 就可以调用存储过程了,并且还可以自由 ...

  2. c#如何调用有参无返回值存储过程和有参有返回值存储过程,以及IDataParameter[]如何赋值(包含decimal值的转换)

     第一步先创建数据库链接方法 1.定义访问数据库的方法/// <summary>/// 执行存储过程/// </summary>/// <param name=" ...

  3. c++ 调用python2类获取返回值

    vs2017好像没有 PyObject* PyIns = PyInstance_New(pyCls, NULL, NULL); // 创建tester类 前面介绍了用python调用C++时用swig ...

  4. 【Android 逆向】Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )

    文章目录 前言 一.x86 架构的返回值获取 二.ARM 架构远程调用 前言 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 ...

  5. c语言中有哪些函数关系,C语言中有哪些常用的函数

    C语言中有哪些常用的函数 发布时间:2020-11-17 17:01:32 来源:亿速云 阅读:107 作者:小新 这篇文章主要介绍C语言中有哪些常用的函数,文中介绍的非常详细,具有一定的参考价值,感 ...

  6. python语言中有哪些函数_Python语言中的函数

    本文主要向大家介绍了Python语言中的函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数 ...

  7. ARM 编程:C语言与汇编间互相调用,参数与返回值的传递方式详解

    汇编基础: linux AT&T格式汇编简单框架 函数调用时的规则如下: 父函数与子函数间的入口参数依次通过R0R3这4个寄存器传递.父函数在调用子函数前先将参数存入到R0R3中,若只有一个参 ...

  8. linux c 语言 errno 我个头,Linux错误代码:errno.h与返回值 -EINVAL

    1.概述 编写Linux驱动,看见返回值为 "return -EINVAL",不是很清楚,特此查询. EINVAL 是定义在 errno.h 中的一个宏定义,它定义了一个整形变量( ...

  9. python调用数据库存储过程_python连接mysql调用存储过程示例

    复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf8 -*- import MySQLdb import time import os, sys, s ...

  10. pro* c调用存储过程 linux,Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...

    Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点...0 运行编译后的执行程序时提示错误:ORA-00900: invalid SQL statement 以下是Pro*c代码: #in ...

最新文章

  1. 关于Docker目录挂载的总结(转)
  2. 面临找工作,要记住给自己的这些话。
  3. Mysql 中,WEEK 与YEARWEEK函数的参数问题
  4. C语言 字符串相关的函数
  5. You have unstaged changes.
  6. 洛谷入门题P1046、P1047、P1427、P1428、P2141、P1567题解(Java语言描述)
  7. 推荐几个值得关注的爬虫库
  8. 深圳卫视 - 饭没了秀
  9. 寻找最小的k个数(四种方法)
  10. 僵化封闭的苹果:鼠标不支持右键,键盘没有DEL键
  11. 在Android系统中,F2FS 文件系统问题分析步骤
  12. cs5 安装报错解决
  13. 各类软件激活码(更新中)
  14. Ubuntu cd 命令
  15. 万豪国际亚太区第1000家酒店开业!总客房数量超一半在中国 | 美通社头条
  16. 微电网日前优化调度入门:求解一道数学建模题
  17. 【.Net开发】之WPF入门介绍
  18. java email qq邮箱 与 阿里企业邮箱/个人邮箱
  19. 除了X站,程序员还喜欢上这些网站...
  20. Bean with name ‘XX‘ has been injected into other beans [XX,XX] in its raw version.......... 错误分析及解决

热门文章

  1. 一加代言人小罗伯特唐尼竟用华为P30 Pro发微博,当然是笑着原谅他
  2. 第一款青少年搜索引擎“花漾搜索“APP正式上线
  3. 一加闷声发大财 成为今年第一季度全球高端手机市场前四
  4. OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
  5. 驱动模块Makefile 编写【原创】
  6. apollo local 模式_「架构」 - 配置中心 Apollo基本使用
  7. javalibrary 线上_《NBA2K21》MT模式线上3V3任务一览 :: 游民星空 GamerSky.com
  8. sa密码修改记录_【数据完整性】一文读懂电子记录与电子签名
  9. python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...
  10. 让ubuntu开机快一点:记开机出现Waiting for network configuration...