SlideShare une entreprise Scribd logo
1  sur  12
Library Project Sql Stored Procedures<br />CREATE PROCEDURE AdultMember<br />(@FirstName varchar(15),<br /> @LastName varchar(15),<br /> @MiddleInitial char(1),<br /> @MemberID smallint OUTPUT,<br /> @PhoneNumber varchar(10),<br /> @ExpirationDate smallint,<br /> @ZipCode varchar(5),<br /> @Street smallint,<br /> @State smallint,<br /> @City smallint<br />)<br />AS<br />BEGIN<br /> <br /> IF @FirstName IS NULL<br /> BEGIN<br /> --RAISERROR('Adult FirstName is not null',15,1);<br /> return-15<br /> END<br />  <br /> IF @LastName IS NULL<br /> BEGIN<br /> --RAISERROR('Adult LastName is not null',15,1);<br /> return-15<br /> END<br />  <br /> IF @MiddleInitial IS NULL<br /> BEGIN<br /> --RAISERROR('Adult FirstName is not null',1);<br /> return-1<br /> END<br /> <br /> IF @MemberID IS NULL OR @MemberID<0<br /> BEGIN<br /> --RAISERROR('Adult MemberID is not null',1);<br /> return-1<br /> END<br /> <br /> IF @PhoneNumber IS NULL<br /> BEGIN<br /> --RAISERROR('Adult PhoneNumber is not null',10);<br /> return-10<br /> END<br /> <br /> IF @ExpirationDate IS NULL<br /> BEGIN<br /> --RAISERROR('Adult ExpirationDate is not null',1);<br /> return-1<br /> END<br /> <br /> IF @ZipCode IS NULL<br /> BEGIN<br /> --RAISERROR('Adult ZipCode is not null',5);<br /> return-5<br /> END<br /> <br /> IF @Street IS NULL<br /> BEGIN<br /> --RAISERROR('Adult Street is not null',1);<br /> return-1<br /> END<br /> <br /> IF @State IS NULL<br /> BEGIN<br /> --RAISERROR('Adult State is not null',1);<br /> return-1<br /> END<br /> <br /> IF @City IS NULL<br /> BEGIN<br /> --RAISERROR('Adult City is not null',1);<br /> return-1<br /> END<br /> <br />  --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction  DJL<br />      INSERT INTO member(firstName, middleinitial, lastname)<br />      VALUES(@firstName, @MiddleInitial, @LastName);<br /> <br />      select @memberid = SCOPE_IDENTITY();<br /> <br />      INSERT INTO adult(member_no, phone_no, city, [state], street, zip, expr_date)<br />      VALUES(@MemberID, @PhoneNumber, @City, @State, @Street, @ZipCode, @ExpirationDate);<br /> <br /> END<br /> <br /> BEGIN TRY<br />   EXEC @MemberID =@MemberID'Nana', 'W', 'Boama', '3107 petre st', 'chesapekae', 'VA', '23325', '', '03/05/2010', 0;<br /> END TRY   <br /> BEGIN CATCH<br />   PRINT 'Test memberid: FAIL -- CAUGHT Exception';<br /> END CATCH<br /> IF ( SELECT COUNT(*)<br />  FROM member AS m INNER JOIN adult AS a ON m.member_no = a.member_no<br />  WHERE m.member_no = m.member_no) = 1<br />  PRINT 'Test MemberID: PASS -- memberid = ' + CAST(@memberID AS varchar);<br /> ELSE<br />  PRINT 'Test MemberID: FAIL -- memberid = ' + CAST(@memberID AS varchar);<br />CREATE PROCEDURE JuvenileMember<br />(@FirstName varchar(15),<br /> @LastName varchar(15),<br /> @MiddleInitial char(1),<br /> @MemberID smallint OUTPUT,<br /> @BirthDate datetime,<br /> @AdultSponsorID smallint<br />)<br />AS<br />BEGIN<br /> <br /> IF @FirstName IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile FirstName is null',15,1);<br /> return-15<br /> END<br />  <br /> IF @LastName IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile LastName is null',15,1);<br /> return-16<br /> END<br /> <br /> IF @MiddleInitial IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile FirstName is null',1);<br /> return-17<br /> END<br /> IF @MemberID IS NULL OR @MemberID<0<br /> BEGIN<br /> --RAISERROR('Juvenile MemberID is null',1);<br /> return-18<br /> END<br /> <br /> IF @AdultSponsorID IS NULL OR @AdultSponsorID<0<br /> BEGIN<br /> --RAISERROR('Adult Sponsor ID is null',1);<br /> return-19<br /> END<br /> IF @BirthDate IS NULL<br /> BEGIN<br /> --RAISERROR('Birthdate is null',1);<br /> return-20<br /> END<br />  --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction  DJL<br />      INSERT INTO member(firstName, middleinitial, lastname)<br />      VALUES(@firstName, @MiddleInitial, @LastName);<br /> <br />      select @memberid = SCOPE_IDENTITY();<br /> <br />      INSERT INTO juvenile(member_no, adult_member_no, birth_date)<br />      VALUES(@MemberID, @AdultSponsorID, @BirthDate<br /> END<br /> CREATE PROCEDURE AddBook <br />  @ISBN int, <br />  @Translation nvarchar (8) = NULL, <br />  @Cover nvarchar (8) = NULL, <br />  @Title nvarchar (63), <br />  @Author nvarchar (31), <br />  @Synopsis text = NULL, <br />  @Loanable nchar (1), <br />  @CopyNo smallint OUTPUT <br />AS <br /> <br />--Test for null values. <br />IF @ISBN is NULL OR @Loanable is NULL <br />  OR @Title is NULL OR @Author is NULL <br />  BEGIN <br />    RAISERROR('Invalid data entry.',11,1) <br />    RETURN <br />  END <br /> <br />--Test to see if the item exists in library. <br />DECLARE @ItemCount int <br />SELECT @ItemCount = count(*) FROM dbo.item as it <br />  WHERE it.isbn = @ISBN  <br /> <br />IF @ItemCount < 1 --The item doesn't exist so add it. <br />  BEGIN  <br />    BEGIN TRANSACTION <br />      DECLARE @TitleNo int <br />      --Add record to the title table first. <br />      INSERT dbo.title <br />        (title,author,synopsis) <br />      VALUES (@Title,@Author,@Synopsis) <br />      IF @@Error <> 0  <br />        BEGIN <br />          RAISERROR('Cannot add item.',11,1) <br />          ROLLBACK TRANSACTION <br />          RETURN <br />        END <br />      SET @TitleNo = @@IDENTITY <br /> <br />      --Add record to the item table next. <br />      INSERT dbo.item <br />        (isbn,title_no,translation,cover,loanable) <br />      VALUES (@ISBN,@TitleNo,@Translation,@Cover,@Loanable) <br />      IF @@ERROR <> 0 <br />        BEGIN <br />          RAISERROR('Cannot add item.',11,1) <br />          ROLLBACK TRANSACTION <br />          RETURN <br />        END <br />--Add record to the copy table next. <br />      SET @CopyNo = 1 <br />      INSERT dbo.copy <br />        (isbn,copy_no,title_no,on_loan) <br />      VALUES (@ISBN,@CopyNo,@TitleNo,'N') <br />      IF @@ERROR <> 0 <br />        BEGIN <br />RAISERROR('Cannot add item.',11,1) <br />          ROLLBACK TRANSACTION <br />          RETURN <br />        END <br />    COMMIT TRANSACTION <br />  END <br />ELSE <br />  BEGIN --The item already exists.  Add another copy. <br />    --First determine what the title number is. <br />    SELECT @TitleNo = title_no FROM dbo.item <br />      WHERE isbn = @ISBN <br />    --Then determine what the copy number should be <br />    --by counting how many copies already exist. <br />    DECLARE @CopyCount int <br />      SELECT @CopyCount = count(*) FROM dbo.copy as co <br />      WHERE co.isbn = @isbn <br />    --The latest copy # should be the count + 1. <br />    SET @CopyNo = @CopyCount + 1  <br />    BEGIN TRANSACTION <br />      --Add record to the copy table. <br />      INSERT dbo.copy <br />        (isbn,copy_no,title_no,on_loan) <br />      VALUES (@ISBN,@CopyNo,@TitleNo,'N') <br />      IF @@ERROR <> 0 <br />        BEGIN <br />          RAISERROR('Cannot add item.',11,1) <br />          ROLLBACK TRANSACTION <br />          RETURN <br />        END <br />    COMMIT TRANSACTION <br />END<br />        <br />CREATE PROC AddCopy<br />(@isbn int,<br />@copynum smallint<br />)<br />AS <br />BEGIN<br />IF @isbn IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />IF @copynum IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />SELECT title, out_date, due_date, translation, author, loanable, member_no, cover<br />FROM copy INNER JOIN title ON copy.title_no = copy.title_no<br />   INNER JOIN item ON item.isbn = copy.isbn<br />   LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND<br />   loan.copy_no = copy.copy_no<br />WHERE copy.isbn = @isbn AND copy.copy_no = @copynum;<br />END<br />CREATE PROCEDURE CheckInItem<br />(@isbn int,<br /> @copyNumber smallint<br /> )<br /> <br /> AS<br /> BEGIN<br /> <br /> IF @isbn IS NULL<br /> BEGIN<br />      --RAISERROR<br />      return -1;<br /> END<br /> <br /> IF @copyNumber is NULL<br /> BEGIN<br />      --RAISERROR<br />      return -1;<br /> END<br /> <br />  --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction  DJL<br />DECLARE @loanID smallint;<br /> INSERT INTO loanhist(isbn, copy_no)      --Need to populate other columns in loanhist  DJL<br /> VALUES(@isbn, @copyNumber)<br /> <br /> UPDATE copy<br /> SET on_loan ='N'<br /> WHERE isbn = @isbn AND copy_no = @copyNumber <br />  <br /> DELETE FROM loan<br /> WHERE isbn = @isbn AND copy_no = @copyNumber <br />END<br />CREATE PROC CheckOutItem<br />(@isbn int,<br /> @copyNumber smallint,<br /> @memberNumber smallint<br /> )<br /> AS<br /> BEGIN<br /> <br /> IF @isbn IS NULL<br /> BEGIN<br />      --RAISERROR<br />      return -1;<br /> END<br /> <br /> IF @copyNumber is NULL<br /> BEGIN<br />      --RAISERROR<br />      return -1;<br /> END<br /> <br /> IF @memberNumber IS NULL<br /> BEGIN<br />      --RAISERROR<br />      return -1;<br /> END<br /> <br /> DECLARE @ItemCount int<br /> SELECT @ItemCount = COUNT(*) FROM [dbo].[item] as it<br />join [dbo].[copy] as co on<br />it.isbn = co.isbn<br /> WHERE it.isbn = @isbn AND co.copy_no = @copyNumber<br /> IF @ItemCount < 1<br /> BEGIN<br />RAISERROR('item does not exist in this library.', 11,1)<br />Return<br /> END<br /> <br /> DECLARE @Loanable nvarchar (1)<br /> SELECT @Loanable = loanable FROM [dbo].[item]<br /> WHERE isbn = @isbn<br /> IF @Loanable ='N'<br /> BEGIN<br /> RAISERROR('Check out not successful, Item not loanable,', 11,1)<br /> RETURN<br /> END<br /> <br /> DECLARE @OnLoan nvarchar (1)<br /> SELECT @OnLoan = on_loan FROM [dbo].[copy]<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> IF @Loanable = 'Y'<br /> BEGIN<br /> RAISERROR('Check out not successful,',12,1)<br /> END<br /> <br /> DECLARE @TitleNo int<br /> SELECT @TitleNo = title_no FROM [dbo].[copy]<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> <br /> <br /> DECLARE @OutDate datetime<br /> DECLARE @DueDate datetime<br /> SET @OutDate = GETDATE()<br /> SET @DueDate = DATEADD(DAY, 14, GETDATE())<br /> <br />BEGIN TRANSACTION<br /> <br /> UPDATE [dbo].[copy]<br /> SET on_loan = 'Y'<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> <br /> if @@ERROR <> 0<br /> BEGIN<br /> RAISERROR('item not checked out,',11,1)<br /> ROLLBACK TRANSACTION<br /> RETURN<br /> END<br /> <br /> INSERT [dbo].[loan]<br />(isbn,copy_no, title_no, member_no, out_date, due_date)<br /> VALUEs (@isbn, @copyNumber, @TitleNo, @memberNumber, @OutDate, @DueDate)<br /> <br /> if @@ERROR <> 0<br /> BEGIN<br /> RAISERROR('Error, item not checked out.',11,1)<br /> ROLLBACK TRANSACTION<br /> RETURN<br /> END<br /> <br />END <br /> <br />CREATE PROC ConvertJuvToAdult<br />(@memberID smallint<br />)<br />AS<br />BEGIN<br />IF @memberid IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />SELECT juvenile.member_no, juvenile.birth_date, juvenile.adult_member_no, adult.street, adult.city, adult.state, adult.zip, adult.phone_no, adult.expr_date<br />FROM dbo.adult Adult, dbo.juvenile<br />WHERE adult.member_no = juvenile.member_no<br />AND juvenile.member_no = adult.member_no<br />SELECT juvenile.member_no, juvenile.adult_member_no, juvenile.birth_date, adult.street, adult.city, adult.state, adult.zip, adult.phone_no, adult.expr_date<br />FROM dbo.adult Adult, dbo.juvenile Juvenile, dbo.member Member<br />WHERE Adult.member_no = Juvenile.adult_member_no<br />AND Juvenile.member_no = Member.member_no<br />AND Member.member_no = Juvenile.member_no<br />END<br />CREATE PROC DeleteMember<br />  @MemberID int  <br />AS <br /> <br />--Test for null values. <br />IF @MemberID is NULL  <br />  BEGIN <br />    RAISERROR('Invalid data entry.',11,1) <br />    RETURN <br />  END <br /> <br />--Test for adult member. <br />DECLARE @AdultCount int <br />SELECT @AdultCount = count(*) FROM adult <br />  WHERE member_no = @MemberID <br /> <br />IF @AdultCount > 0  <br />  BEGIN <br />    BEGIN TRANSACTION <br />    DELETE dbo.adult <br />      WHERE member_no = @MemberID <br /> <br />    --Test for successful deletion. <br />    if @@ERROR <> 0 <br />      BEGIN <br />        RAISERROR('Error, member not deleted.',11,1) <br />        ROLLBACK TRANSACTION <br />        RETURN <br />      END <br />    COMMIT TRANSACTION <br />    RETURN <br />  END <br /> <br />--Test for juvenile member. <br />DECLARE @JuvenileCount int <br />SELECT @JuvenileCount = count(*) FROM juvenile <br />  WHERE member_no = @MemberID <br /> <br />IF @JuvenileCount > 0  <br />  BEGIN <br />    BEGIN TRANSACTION <br />    DELETE dbo.juvenile <br />      WHERE member_no = @MemberID <br /> <br />    --Test for successful deletion. <br />    if @@ERROR <> 0 <br />      BEGIN <br />        RAISERROR('Error, member not deleted.',11,1) <br />        ROLLBACK TRANSACTION<br />        RETURN<br />END<br />COMMIT TRANSACTION<br />RETURN<br />END<br />CREATE PROC GetItem<br />(     @isbn int,<br />      @copyno smallint<br />)<br />AS<br />BEGIN<br />      IF @isbn IS NULL<br />      BEGIN<br />            --RAISERROR<br />            return -1;<br />      END<br />      IF @copyno IS NULL<br />      BEGIN<br />            --RAISERROR<br />            return -1;<br />      END<br />      <br />      --Test to see if the item exists in library. <br />DECLARE @ItemCount int <br />SELECT @ItemCount = count(*) FROM [dbo].[item] as it <br />JOIN [dbo].[copy] as co ON <br /> it.isbn = co.isbn <br />    WHERE it.isbn = @isbn AND co.copy_no = @CopyNo <br />    IF @ItemCount < 1 <br />    BEGIN <br />    RAISERROR('Item does not exist in this library.',11,1) <br />    RETURN <br />    END <br />      SELECT title, author, translation, cover, loanable, member_no, out_date, due_date<br />      FROM copy INNER JOIN title ON copy.title_no = title.title_no<br />                    INNER JOIN item  ON item.isbn = copy.isbn<br />                    LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND loan.copy_no = copy.copy_no<br />      WHERE copy.isbn = @isbn AND copy.copy_no = @copyno;<br />END<br />CREATE PROCEDURE GetItems<br />(     @memberno smallint<br />)<br />AS<br />BEGIN<br />      IF @memberno IS NULL<br />      BEGIN<br />            --RAISERROR<br />            return -1;<br />      END<br />      SELECT loan.isbn, loan.copy_no, title, author, out_date, due_date<br />      FROM loan INNER JOIN title ON loan.title_no = title.title_no<br />                    INNER JOIN item  ON item.isbn = loan.isbn<br />      WHERE member_no = @memberno;<br />END<br />CREATE PROCEDURE GetMemberByItem<br />(@isbn int,<br /> @copyno smallint<br /> )<br /> AS<br /> BEGIN<br />      IF @isbn IS NULL<br />      BEGIN<br />        --RAISERROR<br />        return -1;<br />      END<br />      <br />      IF @copyno IS NULL<br />      BEGIN<br />        --RAISERROR<br />        return -1;<br />      END<br />      <br />      SELECT title, author, translation, cover, loanable, member_no, out_date, due_date<br />      FROM copy INNER JOIN title ON copy.title_no = title.title_no<br />                    INNER JOIN item  ON item.isbn = copy.isbn<br />                    LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND loan.copy_no = copy.copy_no<br />      WHERE copy.isbn = @isbn AND copy.copy_no = @copyno;<br />  END<br />CREATE PROC SetExpirationDate<br />(@memberID smallint<br />)<br />AS<br />BEGIN<br />IF @memberid IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />DECLARE @OutDate datetime<br />DECLARE @DueDate datetime<br />SET @OutDate = GETDATE()<br />SET @DueDate = DATEADD(DAY,14,GETDATE())<br />end<br />
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs
Library Project Stored Procs

Contenu connexe

Tendances (15)

Addmi 10.5-basic query-language
Addmi 10.5-basic query-languageAddmi 10.5-basic query-language
Addmi 10.5-basic query-language
 
Framework
FrameworkFramework
Framework
 
Perl programming language
Perl programming languagePerl programming language
Perl programming language
 
Tutorial perl programming basic eng ver
Tutorial perl programming basic eng verTutorial perl programming basic eng ver
Tutorial perl programming basic eng ver
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
 
Perl Scripting
Perl ScriptingPerl Scripting
Perl Scripting
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Creating native apps with WordPress
Creating native apps with WordPressCreating native apps with WordPress
Creating native apps with WordPress
 
Intro to Perl and Bioperl
Intro to Perl and BioperlIntro to Perl and Bioperl
Intro to Perl and Bioperl
 
Hashes Master
Hashes MasterHashes Master
Hashes Master
 
Perl Presentation
Perl PresentationPerl Presentation
Perl Presentation
 
First steps in PERL
First steps in PERLFirst steps in PERL
First steps in PERL
 
Php Basic
Php BasicPhp Basic
Php Basic
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013
 
Further Php
Further PhpFurther Php
Further Php
 

En vedette

【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏Developers Summit
 
2012100607103520111014181028 kulliah1 kpt6043
2012100607103520111014181028 kulliah1 kpt60432012100607103520111014181028 kulliah1 kpt6043
2012100607103520111014181028 kulliah1 kpt6043Ena Ros
 
QR codes / kode - kaj, kako, zakaj ...oglasevanje
QR codes / kode - kaj, kako, zakaj ...oglasevanjeQR codes / kode - kaj, kako, zakaj ...oglasevanje
QR codes / kode - kaj, kako, zakaj ...oglasevanjeUrska Saletinger
 
Стратегические отличия маркетинга в Интернете НИУ ВШЭ
Стратегические отличия маркетинга в Интернете НИУ ВШЭСтратегические отличия маркетинга в Интернете НИУ ВШЭ
Стратегические отличия маркетинга в Интернете НИУ ВШЭSegrey Nikishov - @n_grey
 
Corporate Brochure Dynamis 2012
Corporate Brochure Dynamis 2012Corporate Brochure Dynamis 2012
Corporate Brochure Dynamis 2012Dynamis
 
Rph ikan
Rph ikanRph ikan
Rph ikanEna Ros
 
Social Media Workshop at Jordan University
Social Media Workshop at Jordan UniversitySocial Media Workshop at Jordan University
Social Media Workshop at Jordan UniversityDigiArabs
 
ekonomista 2.0 - N.º 10 (eusk)
ekonomista 2.0 - N.º 10 (eusk)ekonomista 2.0 - N.º 10 (eusk)
ekonomista 2.0 - N.º 10 (eusk)ekonomistak
 
