9178_9217 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | NEXT |
SPI_EXECUTE
thực thi
kèo bóng đá pháp SQL được chỉ định choĐếmhàng.
Nếu nhưread_onlylàtrue, kèo bóng đá pháp phải chỉ đọc và thực thi
Chi phí giảm phần nào.
Chức năng này chỉ có thể được gọi từ một kết nối thủ tục.
nếuĐếmlà 0 thì kèo bóng đá pháp được thực hiện cho tất cả các hàng mà nó áp dụng cho. Nếu nhưĐếmlớn hơn 0, sau đó số lượng hàng trong đó kèo bóng đá pháp sẽ được thực thi bị hạn chế (giống nhưGiới hạnmệnh đề). Ví dụ:
spi_execute ("chèn vào foo chọn * từ thanh", false, 5);
sẽ cho phép nhiều nhất 5 hàng được chèn vào bảng.
Bạn có thể chuyển nhiều kèo bóng đá pháp trong một chuỗi, nhưng sau đó
Các kèo bóng đá pháp không thể phụ thuộc vào việc tạo các đối tượng sớm hơn trong
chuỗi, vì toàn bộ chuỗi sẽ được phân tích cú pháp và kế hoạch
Trước khi bắt đầu thực thi.SPI_EXECUTE
Trả về kết quả cho kèo bóng đá pháp
thực hiện cuối cùng. TheĐếmGiới hạn áp dụng
cho mỗi kèo bóng đá pháp một cách riêng biệt, nhưng nó không được áp dụng cho ẩn
các kèo bóng đá pháp được tạo bởi các quy tắc.
Khiread_onlylàSai, SPI_EXECUTE
Tăng bộ đếm kèo bóng đá pháp và tính toán một bộ đếm mớiSnapshot11936_12072serializable, nhưng trongĐọc
TẬN TỤYChế độ Cập nhật ảnh chụp nhanh cho phép mỗi kèo bóng đá pháp
Xem kết quả của các giao dịch mới cam kết từ các giao dịch khác
phiên. Điều này là điều cần thiết cho hành vi nhất quán khi
Các kèo bóng đá pháp đang sửa đổi cơ sở dữ liệu.
Khiread_onlylàTRUE, SPI_EXECUTE
Không cập nhật ảnh chụp nhanh hoặc bộ đếm kèo bóng đá pháp và
nó chỉ cho phép đơn giảnChọnkèo bóng đá pháp đến
xuất hiện trong chuỗi kèo bóng đá pháp. Các kèo bóng đá pháp được thực thi bằng cách sử dụng
Snapshot được thiết lập trước đây cho truy vấn xung quanh. Cái này
Chế độ thực thi có phần nhanh hơn chế độ đọc/ghi do
loại bỏ trên đầu một kèo bóng đá pháp. Nó cũng cho phép thực sựỔn địnhkèo bóng đá pháp chức năng sẽ được xây dựng: Vì
Tất cả kèo bóng đá pháp thực thi liên tiếp đều sẽ sử dụng cùng một ảnh chụp nhanh, sẽ có
không thay đổi kết quả.
Nói chung là không khôn ngoan khi trộn chỉ đọc và đọc-viết các kèo bóng đá pháp trong một hàm duy nhất bằng SPI; Điều đó có thể dẫn đến hành vi rất khó hiểu, vì các truy vấn chỉ đọc sẽ không Xem kết quả của bất kỳ bản cập nhật cơ sở dữ liệu nào được thực hiện bởi read-write truy vấn.
Số lượng hàng thực tế mà kèo bóng đá pháp (cuối cùng) là được thực hiện được trả về trong biến toàn cầuSPI_Proced. Nếu giá trị trả về của hàm là13552_13567, spi_ok_insert_returning, spi_ok_delete_returninghoặcspi_ok_update_returning, sau đó bạn có thể sử dụng Con trỏ toàn cầuSpitupletable *Spi_tupableĐể truy cập các hàng kết quả. Một số tiện ích các kèo bóng đá pháp (chẳng hạn nhưGiải thích) cũng trở lại Hàng tập vàspi_tupable13983_14031
Cấu trúcSpitupletableIS được xác định như vậy:
14149_14470
Valslà một loạt kèo bóng đá pháp con trỏ để hàng. (Số lượng mục hợp lệ được đưa ra bởiSPI_Proced.)TUPDESClà một mô tả hàng mà bạn có thể vượt qua đến kèo bóng đá pháp chức năng SPI liên quan đến kèo bóng đá pháp hàng.TUPTABCXT, được phân bổvàmiễn phílà kèo bóng đá pháp trường nội bộ không được sử dụng để sử dụng bởi người gọi SPI.
spi_finish
Giải phóng tất cảSpitupletableS được phân bổ trong thời gian hiện tại
thủ tục. Bạn có thể giải phóng một bảng kết quả cụ thể trước đó, nếu bạn
được thực hiện với nó, bằng cách gọispi_freetupable
.
Chuỗi chứa kèo bóng đá pháp để thực thi
TRUEcho chỉ đọc kèo bóng đá pháp
Số lượng hàng tối đa để xử lý hoặc trả lại
Nếu việc thực thi kèo bóng đá pháp thành công thì một trong những Các giá trị sau (không âm) sẽ được trả về:
Nếu AChọn(nhưng khôngChọn vào) đã được kèo bóng đá pháp
Nếu AChọn vàowas được thực hiện
Nếu mộtChènđã được kèo bóng đá pháp
Nếu AXóaĐã được kèo bóng đá pháp
Nếu mộtCập nhậtđã được kèo bóng đá pháp
Nếu mộtChèn trả vềwas được thực hiện
Nếu AXóa trả vềwas được thực hiện
Nếu mộtCập nhật trả vềwas được thực hiện
Nếu kèo bóng đá pháp tiện ích (ví dụ:Tạo BÀN) đã được kèo bóng đá pháp
Nếu kèo bóng đá pháp được viết lại thành một loại khác của kèo bóng đá pháp (ví dụ:Cập nhậtTrở thànhChèn) bởi Aquy tắc.
Khi lỗi, một trong kèo bóng đá pháp giá trị âm sau đây là đã trả về:
nếukèo bóng đá pháplànullhoặcĐếmIS nhỏ hơn 0
nếuSao chép vào stdouthoặcSao chép từ StdinĐã được cố gắng
Nếu một kèo bóng đá pháp thao tác giao dịch được thử (bắt đầu, cam kết, rollback, SavePoint, Chuẩn bị giao dịch, Cam kết đã chuẩn bị, Chuẩn bị rollbackhoặc bất kỳ biến thể nào của đó)
Nếu loại kèo bóng đá pháp không xác định (không nên xảy ra)
Nếu được gọi từ một thủ tục không kết nối
kèo bóng đá pháp chức năngSPI_EXECUTE
,
SPI_EXEC
, SPI_EXECUTE_PLAN
vàSPI_EXECP
Thay đổi cảSPI_Procedvàspi_tupable(chỉ là con trỏ, không phải nội dung
của cấu trúc). Lưu hai biến toàn cầu này vào địa phương
kèo bóng đá pháp biến thủ tục nếu bạn cần truy cập bảng kết quả củaSPI_EXECUTE
hoặc một chức năng liên quan
qua kèo bóng đá pháp cuộc gọi sau.