Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong tỷ lệ kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

33.9. Sử dụng các tỷ lệ kèo bóng đá mô tả

Vùng mô tả SQL là một phương pháp tinh vi hơn choChọn, Fetchhoặc Amô tảTuyên bố. Một nhóm tỷ lệ kèo bóng đá mô tả SQL

33.9.1. Được đặt tên là mô tả SQL

Một tỷ lệ kèo bóng đá mô tả SQL có tên bao gồm một tiêu đề, mà

Trước khi bạn có thể sử dụng tỷ lệ kèo bóng đá mô tả SQL, bạn cần phải

EXEC SQL phân bổ mô tảđịnh danh;

Định danh đóng vai trò là"Biếncủa tỷ lệ kèo bóng đá mô tả. Khi bạn không cần

EXEC SQL DealLocate Descriptorđịnh danh;

Để sử dụng tỷ lệ kèo bóng đá mô tả, chỉ định nó làm mục tiêu lưu trữthànhmệnh đề, thay vì liệt kê

11926_11991

Nếu tập kết quả trống, tỷ lệ kèo bóng đá mô tả vẫn sẽ

Vì chưa được thực hiện tỷ lệ kèo bóng đá truy vấn đã chuẩn bị,mô tảcâu lệnh có thể được sử tỷ lệ kèo bóng đá để lấy

EXEC SQL BẮT ĐẦU phần khai báo;

Trước Postgresql 9.0,SQLTừ khóa là tùy chọn, vì vậy sử tỷ lệ kèo bóng đáMô tảSQLĐược sản xuất các tỷ lệ kèo bóng đá mô tả SQL có tên. Bây giờ nó làSQLTừ khóaPhần.

inmô tảFetchCâu lệnh, ThethànhSử tỷ lệ kèo bóng đáTừ khóa

Bây giờ làm thế nào để bạn đưa dữ liệu ra khỏi tỷ lệ kèo bóng đá mô tả? Bạn

EXEC SQL Nhận mô tảtên :hostvar=trường;

Hiện tại, chỉ có một trường tiêu đề được xác định:Đếm, cho biết có bao nhiêu

EXEC SQL Nhận mô tảtêngiá trịnum :hostvar=trường;

numcó thể là một số nguyên theo nghĩa đen

Cardinality(số nguyên)

Số lượng hàng trong tập kết quả

Data

Mục dữ liệu thực tế (do đó, loại dữ liệu của điều này

datetime_interval_code(số nguyên)

?

datetime_interval_precision(số nguyên)

không được triển khai

Chỉ báo(Số nguyên)

Chỉ báo (chỉ ra giá trị null hoặc giá trị

key_member(số nguyên)

Không được triển khai

LEGN(số nguyên)

Độ dài của mốc thời gian trong ký tự

tên(chuỗi)

Tên của cột

nullable(số nguyên)

không được triển khai

octet_length(Số nguyên)

Độ dài của biểu diễn ký tự của mốc thời gian trong

Precision(số nguyên)

độ chính xác (cho loạiSố)

return_length(số nguyên)

Độ dài của mốc thời gian trong ký tự

return_octet_length(số nguyên)

Độ dài của biểu diễn ký tự của mốc thời gian trong

tỷ lệ(số nguyên)

tỷ lệ (cho loạiSố)

loại(số nguyên)

Mã số của loại dữ liệu của cột

inthực thi, khai báoMởCâu lệnh, Hiệu ứng củathànhsử tỷ lệ kèo bóng đáTừ khóa là khác nhau. MỘTSử tỷ lệ kèo bóng đá mô tả SQLtênlà cách để vượt qua đầu vào

EXEC SQL SET mô tảtêngiá trịnum trường=:hostvar;

PostgreSQL hỗ trợ lấy thêm một bản ghi trong mộtFetchCâu lệnh và lưu trữ dữ liệu

EXEC SQL bắt đầu khai báo;

33.9.2. Mô tả SQLDA

tỷ lệ kèo bóng đá mô tả SQLDA là cấu trúc ngôn ngữ C có thể

EXEC SQL bao gồm sqlda.h;

Lưu ý rằngSQLTừ khóa làthànhsử tỷ lệ kèo bóng đáTừ khóaPhầnCũng áp tỷ lệ kèo bóng đá ở đây với một bổ sung. Trong amô tảtuyên bốMô tảTừ khóa có thể bị bỏ qua hoàn toàn nếuthànhTừ khóa được sử tỷ lệ kèo bóng đá:

EXEC SQL Mô tả đã chuẩn bị_statement vào mysqlda;

Cấu trúc của sqlda là:

#define có tênatalen 64

Dữ liệu được phân bổ cho cấu trúc SQLDA là thay đổi vì nósqldaCấu trúc là:

sqldaid

Nó chứa "SQLDA"

SQLDABC

Nó chứa kích thước của không gian được phân bổ trong

SQLN

Nó chứa số lượng tham số đầu vào cho aMở, khai báohoặcthực thiCâu lệnh sử tỷ lệ kèo bóng đáSử tỷ lệ kèo bóng đáTừ khóa. Trong trường hợp nó được sử tỷ lệ kèo bóng đáChọn, thực thihoặcFetchCâu lệnh, giá trị của nó giống nhưSQLDcâu lệnh

SQLD

Nó chứa số lượng trường trong tập kết quả.

desc_next

Nếu truy vấn trả về nhiều hơn một bản ghi, nhiều bản ghidesc_nextgiữ một con trỏ đến tiếp theo

SQLVAR

Đây là mảng của tỷ lệ kèo bóng đá trường trong tập kết quả. tỷ lệ kèo bóng đá

SQLTYPE

Nó chứa định danh loại của trường.EnuminECPGTYPE.H.

sqllen

Nó chứa chiều dài nhị phân của trường. Ví dụ.ECPGT_INT.

sqldata

(char *) sqldataĐiểm

SQLIND

(char *) sqlindĐiểm

sqlname

struct sqlname sqlnamechứa tên của trường trong một cấu trúc:

struct sqlname
length

sqlname.lengthChứa độ dài của tên trường.

Dữ liệu

sqlname.datachứa tên trường thực tế.