Urok 1
Urok 1Urok 1
Urok 1Marina
 
Installing my sql on windows
Installing my sql on windowsInstalling my sql on windows
Installing my sql on windowsRavi Kumar Lanke
 
Access to public sector information
Access to public sector informationAccess to public sector information
Access to public sector informationRoxanne Missingham
 
201610무들코딩수학
201610무들코딩수학201610무들코딩수학
201610무들코딩수학won ho
 
A Specter Legacy Ch 12
A Specter Legacy Ch 12A Specter Legacy Ch 12
A Specter Legacy Ch 12Kelyns
 
Исследование аудитории онлайн-покупателей в России. Яндекс + GFK
Исследование аудитории онлайн-покупателей в России. Яндекс + GFKИсследование аудитории онлайн-покупателей в России. Яндекс + GFK
Исследование аудитории онлайн-покупателей в России. Яндекс + GFKSegrey Nikishov - @n_grey
 
Эффективное использование социальных сетей для развития интернет-магазина
Эффективное использование социальных сетей для развития интернет-магазинаЭффективное использование социальных сетей для развития интернет-магазина
Эффективное использование социальных сетей для развития интернет-магазинаFert
 
Curs 2012 2013_bo
Curs  2012 2013_boCurs  2012 2013_bo
Curs 2012 2013_bopepquetco
 
Vbtm strat personeelsplanning 31 10-2012
Vbtm strat personeelsplanning 31 10-2012Vbtm strat personeelsplanning 31 10-2012
Vbtm strat personeelsplanning 31 10-2012Atrivé
 

En vedette (20)

【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
 
2012100607103520111014181028 kulliah1 kpt6043
2012100607103520111014181028 kulliah1 kpt60432012100607103520111014181028 kulliah1 kpt6043
2012100607103520111014181028 kulliah1 kpt6043
 
QR codes / kode - kaj, kako, zakaj ...oglasevanje
QR codes / kode - kaj, kako, zakaj ...oglasevanjeQR codes / kode - kaj, kako, zakaj ...oglasevanje
QR codes / kode - kaj, kako, zakaj ...oglasevanje
 
Noticias TIC Noviembre 2011
Noticias TIC Noviembre 2011Noticias TIC Noviembre 2011
Noticias TIC Noviembre 2011
 
Стратегические отличия маркетинга в Интернете НИУ ВШЭ
Стратегические отличия маркетинга в Интернете НИУ ВШЭСтратегические отличия маркетинга в Интернете НИУ ВШЭ
Стратегические отличия маркетинга в Интернете НИУ ВШЭ
 
Corporate Brochure Dynamis 2012
Corporate Brochure Dynamis 2012Corporate Brochure Dynamis 2012
Corporate Brochure Dynamis 2012
 
Rph ikan
Rph ikanRph ikan
Rph ikan
 
