存储过程、面向对象
存储过程:就像函数一样的
会保存在数据库中--》可编程性 --》 存储过程
-----------------------------------------------------
创建存储过程:
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