MySQL连接器/ c++版本说明
方法可以调用存储过程声明
或PreparedStatement
对象。本节演示如何使用声明
对象。看看怎么用PreparedStatement
对象,看到第7.3节,“用PreparedStatement
对象”.
下面的列表描述了可以构造和调用的不同类型的存储过程,以及演示每种类型的示例存储过程:
不返回结果的存储过程。例如,这样的存储过程可以记录非关键信息,或以直接的方式更改数据库数据。
下面的过程将一个国家添加到
世界
数据库,但不返回结果:CREATE PROCEDURE add_country (IN country_code CHAR(3), IN country_name CHAR(52), IN continent_name CHAR(30)) BEGIN INSERT INTO Country(Code, Name, Continent) VALUES (IN country_code, country_name, continent_name);结束;
使用输出参数返回一个或多个值的存储过程。例如,这样的过程可以指示成功或失败,或者检索和返回数据项。
以下过程使用输出参数返回指定国家或大陆或整个世界的人口:
CREATE PROCEDURE (IN country_name CHAR(52), OUT country_pop BIGINT) BEGIN SELECT Population INTO country_pop FROM Country WHERE Name = country_name;结束;
创建过程get_pop_continent (IN continent_name CHAR(30), OUT continent_pop BIGINT) BEGIN SELECT SUM(Population) INTO continent_pop FROM Country WHERE Continent = continent_name;结束;
SELECT SUM(Population) INTO world_pop FROM Country;结束;
返回一个或多个结果集的存储过程。过程可以执行一个或多个查询,每个查询返回任意数量的行。应用程序循环遍历每个结果集以显示、转换或以其他方式处理其中的每一行。
这个过程返回几个结果集:
SELECT Code, Name, Population, continental FROM Country WHERE Continent = 'Oceania' AND Population < 10000;SELECT Code, Name, Population, continental = 'Europe' AND Population < 10000SELECT Code, Name, Population, continental = 'North America' AND Population < 10000结束;
手动输入并测试存储过程,以确保它们可用于您的c++应用程序。(选择世界
作为默认数据库,然后再创建它们。)现在可以开始使用调用存储过程的Connector/ c++编写应用程序了。