Social Media Workshop at Jordan University
Social Media Workshop at Jordan UniversitySocial Media Workshop at Jordan University
Social Media Workshop at Jordan University
 
Toelichting green lease toelichting - Jones Lang Lasalle
Toelichting green lease toelichting - Jones Lang LasalleToelichting green lease toelichting - Jones Lang Lasalle
Toelichting green lease toelichting - Jones Lang Lasalle
 
ekonomista 2.0 - N.º 10 (eusk)
ekonomista 2.0 - N.º 10 (eusk)ekonomista 2.0 - N.º 10 (eusk)
ekonomista 2.0 - N.º 10 (eusk)
 
Urok 1
Urok 1Urok 1
Urok 1
 
Installing my sql on windows
Installing my sql on windowsInstalling my sql on windows
Installing my sql on windows
 
Access to public sector information
Access to public sector informationAccess to public sector information
Access to public sector information
 
201610무들코딩수학
201610무들코딩수학201610무들코딩수학
201610무들코딩수학
 
BigData
BigDataBigData
BigData
 
A Specter Legacy Ch 12
A Specter Legacy Ch 12A Specter Legacy Ch 12
A Specter Legacy Ch 12
 
Исследование аудитории онлайн-покупателей в России. Яндекс + GFK
Исследование аудитории онлайн-покупателей в России. Яндекс + GFKИсследование аудитории онлайн-покупателей в России. Яндекс + GFK
Исследование аудитории онлайн-покупателей в России. Яндекс + GFK
 
Эффективное использование социальных сетей для развития интернет-магазина
Эффективное использование социальных сетей для развития интернет-магазинаЭффективное использование социальных сетей для развития интернет-магазина
Эффективное использование социальных сетей для развития интернет-магазина
 
Curs 2012 2013_bo
Curs  2012 2013_boCurs  2012 2013_bo
Curs 2012 2013_bo
 
Vbtm strat personeelsplanning 31 10-2012
Vbtm strat personeelsplanning 31 10-2012Vbtm strat personeelsplanning 31 10-2012
Vbtm strat personeelsplanning 31 10-2012
 

Similaire à Library Project Stored Procs

SQL Stored Procedures For My Library Project
SQL Stored Procedures For My Library ProjectSQL Stored Procedures For My Library Project
SQL Stored Procedures For My Library ProjectRick Massouh
 
Sql Portfolio(March 31)
Sql Portfolio(March 31)Sql Portfolio(March 31)
Sql Portfolio(March 31)iceolated
 
Chris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql PortfolioChris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql Portfolioclmcglothen
 
Greg Lewis SQL Portfolio
Greg Lewis SQL PortfolioGreg Lewis SQL Portfolio
Greg Lewis SQL Portfoliogregmlewis
 
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Alex Sharp
 
Tim Kunze\'s SQL Server and VB.NET portfolio
Tim Kunze\'s SQL Server and VB.NET portfolioTim Kunze\'s SQL Server and VB.NET portfolio
Tim Kunze\'s SQL Server and VB.NET portfolioTim Kunze
 
Graph Databases
Graph DatabasesGraph Databases
Graph DatabasesJosh Adell
 
Array Presentation (EngineerBaBu.com)
Array Presentation (EngineerBaBu.com)Array Presentation (EngineerBaBu.com)
Array Presentation (EngineerBaBu.com)EngineerBabu
 
CGI With Object Oriented Perl
CGI With Object Oriented PerlCGI With Object Oriented Perl
CGI With Object Oriented PerlBunty Ray
 
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6Workhorse Computing
 
Python - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave ParkPython - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave Parkpointstechgeeks
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAPsapdocs. info
 
1582627
15826271582627
1582627tabish
 
Building and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning CBuilding and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning CDavid Wheeler
 
Using Regular Expressions and Staying Sane
Using Regular Expressions and Staying SaneUsing Regular Expressions and Staying Sane
Using Regular Expressions and Staying SaneCarl Brown
 
Exploiting Php With Php
Exploiting Php With PhpExploiting Php With Php
Exploiting Php With PhpJeremy Coates
 
Developing applications for performance
Developing applications for performanceDeveloping applications for performance
Developing applications for performanceLeon Fayer
 
Sql for librarians
Sql for librariansSql for librarians
Sql for librariansRogan Hamby
 

Similaire à Library Project Stored Procs (20)

SQL Stored Procedures For My Library Project
SQL Stored Procedures For My Library ProjectSQL Stored Procedures For My Library Project
SQL Stored Procedures For My Library Project
 
My Portfolio
My PortfolioMy Portfolio
My Portfolio
 
My Portfolio
My PortfolioMy Portfolio
My Portfolio
 
Sql Portfolio(March 31)
Sql Portfolio(March 31)Sql Portfolio(March 31)
Sql Portfolio(March 31)
 
Chris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql PortfolioChris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql Portfolio
 
Greg Lewis SQL Portfolio
Greg Lewis SQL PortfolioGreg Lewis SQL Portfolio
Greg Lewis SQL Portfolio
 
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
 
Tim Kunze\'s SQL Server and VB.NET portfolio
Tim Kunze\'s SQL Server and VB.NET portfolioTim Kunze\'s SQL Server and VB.NET portfolio
Tim Kunze\'s SQL Server and VB.NET portfolio
 
Graph Databases
Graph DatabasesGraph Databases
Graph Databases
 
Array Presentation (EngineerBaBu.com)
Array Presentation (EngineerBaBu.com)Array Presentation (EngineerBaBu.com)
Array Presentation (EngineerBaBu.com)
 
CGI With Object Oriented Perl
CGI With Object Oriented PerlCGI With Object Oriented Perl
CGI With Object Oriented Perl
 
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
 
Python - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave ParkPython - Getting to the Essence - Points.com - Dave Park
Python - Getting to the Essence - Points.com - Dave Park
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAP
 
1582627
15826271582627
1582627
 
Building and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning CBuilding and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning C
 
Using Regular Expressions and Staying Sane
Using Regular Expressions and Staying SaneUsing Regular Expressions and Staying Sane
Using Regular Expressions and Staying Sane
 
