c语言中有存储过程吗,C语言调用存储过程并且获得返回值
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语言调用存储过程并且获得返回值相关推荐
- jfinal调用mysql存储过程 封装_jfinal如何调用存储过程?
存储过程用一下 Db.execute(ICallback) 这个方法,在其中用一下: connection.prepareCall(sql).execute(); 就可以调用存储过程了,并且还可以自由 ...
- c#如何调用有参无返回值存储过程和有参有返回值存储过程,以及IDataParameter[]如何赋值(包含decimal值的转换)
第一步先创建数据库链接方法 1.定义访问数据库的方法/// <summary>/// 执行存储过程/// </summary>/// <param name=" ...
- c++ 调用python2类获取返回值
vs2017好像没有 PyObject* PyIns = PyInstance_New(pyCls, NULL, NULL); // 创建tester类 前面介绍了用python调用C++时用swig ...
- 【Android 逆向】Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )
文章目录 前言 一.x86 架构的返回值获取 二.ARM 架构远程调用 前言 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 ...
- c语言中有哪些函数关系,C语言中有哪些常用的函数
C语言中有哪些常用的函数 发布时间:2020-11-17 17:01:32 来源:亿速云 阅读:107 作者:小新 这篇文章主要介绍C语言中有哪些常用的函数,文中介绍的非常详细,具有一定的参考价值,感 ...
- python语言中有哪些函数_Python语言中的函数
本文主要向大家介绍了Python语言中的函数,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数 ...
- ARM 编程:C语言与汇编间互相调用,参数与返回值的传递方式详解
汇编基础: linux AT&T格式汇编简单框架 函数调用时的规则如下: 父函数与子函数间的入口参数依次通过R0R3这4个寄存器传递.父函数在调用子函数前先将参数存入到R0R3中,若只有一个参 ...
- linux c 语言 errno 我个头,Linux错误代码:errno.h与返回值 -EINVAL
1.概述 编写Linux驱动,看见返回值为 "return -EINVAL",不是很清楚,特此查询. EINVAL 是定义在 errno.h 中的一个宏定义,它定义了一个整形变量( ...
- python调用数据库存储过程_python连接mysql调用存储过程示例
复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf8 -*- import MySQLdb import time import os, sys, s ...
- pro* c调用存储过程 linux,Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...
Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点...0 运行编译后的执行程序时提示错误:ORA-00900: invalid SQL statement 以下是Pro*c代码: #in ...
最新文章
- 关于Docker目录挂载的总结(转)
- 面临找工作,要记住给自己的这些话。
- Mysql 中,WEEK 与YEARWEEK函数的参数问题
- C语言 字符串相关的函数
- You have unstaged changes.
- 洛谷入门题P1046、P1047、P1427、P1428、P2141、P1567题解(Java语言描述)
- 推荐几个值得关注的爬虫库
- 深圳卫视 - 饭没了秀
- 寻找最小的k个数(四种方法)
- 僵化封闭的苹果:鼠标不支持右键,键盘没有DEL键
- 在Android系统中,F2FS 文件系统问题分析步骤
- cs5 安装报错解决
- 各类软件激活码(更新中)
- Ubuntu cd 命令
- 万豪国际亚太区第1000家酒店开业!总客房数量超一半在中国 | 美通社头条
- 微电网日前优化调度入门:求解一道数学建模题
- 【.Net开发】之WPF入门介绍
- java email qq邮箱 与 阿里企业邮箱/个人邮箱
- 除了X站,程序员还喜欢上这些网站...
- Bean with name ‘XX‘ has been injected into other beans [XX,XX] in its raw version.......... 错误分析及解决
热门文章
- 一加代言人小罗伯特唐尼竟用华为P30 Pro发微博,当然是笑着原谅他
- 第一款青少年搜索引擎“花漾搜索“APP正式上线
- 一加闷声发大财 成为今年第一季度全球高端手机市场前四
- OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
- 驱动模块Makefile 编写【原创】
- apollo local 模式_「架构」 - 配置中心 Apollo基本使用
- javalibrary 线上_《NBA2K21》MT模式线上3V3任务一览 :: 游民星空 GamerSky.com
- sa密码修改记录_【数据完整性】一文读懂电子记录与电子签名
- python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...
- 让ubuntu开机快一点:记开机出现Waiting for network configuration...