`
morle
  • 浏览: 75013 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库编程2

    博客分类:
阅读更多
发表于:2006年10月13日 13时26分15秒
举报本文链接:http://user.qzone.qq.com/183481361/blog/15

数据库编程2
--title1
use test
go
if exists(select name from sysobjects where name='xscjzb' and type='U')
drop table xscjzb
go
if exists(select name from sysobjects where name='xj_yxjjbxx' and type='U')
drop table xj_yxjjbxx
go
if exists(select name from sysobjects where name='class' and type='U')
drop table class
go
if exists(select name from sysobjects where name='major' and type='U')
drop table major
go
if exists(select name from sysobjects where name='department' and type='U')
drop table department
go
create table department
(yxbh varchar(10) not null primary key,
yxmc varchar(50),
)
go
create table major
(zybh varchar(10) not null primary key,
zymc varchar(50),
yxbh varchar(10) not null constraint fk_major_department foreign key references department(yxbh) on update cascade)
go
create table class
(bjbh varchar(10) not null  primary key,
bjjc varchar(50),
rxnf varchar(20) not null default '2006',
bjrs int,
zybh varchar(10) not null constraint fk_class_major foreign key references major(zybh) on update cascade)
go
create table xj_yxjjbxx
(xh varchar(10) not null primary key,
xm varchar(50),
xb varchar(2),
bjbh varchar(10) not null constraint fk_class1 foreign key references class(bjbh) on update cascade)
go
create table xscjzb
(xnxqh varchar(11) not null,
xh varchar(20) not null,
kcbm varchar(11) not null,
ksxzcode varchar(10) not null,constraint pk_lld primary key(xnxqh,xh,kcbm,ksxzcode),
zcj money)
go
insert into department values('01','电子与信息工程学院')
insert into department values('02','教务处')
go
insert into major values('1','计算机科学与技术','01')
insert into major values('2','外国语学院','02')
insert into major values('3','电子','01')
go
insert into class values('0201','计1','2006',35,'1')
insert into class values('0202','计2','2006',32,'1')
insert into class values('0203','计3','2006',36,'1')
insert into class values('0204','电1','2006',32,'3')
insert into class values('0205','电1','2006',29,'3')
insert into class values('0206','英1','2006',30,'2')
go
insert into xj_yxjjbxx values('20020300','邱磊','男','0203')
insert into xj_yxjjbxx values('20020301','邱磊1','男','0203')
insert into xj_yxjjbxx values('20020302','邱磊2','男','0203')
insert into xj_yxjjbxx values('20020303','邱磊3','男','0203')

insert into xj_yxjjbxx values('20020304','张三','男','0201')
insert into xj_yxjjbxx values('20020305','张三1','男','0201')
insert into xj_yxjjbxx values('20020306','张三2','男','0201')
insert into xj_yxjjbxx values('20020307','张三3','男','0201')

insert into xj_yxjjbxx values('20020308','李四','男','0202')
insert into xj_yxjjbxx values('20020309','李四1','男','0202')

insert into xj_yxjjbxx values('20020310','王五','男','0206')
insert into xj_yxjjbxx values('20020311','王五1','男','0206')
insert into xj_yxjjbxx values('20020312','王五2','男','0206')
insert into xj_yxjjbxx values('20020313','王五3','男','0206')
insert into xj_yxjjbxx values('20020314','王五','男','0206')

if exists(select name from sysobjects where name='c_m_d_views' and type='V')
drop view c_m_d_views
go
create view c_m_d_views
as
select class.bjbh as 班级编号,major.zybh as 专业编号,major.yxbh as 院系编号,class.bjjc as 班级简称,class.rxnf as 入学年份,class.bjrs as 班级人数,major.zymc as 专业名称,department.yxmc as 院系名称
from
class left outer join major on class.zybh=major.zybh left outer join department on major.yxbh=department.yxbh
go
select * from c_m_d_views
go


if exists(select name from sysobjects where name='p_addclass' and type='P')
drop procedure p_addclass
go
create procedure p_addclass
(@bjbh varchar(10),
@zybh varchar(10),
@bjjc varchar(50),
@rxnf varchar(20),
@bjrs int)
as
insert into class(bjbh,zybh,bjjc,rxnf,bjrs)
values(@bjbh,@zybh,@bjjc,@rxnf,@bjrs)
go
exec p_addclass '7','2','法2','2006',32
go
select * from c_m_d_views
go

--分离database
use master
go
--分离数据库
exec sp_detach_db test
GO
--还原数据库
CREATE DATABASE test1
ON PRIMARY (FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf')
FOR attach
GO

--分页1
use test
go
if exists(select name from sysobjects where type='p' and name='pageindex')
drop procedure pageindex
go
create procedure pageindex
(
@pagesize int,
@page int,
@zybh varchar(10)
)
as
begin
SET nocount ON
declare @tableindex table(id int identity(1,1),sid varchar(10))
declare @pagelowerbound int
declare @pageupperbound int
set @pagelowerbound=(@page-1)*@pagesize
set @pageupperbound=@pagelowerbound+@pagesize
if @zybh<>''
insert into @tableindex(sid) select bjbh from class where zybh = @zybh order by BJBH
else
insert into @tableindex(sid) select bjbh from class order by BJBH
select * from class inner join @tableindex as a on class.bjbh=a.sid where id>@pagelowerbound and id<=@pageupperbound and class.zybh=@zybh
--select rc=@@rowcount
set nocount off
end
GO
select * from class
go
exec pageindex @pagesize=3,@page=1,@zybh='1'
GO

--分页2
if exists(select name from sysobjects where type='P' and name='pagination3')
drop procedure pagination3
go
CREATE PROCEDURE pagination3
(
@tblName varchar(255), -- 表名
@strGetFields varchar, -- 需要返回的列
@fldName varchar(255), -- 排序的字段名
@PageSize int, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit, -- 返回记录总数, 非 0 值则返回
@OrderType bit, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) -- 查询条件 (注意: 不要加 where)
)
AS
declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型

if @doCount != 0
begin
if @strWhere <>''
set @strSQL = 'select + count(*) as Total from [' + @tblName + '] where' +@strWhere
else
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况:

else
begin
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
--如果@OrderType不是0,就执行降序,这句很重要!

end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
if @PageIndex = 1
begin
if @strWhere != ''

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '
        from [' + @tblName + '] where ' + @strWhere + ' ' + @strOrder
else

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ '
        from ['+ @tblName + '] '+ @strOrder
--如果是第一页就执行以上代码,这样会加快执行速度

end
else
begin
--以下代码赋予了@strSQL以真正执行的SQL代码
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['+ @fldName + '])
      from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @fldName + ']
      from [' + @tblName + ']' + @strOrder + ') as tblTmp)'+ @strOrder

if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
end
go

--exec (@strSQL)
分享到:
评论

相关推荐

    VB数据库编程 详细介绍了VB数据库编程的方方面面

    本资源"VB数据库编程"深入浅出地探讨了如何使用VB与各种数据库进行交互,包括基本概念、API调用、连接管理以及复杂的查询操作。下面我们将详细探讨其中的关键知识点。 1. 数据库连接:在VB中,我们通常使用ADO...

    数据库编程数据库编程数据库编程数据库编程

    数据库编程是IT领域中的核心部分,它涉及到如何设计、创建、维护和操作数据库,以便有效地存储和检索数据。本文将深入探讨数据库编程的关键概念、技术和最佳实践。 首先,我们需要理解数据库的基本构造。数据库是一...

    Java数据库编程案例2

    本案例"Java数据库编程案例2"着重于讲解如何在Java环境中与各种数据库进行交互,包括建立连接、执行SQL语句、处理结果集以及关闭连接等核心操作。下面我们将深入探讨相关知识点。 首先,Java数据库连接(JDBC)是...

    网络编程和数据库编程学习案例

    在IT领域,网络编程和数据库编程是两个至关重要的分支,它们是构建现代应用程序的基础。本资源包主要关注C#语言在网络编程方面的应用,同时也涵盖了数据库编程的一些基础。 首先,让我们深入了解一下C#中的网络编程...

    VC++和ACCESS数据库编程

    在IT领域,数据库编程是构建高效应用程序不可或缺的一部分。VC++(Visual C++)是一种功能强大的集成开发环境,常用于创建Windows应用程序。与ACCESS数据库结合,可以实现数据存储、管理和交互的功能。本篇将深入...

    编程之道ASP数据库编程入门

    编程之道ASP数据库编程入门

    Visual C++数据库编程快速入门

    我从网上找到的,我做成了CHM文档,供大家阅读方便。 数据库技术初步 ODBC基本概念 ADO对象访问模型 ... ADO与ODBC的区别 ... 在Visual C++中用ADO进行数据库编程2 在Visual C++中用ADO进行数据库编程3

    vc++ 6.0数据库编程

    在VC++ 6.0中,可以使用多种技术进行数据库编程,其中包括ODBC API编程、MFC ODBC编程、DAO数据库编程以及OLE DB客户数据库编程。下面将详细介绍这些技术。 ODBC API编程是一种使用Open Database Connectivity API...

    oracle数据库编程pdf文档教案

    这份"Oracle数据库编程pdf文档教案"提供了从基础到高级的Oracle学习路径,通过5天的学习内容,帮助读者深入理解并掌握Oracle数据库的使用。 在Oracle数据库编程中,首先会涉及到SQL(结构化查询语言),这是与...

    VC 数据库编程-介绍如何使用vc操作数据库

    介绍如何使用vc操作数据库 第1章 数据库原理与访问 第2章 COM与数据库访问 第3篇 高级话题 第4章 VC++数据库开发基础 第5章 ODBC API编程 第6章 MFC ODBC编程 第7章 DAO数据库编程 第8章 ...

    实战visual c#数据库编程

    针对数据库编程始终是程序设计语言的一个重要方面的内容,也是一个难点。数据库编程的内容十分丰富,但最为基本编程的也就是那么几点,譬如:连接数据库、得到需要的数据和针对数据记录的浏览、删除、修改、插入等...

    C#数据库编程实战经典

    C#数据库编程实战经典《国外计算机科学经典教材:C#数据库编程实战经典》既包含数据库编程的基础知识,又分析和探讨数据库编程的技术,既适用于学生和初学者,也适用于富有经验的程序员。通过完整的示例项目,详细...

    Access数据库VBA数据库编程.pdf

    在Access数据库应用中,VBA(Visual Basic for Applications)数据库编程是开发高效、实用的数据库应用程序的关键技术。VBA利用Microsoft Jet数据库引擎作为基础,该引擎是一组动态链接库(DLL),在运行时与VBA程序...

    VC++数据库编程总结

    【VC++数据库编程总结】 在IT领域,尤其是软件开发中,数据库编程是不可或缺的一部分,尤其在使用VC++作为开发工具时。VC++可以与多种数据库系统进行交互,如SQL Server、Oracle等,通过不同的访问技术实现数据的...

    Accp8.0\S2\使用Java实现数据库编程 第二章

    在“Accp8.0\S2\使用Java实现数据库编程 第二章”这一主题中,我们聚焦于如何利用Java语言进行数据库编程。这通常涉及到Java的JDBC(Java Database Connectivity)技术,它是Java平台的标准接口,允许Java应用程序...

    数据库编程总结

    数据库编程总结 数据库编程总结 数据库编程总结

    VisualC++数据库编程技术与实例沈炜著3

    《Visual C++数据库编程技术与实例》是一本深入探讨如何使用Microsoft Visual C++进行数据库编程的专业书籍,由沈炜著。这本书旨在帮助开发者理解和掌握在C++环境下与数据库交互的各种技术和方法,尤其针对Visual ...

    linux数据库编程

    在Linux操作系统中,数据库编程是一项核心技能,尤其对于软件开发者和系统管理员而言。"Linux数据库编程"这个主题涵盖了如何在Linux环境下与各种数据库系统进行交互,包括但不限于MySQL、PostgreSQL、Oracle、...

    VC数据库编程实例-ORACLE数据库VC数据库编程实例

    在VC++环境中进行数据库编程,Oracle数据库是一个常见且强大的选择。本实例主要关注如何使用VC++与Oracle数据库进行交互,实现数据的存取、查询、更新和删除等操作。Oracle数据库是一个关系型数据库管理系统,提供了...

    JAVA数据库编程(PPT)

    JAVA数据库编程 JAVA数据库编程是指使用JAVA语言对数据库进行操作的过程。下面是JAVA数据库编程的相关知识点: 一、数据库简介 * 数据库是长期存储在计算机内的、有组织的、可共享的数据集合。 * 关系型数据库中...

Global site tag (gtag.js) - Google Analytics