Exploiting Php With Php
Exploiting Php With PhpExploiting Php With Php
Exploiting Php With Php
 
Developing applications for performance
Developing applications for performanceDeveloping applications for performance
Developing applications for performance
 
Sql for librarians
Sql for librariansSql for librarians
Sql for librarians
 

Library Project Stored Procs

  • 1. Library Project Sql Stored Procedures<br />CREATE PROCEDURE AdultMember<br />(@FirstName varchar(15),<br /> @LastName varchar(15),<br /> @MiddleInitial char(1),<br /> @MemberID smallint OUTPUT,<br /> @PhoneNumber varchar(10),<br /> @ExpirationDate smallint,<br /> @ZipCode varchar(5),<br /> @Street smallint,<br /> @State smallint,<br /> @City smallint<br />)<br />AS<br />BEGIN<br /> <br /> IF @FirstName IS NULL<br /> BEGIN<br /> --RAISERROR('Adult FirstName is not null',15,1);<br /> return-15<br /> END<br /> <br /> IF @LastName IS NULL<br /> BEGIN<br /> --RAISERROR('Adult LastName is not null',15,1);<br /> return-15<br /> END<br /> <br /> IF @MiddleInitial IS NULL<br /> BEGIN<br /> --RAISERROR('Adult FirstName is not null',1);<br /> return-1<br /> END<br /> <br /> IF @MemberID IS NULL OR @MemberID<0<br /> BEGIN<br /> --RAISERROR('Adult MemberID is not null',1);<br /> return-1<br /> END<br /> <br /> IF @PhoneNumber IS NULL<br /> BEGIN<br /> --RAISERROR('Adult PhoneNumber is not null',10);<br /> return-10<br /> END<br /> <br /> IF @ExpirationDate IS NULL<br /> BEGIN<br /> --RAISERROR('Adult ExpirationDate is not null',1);<br /> return-1<br /> END<br /> <br /> IF @ZipCode IS NULL<br /> BEGIN<br /> --RAISERROR('Adult ZipCode is not null',5);<br /> return-5<br /> END<br /> <br /> IF @Street IS NULL<br /> BEGIN<br /> --RAISERROR('Adult Street is not null',1);<br /> return-1<br /> END<br /> <br /> IF @State IS NULL<br /> BEGIN<br /> --RAISERROR('Adult State is not null',1);<br /> return-1<br /> END<br /> <br /> IF @City IS NULL<br /> BEGIN<br /> --RAISERROR('Adult City is not null',1);<br /> return-1<br /> END<br /> <br /> --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction DJL<br /> INSERT INTO member(firstName, middleinitial, lastname)<br /> VALUES(@firstName, @MiddleInitial, @LastName);<br /> <br /> select @memberid = SCOPE_IDENTITY();<br /> <br /> INSERT INTO adult(member_no, phone_no, city, [state], street, zip, expr_date)<br /> VALUES(@MemberID, @PhoneNumber, @City, @State, @Street, @ZipCode, @ExpirationDate);<br /> <br /> END<br /> <br /> BEGIN TRY<br /> EXEC @MemberID =@MemberID'Nana', 'W', 'Boama', '3107 petre st', 'chesapekae', 'VA', '23325', '', '03/05/2010', 0;<br /> END TRY <br /> BEGIN CATCH<br /> PRINT 'Test memberid: FAIL -- CAUGHT Exception';<br /> END CATCH<br /> IF ( SELECT COUNT(*)<br /> FROM member AS m INNER JOIN adult AS a ON m.member_no = a.member_no<br /> WHERE m.member_no = m.member_no) = 1<br /> PRINT 'Test MemberID: PASS -- memberid = ' + CAST(@memberID AS varchar);<br /> ELSE<br /> PRINT 'Test MemberID: FAIL -- memberid = ' + CAST(@memberID AS varchar);<br />CREATE PROCEDURE JuvenileMember<br />(@FirstName varchar(15),<br /> @LastName varchar(15),<br /> @MiddleInitial char(1),<br /> @MemberID smallint OUTPUT,<br /> @BirthDate datetime,<br /> @AdultSponsorID smallint<br />)<br />AS<br />BEGIN<br /> <br /> IF @FirstName IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile FirstName is null',15,1);<br /> return-15<br /> END<br /> <br /> IF @LastName IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile LastName is null',15,1);<br /> return-16<br /> END<br /> <br /> IF @MiddleInitial IS NULL<br /> BEGIN<br /> --RAISERROR('Juvenile FirstName is null',1);<br /> return-17<br /> END<br /> IF @MemberID IS NULL OR @MemberID<0<br /> BEGIN<br /> --RAISERROR('Juvenile MemberID is null',1);<br /> return-18<br /> END<br /> <br /> IF @AdultSponsorID IS NULL OR @AdultSponsorID<0<br /> BEGIN<br /> --RAISERROR('Adult Sponsor ID is null',1);<br /> return-19<br /> END<br /> IF @BirthDate IS NULL<br /> BEGIN<br /> --RAISERROR('Birthdate is null',1);<br /> return-20<br /> END<br /> --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction DJL<br /> INSERT INTO member(firstName, middleinitial, lastname)<br /> VALUES(@firstName, @MiddleInitial, @LastName);<br /> <br /> select @memberid = SCOPE_IDENTITY();<br /> <br /> INSERT INTO juvenile(member_no, adult_member_no, birth_date)<br /> VALUES(@MemberID, @AdultSponsorID, @BirthDate<br /> END<br /> CREATE PROCEDURE AddBook <br /> @ISBN int, <br /> @Translation nvarchar (8) = NULL, <br /> @Cover nvarchar (8) = NULL, <br /> @Title nvarchar (63), <br /> @Author nvarchar (31), <br /> @Synopsis text = NULL, <br /> @Loanable nchar (1), <br /> @CopyNo smallint OUTPUT <br />AS <br /> <br />--Test for null values. <br />IF @ISBN is NULL OR @Loanable is NULL <br /> OR @Title is NULL OR @Author is NULL <br /> BEGIN <br /> RAISERROR('Invalid data entry.',11,1) <br /> RETURN <br /> END <br /> <br />--Test to see if the item exists in library. <br />DECLARE @ItemCount int <br />SELECT @ItemCount = count(*) FROM dbo.item as it <br /> WHERE it.isbn = @ISBN <br /> <br />IF @ItemCount < 1 --The item doesn't exist so add it. <br /> BEGIN <br /> BEGIN TRANSACTION <br /> DECLARE @TitleNo int <br /> --Add record to the title table first. <br /> INSERT dbo.title <br /> (title,author,synopsis) <br /> VALUES (@Title,@Author,@Synopsis) <br /> IF @@Error <> 0 <br /> BEGIN <br /> RAISERROR('Cannot add item.',11,1) <br /> ROLLBACK TRANSACTION <br /> RETURN <br /> END <br /> SET @TitleNo = @@IDENTITY <br /> <br /> --Add record to the item table next. <br /> INSERT dbo.item <br /> (isbn,title_no,translation,cover,loanable) <br /> VALUES (@ISBN,@TitleNo,@Translation,@Cover,@Loanable) <br /> IF @@ERROR <> 0 <br /> BEGIN <br /> RAISERROR('Cannot add item.',11,1) <br /> ROLLBACK TRANSACTION <br /> RETURN <br /> END <br />--Add record to the copy table next. <br /> SET @CopyNo = 1 <br /> INSERT dbo.copy <br /> (isbn,copy_no,title_no,on_loan) <br /> VALUES (@ISBN,@CopyNo,@TitleNo,'N') <br /> IF @@ERROR <> 0 <br /> BEGIN <br />RAISERROR('Cannot add item.',11,1) <br /> ROLLBACK TRANSACTION <br /> RETURN <br /> END <br /> COMMIT TRANSACTION <br /> END <br />ELSE <br /> BEGIN --The item already exists. Add another copy. <br /> --First determine what the title number is. <br /> SELECT @TitleNo = title_no FROM dbo.item <br /> WHERE isbn = @ISBN <br /> --Then determine what the copy number should be <br /> --by counting how many copies already exist. <br /> DECLARE @CopyCount int <br /> SELECT @CopyCount = count(*) FROM dbo.copy as co <br /> WHERE co.isbn = @isbn <br /> --The latest copy # should be the count + 1. <br /> SET @CopyNo = @CopyCount + 1 <br /> BEGIN TRANSACTION <br /> --Add record to the copy table. <br /> INSERT dbo.copy <br /> (isbn,copy_no,title_no,on_loan) <br /> VALUES (@ISBN,@CopyNo,@TitleNo,'N') <br /> IF @@ERROR <> 0 <br /> BEGIN <br /> RAISERROR('Cannot add item.',11,1) <br /> ROLLBACK TRANSACTION <br /> RETURN <br /> END <br /> COMMIT TRANSACTION <br />END<br /> <br />CREATE PROC AddCopy<br />(@isbn int,<br />@copynum smallint<br />)<br />AS <br />BEGIN<br />IF @isbn IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />IF @copynum IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />SELECT title, out_date, due_date, translation, author, loanable, member_no, cover<br />FROM copy INNER JOIN title ON copy.title_no = copy.title_no<br /> INNER JOIN item ON item.isbn = copy.isbn<br /> LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND<br /> loan.copy_no = copy.copy_no<br />WHERE copy.isbn = @isbn AND copy.copy_no = @copynum;<br />END<br />CREATE PROCEDURE CheckInItem<br />(@isbn int,<br /> @copyNumber smallint<br /> )<br /> <br /> AS<br /> BEGIN<br /> <br /> IF @isbn IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> IF @copyNumber is NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> --Need to wrap the INSERTs, UPDATEs, and DELETEs in a transaction DJL<br />DECLARE @loanID smallint;<br /> INSERT INTO loanhist(isbn, copy_no) --Need to populate other columns in loanhist DJL<br /> VALUES(@isbn, @copyNumber)<br /> <br /> UPDATE copy<br /> SET on_loan ='N'<br /> WHERE isbn = @isbn AND copy_no = @copyNumber <br /> <br /> DELETE FROM loan<br /> WHERE isbn = @isbn AND copy_no = @copyNumber <br />END<br />CREATE PROC CheckOutItem<br />(@isbn int,<br /> @copyNumber smallint,<br /> @memberNumber smallint<br /> )<br /> AS<br /> BEGIN<br /> <br /> IF @isbn IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> IF @copyNumber is NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> IF @memberNumber IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> DECLARE @ItemCount int<br /> SELECT @ItemCount = COUNT(*) FROM [dbo].[item] as it<br />join [dbo].[copy] as co on<br />it.isbn = co.isbn<br /> WHERE it.isbn = @isbn AND co.copy_no = @copyNumber<br /> IF @ItemCount < 1<br /> BEGIN<br />RAISERROR('item does not exist in this library.', 11,1)<br />Return<br /> END<br /> <br /> DECLARE @Loanable nvarchar (1)<br /> SELECT @Loanable = loanable FROM [dbo].[item]<br /> WHERE isbn = @isbn<br /> IF @Loanable ='N'<br /> BEGIN<br /> RAISERROR('Check out not successful, Item not loanable,', 11,1)<br /> RETURN<br /> END<br /> <br /> DECLARE @OnLoan nvarchar (1)<br /> SELECT @OnLoan = on_loan FROM [dbo].[copy]<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> IF @Loanable = 'Y'<br /> BEGIN<br /> RAISERROR('Check out not successful,',12,1)<br /> END<br /> <br /> DECLARE @TitleNo int<br /> SELECT @TitleNo = title_no FROM [dbo].[copy]<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> <br /> <br /> DECLARE @OutDate datetime<br /> DECLARE @DueDate datetime<br /> SET @OutDate = GETDATE()<br /> SET @DueDate = DATEADD(DAY, 14, GETDATE())<br /> <br />BEGIN TRANSACTION<br /> <br /> UPDATE [dbo].[copy]<br /> SET on_loan = 'Y'<br /> WHERE isbn = @isbn AND copy_no = @copyNumber<br /> <br /> if @@ERROR <> 0<br /> BEGIN<br /> RAISERROR('item not checked out,',11,1)<br /> ROLLBACK TRANSACTION<br /> RETURN<br /> END<br /> <br /> INSERT [dbo].[loan]<br />(isbn,copy_no, title_no, member_no, out_date, due_date)<br /> VALUEs (@isbn, @copyNumber, @TitleNo, @memberNumber, @OutDate, @DueDate)<br /> <br /> if @@ERROR <> 0<br /> BEGIN<br /> RAISERROR('Error, item not checked out.',11,1)<br /> ROLLBACK TRANSACTION<br /> RETURN<br /> END<br /> <br />END <br /> <br />CREATE PROC ConvertJuvToAdult<br />(@memberID smallint<br />)<br />AS<br />BEGIN<br />IF @memberid IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />SELECT juvenile.member_no, juvenile.birth_date, juvenile.adult_member_no, adult.street, adult.city, adult.state, adult.zip, adult.phone_no, adult.expr_date<br />FROM dbo.adult Adult, dbo.juvenile<br />WHERE adult.member_no = juvenile.member_no<br />AND juvenile.member_no = adult.member_no<br />SELECT juvenile.member_no, juvenile.adult_member_no, juvenile.birth_date, adult.street, adult.city, adult.state, adult.zip, adult.phone_no, adult.expr_date<br />FROM dbo.adult Adult, dbo.juvenile Juvenile, dbo.member Member<br />WHERE Adult.member_no = Juvenile.adult_member_no<br />AND Juvenile.member_no = Member.member_no<br />AND Member.member_no = Juvenile.member_no<br />END<br />CREATE PROC DeleteMember<br /> @MemberID int <br />AS <br /> <br />--Test for null values. <br />IF @MemberID is NULL <br /> BEGIN <br /> RAISERROR('Invalid data entry.',11,1) <br /> RETURN <br /> END <br /> <br />--Test for adult member. <br />DECLARE @AdultCount int <br />SELECT @AdultCount = count(*) FROM adult <br /> WHERE member_no = @MemberID <br /> <br />IF @AdultCount > 0 <br /> BEGIN <br /> BEGIN TRANSACTION <br /> DELETE dbo.adult <br /> WHERE member_no = @MemberID <br /> <br /> --Test for successful deletion. <br /> if @@ERROR <> 0 <br /> BEGIN <br /> RAISERROR('Error, member not deleted.',11,1) <br /> ROLLBACK TRANSACTION <br /> RETURN <br /> END <br /> COMMIT TRANSACTION <br /> RETURN <br /> END <br /> <br />--Test for juvenile member. <br />DECLARE @JuvenileCount int <br />SELECT @JuvenileCount = count(*) FROM juvenile <br /> WHERE member_no = @MemberID <br /> <br />IF @JuvenileCount > 0 <br /> BEGIN <br /> BEGIN TRANSACTION <br /> DELETE dbo.juvenile <br /> WHERE member_no = @MemberID <br /> <br /> --Test for successful deletion. <br /> if @@ERROR <> 0 <br /> BEGIN <br /> RAISERROR('Error, member not deleted.',11,1) <br /> ROLLBACK TRANSACTION<br /> RETURN<br />END<br />COMMIT TRANSACTION<br />RETURN<br />END<br />CREATE PROC GetItem<br />( @isbn int,<br /> @copyno smallint<br />)<br />AS<br />BEGIN<br /> IF @isbn IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> IF @copyno IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> --Test to see if the item exists in library. <br />DECLARE @ItemCount int <br />SELECT @ItemCount = count(*) FROM [dbo].[item] as it <br />JOIN [dbo].[copy] as co ON <br /> it.isbn = co.isbn <br /> WHERE it.isbn = @isbn AND co.copy_no = @CopyNo <br /> IF @ItemCount < 1 <br /> BEGIN <br /> RAISERROR('Item does not exist in this library.',11,1) <br /> RETURN <br /> END <br /> SELECT title, author, translation, cover, loanable, member_no, out_date, due_date<br /> FROM copy INNER JOIN title ON copy.title_no = title.title_no<br /> INNER JOIN item ON item.isbn = copy.isbn<br /> LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND loan.copy_no = copy.copy_no<br /> WHERE copy.isbn = @isbn AND copy.copy_no = @copyno;<br />END<br />CREATE PROCEDURE GetItems<br />( @memberno smallint<br />)<br />AS<br />BEGIN<br /> IF @memberno IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> SELECT loan.isbn, loan.copy_no, title, author, out_date, due_date<br /> FROM loan INNER JOIN title ON loan.title_no = title.title_no<br /> INNER JOIN item ON item.isbn = loan.isbn<br /> WHERE member_no = @memberno;<br />END<br />CREATE PROCEDURE GetMemberByItem<br />(@isbn int,<br /> @copyno smallint<br /> )<br /> AS<br /> BEGIN<br /> IF @isbn IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> IF @copyno IS NULL<br /> BEGIN<br /> --RAISERROR<br /> return -1;<br /> END<br /> <br /> SELECT title, author, translation, cover, loanable, member_no, out_date, due_date<br /> FROM copy INNER JOIN title ON copy.title_no = title.title_no<br /> INNER JOIN item ON item.isbn = copy.isbn<br /> LEFT OUTER JOIN loan ON loan.isbn = copy.isbn AND loan.copy_no = copy.copy_no<br /> WHERE copy.isbn = @isbn AND copy.copy_no = @copyno;<br /> END<br />CREATE PROC SetExpirationDate<br />(@memberID smallint<br />)<br />AS<br />BEGIN<br />IF @memberid IS NULL<br />BEGIN<br />--RAISERROR<br />return -1;<br />END<br />DECLARE @OutDate datetime<br />DECLARE @DueDate datetime<br />SET @OutDate = GETDATE()<br />SET @DueDate = DATEADD(DAY,14,GETDATE())<br />end<br />