存储过程、面向对象

 

存储过程:就像函数一样的
会保存在数据库中--》可编程性 --》 存储过程
-----------------------------------------------------
创建存储过程
create proc JiaFa
--需要的参数
@a int,
@b int
as
--存储过程的内容
declare @c int;
set @c = @a + @b;
return @c;
go

 

public int JiaFa(int a, int b)
{
int c = a+b;
return c;
}
--执行完毕后全部选中,执行创建
-----------------------------------------------------
执行存储过程
exec JiaFa 3,5;

 

declare @f int;
exec @f = JiaFa 3,5;
print @f;

 

--根据用户传入的参数查询汽车表符合该条件的汽车数量
create proc ChaXun
@n varchar(20)
as
declare @num int
select @num = count(*) from car where name like '%'+@n+'%'
return @num
go

 

 

 

declare @m int
exec @m = ChaXun '奥迪'
print @m

---------------------------------------------------------------------------------------

 

1、面向过程

int a = 10;
int b =5;
int c = a+b;

int r1 = 10;
int r2 = 5;
double c = r1*r1*3.14 - r2*r2*3.14

缺点:重用性差,扩展性差,可维护性差

 

2、面向对象
(1)对象:万物皆对象,对象是类实例化出来的东西
(2)类:由众多对象抽象出来的东西

例子:管理学生信息的程序
研究的对象主要是 学生
程序中的类 学生的类 (学号 姓名 性别 年龄 住址 联系方式 )

student(code,name,sex,age,address,lianxi)

(3) class Student //定义类 关键字class 后面跟类名
{
string code; //成员变量code
string name; //成员变量 name
bool sex; //成员变量 sex
int age; //成员变量 age
string address; //成员变量 address
string lianxi; //成员变量 lianxi
}

 

面向对象
1.类:众多对象抽象出来的
2.对象:类实例化出来的,万物皆对象,对象是类实例化出来的东西

例子:管理学生信息的程序
研究的对象主要是 学生
程序中的类 学生的类 (学号 姓名 性别 年龄 住址 联系方式 )

student(code,name,sex,age,address,lianxi)

3.类的定义
关键字 class

4.类里面包含
成员变量
成员属性
成员方法

 

class Student //定义类 关键字class 后面跟类名
{
string code; //成员变量code
string name; //成员变量 name
bool sex; //成员变量 sex
int age; //成员变量 age
string address; //成员变量 address
string lianxi; //成员变量 lianxi
}

 

 

---------------------------------------------------------------------

事务:
保障流程的完整执行
就像银行取钱,先在你账上扣钱,然后存入别人的账上;
但是从你账上扣完钱了,突然网断了,对方没有收到钱,那么此时你的钱也没了,别人的钱也没加上,为了防止此类情况的出现,事务。

begin tran --在流程开始的位置


if @@ERROR>0
begin
rollback tran --回滚事务,到begin tran的位置,就当没发生过
end
else
begin
commit tran --提交事务,都没问题,那么就一把进行提交
end

-----------------------------------------------------------------
购物车实例
begin tran --开启事务
declare @tran_error int; --存储错误
set @tran_error = 0; --默认没有错误

update Fruit set Numbers = Numbers-1 where Ids='k002'
set @tran_error = @tran_error + @@ERROR;
update Login set Account=Account-1 where UserName='wangwu'
set @tran_error = @tran_error + @@ERROR;
insert into Orders values('d002','wangwu','2016-8-7')
set @tran_error = @tran_error + @@ERROR;
insert into OrderDetails values('d002','k002',10)
set @tran_error = @tran_error + @@ERROR;


if @tran_error>0
begin
rollback tran --回滚事务,到begin tran的位置,就当没发生过
end
else
begin
commit tran --提交事务,都没问题,那么就一把进行提交
end

posted @ 2016-08-11 15:58  Dream&er  阅读(490)  评论(0编辑  收藏  举报