Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Stored Procedure có tham số vào.Cấu trúc như thế nào nhỉ?

  1. #1
    Ngày gia nhập
    02 2009
    Nơi ở
    http://toptaigamemienphi.com
    Bài viết
    76

    Mặc định Stored Procedure có tham số vào.Cấu trúc như thế nào nhỉ?

    mình có mấy bài tập về phần stored procedure có tham số vào như sau:
    mình cũng ko hiểu phần này rõ lắm.Bạn nào biết chia sẻ mình với.
    đề bài:
    Với các tham số đưa vao là:MSGV,TENGV,SODT,DIACHI,MSHH NAMHH.trước khi insert dữ liệu hãy kiểm tra MSHH đã tồn tại trong table HOCHAM chưa?nếu chưa trả về giá trị 0;
    mình cũng tạm làm như thế này:
    Code:
    CREATE PROCEDURE CAU1(
                @MSGV     Smallint      ,           
                @TENGV    nvarchar(30)  ,
                @SODT     varchar (10)  ,   
                @DIACHI   nvarchar(50)  ,	 
                @MSHH     Smallint      ,
                @NAMHH    SmallDatetime )
    AS
      DECLARE @KT_MSHH Smallint      
      BEGIN
        SELECT @KT_MSHH=MSHH
        FROM HOCHAM   
        IF @KT_MSHH IS NULL
          SELECT @KT_MSHH=0
          FROM GIAOVIEN 
        ELSE 
          INSERT INTO GIAOVIEN VALUES(@MSGV,@TENGV,@SODT,@DIACHI,@MSHH,@NAMHH )
      END
    EXEC CAU1('6',N'Vớ Văn Vẩn','0987654321','Gậm Cầu','2','1967')
    Nhưng kq ko chèn đc nó cứ bảo lỗi:Incorrect syntax near '6'.
    trả hiểu gì.Bạn nào giỏi phần này dạy mình tí ..và cả phần stored procedure với tham số vào và ra.bạn có nào bài tập và giải phần này cho lên đây chia sẻ nhé!.
    mình cũng ko hiểu lắm phần này khó quá đi mất.
    ta đưa vào tenhv trả ra:số gv thỏa học vị,nếu ko tìm thấy trả về 0.
    mọi người cùng làm và chia sẻ nhé.
    Thư viện tài liệu miễn phí
    * Không cần đăng ký thành viên
    * Tải không giới hạn tài liệu
    * Số lượng tài liệu trên 1 triệu
    * Miễn phí và không mất tiền khi tải về
    Website: http://tailieuhay.info

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Code:
    CREATE PROCEDURE CAU1(
                @MSGV     Smallint      ,           
                @TENGV    nvarchar(30)  ,
                @SODT     varchar (10)  ,   
                @DIACHI   nvarchar(50)  ,	 
                @MSHH     Smallint      ,
                @NAMHH    SmallDatetime )
    AS
      DECLARE @KT_MSHH Smallint      
      BEGIN
        SELECT @KT_MSHH=MSHH
        FROM HOCHAM   
        IF @KT_MSHH IS NULL
          SELECT @KT_MSHH=0
          FROM GIAOVIEN 
        ELSE 
          INSERT INTO GIAOVIEN VALUES(@MSGV,@TENGV,@SODT,@DIACHI,@MSHH,@NAMHH )
      END
    EXEC CAU1('6',N'Vớ Văn Vẩn','0987654321','Gậm Cầu','2','1967')
    Sai ở dòng màu đỏ, chính xác là: SET @KT_MSHH = MSHH

  3. #3
    Ngày gia nhập
    07 2008
    Bài viết
    4

    Anh huynguyen có thể xem lại đc ko? Em nghĩ đoạn code trên sai ở chỗ:

    Code:
    EXEC CAU1('6',N'Vớ Văn Vẩn','0987654321','Gậm Cầu','2','1967')

  4. #4
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Cái dòng đó để chạy cái câu store trên, store chưa đúng thì đâu có chạy được đến câu đó, nhưng đúng là câu đó sai thật, hihi

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    3

    cho insert du lieu ban khai bao bien kieu int thi khi them du lieu cung phai kieu int chu..bo hai dau nhay di

  6. #6
    Ngày gia nhập
    03 2010
    Bài viết
    41

    Mặc định Stored Procedure có tham số vào.Cấu trúc như thế nào nhỉ?

    EXEC CAU1('6',N'Vớ Văn Vẩn','0987654321','Gậm Cầu','2','1967')

    Bạn sửa lại thành
    EXEC CAU1( 6 , N'Vớ Văn Vẩn' , '0987654321' , 'Gậm Cầu' , 2 , '1967' )
    Bạn khai báo là int, nhưng nhập là tring nên bị báo lỗi chỗ: '6' , sửa luôn chỗ: '2'
    Khi lập trình, bạn chú ý về kiểu dữ liệu nhé, giá trị nhập vào phải cùng kiểu và giá trị xuất ra (cần 1 biến lưu) cũng phải cùng kiểu.

  7. #7
    Ngày gia nhập
    10 2010
    Bài viết
    7

    Bỏ 2 dấu ngoặc chạy mới được bạn
    EXEC CAU1 6 , N'Vớ Văn Vẩn' , '0987654321' , 'Gậm Cầu' , 2 , '1967'

  8. #8
    Ngày gia nhập
    12 2015
    Bài viết
    1

    theo mình thì bạn nên sửa ntn. mình mới học nên chỉ có thể giúp thế thoy
    Code:
    CREATE PROCEDURE CAU1(
                @MSGV     Smallint      ,           
                @TENGV    nvarchar(30)  ,
                @SODT     varchar (10)  ,   
                @DIACHI   nvarchar(50)  ,	 
                @MSHH     Smallint      ,
                @NAMHH    SmallDatetime )
    AS
      DECLARE @KT_MSHH Smallint      
      BEGIN
        SELECT @KT_MSHH=MSHH
        FROM HOCHAM   
        IF @KT_MSHH IS NULL
          SET @KT_MSHH=0 
        ELSE 
          INSERT INTO GIAOVIEN VALUES(@MSGV,@TENGV,@SODT,@DIACHI,@MSHH,@NAMHH )
      END
    EXEC CAU1 6,N'Vớ Văn Vẩn','0987654321','Gậm Cầu','2','1967'

Các đề tài tương tự

  1. Cách gọi Stored Procedure trả về tham số trong C#?
    Gửi bởi diepvien91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 17
    Bài viết cuối: 27-01-2013, 08:49 PM
  2. [Store Procedure] Insert vào một trong các bảng có cấu trúc giống nhau với tên bảng là tham số truyền vào!
    Gửi bởi chuoi123 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 9
    Bài viết cuối: 21-11-2012, 02:39 PM
  3. Giá trị trả về trong stored procedure của Oracle là gì và lấy thế nào?
    Gửi bởi ryanreed trong diễn đàn Thắc mắc Oracle
    Trả lời: 2
    Bài viết cuối: 24-12-2011, 10:47 AM
  4. Không tìm thấy Stored procedure khi làm việc trên ASP.NET.
    Gửi bởi nguoirung1.6 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 7
    Bài viết cuối: 07-10-2011, 04:41 PM
  5. Database excute một stored procedure có tham số là kiểu nvarchar, how to?
    Gửi bởi Riku trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 01-06-2011, 09:45 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn