PostgreSQL: kèo chấp bóng đá hôm nay liệu: 9 | |||
---|---|---|---|
prev | UP | Chương 31.libpq- C Thư viện | NEXT |
Sau khi kết nối với máy chủ cơ sở dữ liệu đã được thiết lập thành công, các chức năng được mô tả ở đây được sử dụng để thực hiện các truy vấn và kèo bóng đá hom nay SQL.
PQEXEC
gửi kèo bóng đá hom nay lên máy chủ và chờ kết quả.
PGRESULT *PQEXEC (PGCONN *Conn, Const Char *Command);
Trả về APGRESULTCon trỏ hoặc có thể là một con trỏ null. Một con trỏ không null thường sẽ được trả lại ngoại trừ trong các điều kiện ngoài bộ nhớ hoặc các lỗi nghiêm trọng như không có khả năng gửi kèo bóng đá hom nay đến máy chủ.PQResultstatus
Hàm nên được gọi để kiểm tra giá trị trả về cho bất kỳ lỗi nào (bao gồm giá trị của con trỏ null, trong trường hợp đó nó sẽ trả vềPGRES_FATAL_ERROR). Sử dụngpqerrormessage
Để biết thêm thông tin về kèo bóng đá hom nay lỗi đó.
Chuỗi kèo bóng đá hom nay có thể bao gồm nhiều kèo bóng đá hom nay SQL (được phân tách bằng dấu chấm phẩy). Nhiều truy vấn được gửi trong mộtPQEXEC
cuộc gọi được xử lý trong một giao dịch, trừ khi có rõ ràngbắt đầu/cam kếtCác kèo bóng đá hom nay được bao gồm trong chuỗi truy vấn để chia nó thành nhiều giao dịch. Tuy nhiên, lưu ý rằng đã trả vềpgresultCấu trúc chỉ mô tả kết quả của kèo bóng đá hom nay cuối cùng được thực thi từ chuỗi. Nếu một trong các kèo bóng đá hom nay không thành công, việc xử lý chuỗi dừng lại với nó và đã trả vềpgresultMô tả tình trạng lỗi.
PQExecParams
gửi kèo bóng đá hom nay lên máy chủ và chờ kết quả, với khả năng truyền các tham số riêng biệt với văn bản kèo bóng đá hom nay SQL.
PGRESULT *PQEXECPARAMS (PGConn *Conn,
PQExecParams
giống nhưPQEXEC
, nhưng cung cấp chức năng bổ sung: Các giá trị tham số có thể được chỉ định riêng biệt với chuỗi kèo bóng đá hom nay thích hợp và kết quả truy vấn có thể được yêu cầu ở định dạng văn bản hoặc nhị phân.PQExecparams
chỉ được hỗ trợ trong giao thức 3.0 và kèo bóng đá hom nay kết nối sau đó; nó sẽ thất bại khi sử dụng giao thức 2.0.
kèo bóng đá hom nay đối số chức năng là:
Đối tượng kết nối để gửi kèo bóng đá hom nay qua.
Chuỗi kèo bóng đá hom nay SQL được thực thi. Nếu các tham số được sử dụng, chúng được gọi trong chuỗi kèo bóng đá hom nay là$ 1, $ 2, v.v.
Số lượng tham số được cung cấp; nó là độ dài của kèo bóng đá hom nay mảngparamtypes [], paramValues [], paramlength []vàparamformats []. (Con trỏ mảng có thể lànullKhinparamsbằng kèo bóng đá hom nay.)
Chỉ định, bởi OID, kèo bóng đá hom nay loại dữ liệu được gán cho kèo bóng đá hom nay ký hiệu tham số. Nếu nhưparamtypeslànullhoặc bất kỳ phần tử cụ thể nào trong mảng bằng kèo bóng đá hom nay, máy chủ in một kiểu dữ liệu cho ký hiệu tham số giống như cách nó sẽ làm cho một chuỗi chữ chưa được xác định.
Chỉ định kèo bóng đá hom nay giá trị thực của kèo bóng đá hom nay tham số. Một con trỏ null trong mảng này có nghĩa là tham số tương ứng là null;
Chỉ định độ dài dữ liệu thực tế của kèo bóng đá hom nay tham số định dạng nhị phân. Nó bị bỏ qua cho kèo bóng đá hom nay tham số null và kèo bóng đá hom nay tham số định dạng văn bản.
Chỉ định xem kèo bóng đá hom nay tham số có phải là văn bản hay không (đặt số 0 trong mục mảng cho tham số tương ứng) hoặc nhị phân (đặt một trong một mục nhập mảng cho tham số tương ứng). Nếu con trỏ mảng là null thì tất cả kèo bóng đá hom nay tham số được coi là chuỗi văn bản.
Giá trị được truyền ở định dạng nhị phân đòi hỏi kiến thức về biểu diễn nội bộ được dự kiến bởi phần phụ trợ. Ví dụ, kèo bóng đá hom nay số nguyên phải được thông qua theo thứ tự byte mạng.SốGiá trị yêu cầu kiến thức về định dạng lưu trữ máy chủ, như được triển khai trongsrc/backend/utils/adt/numeric.c :: numeric_send ()vàsrc/backend/utils/adt/numeric.c :: numeric_recv ().
Chỉ định số 0 để có được kết quả ở định dạng văn bản hoặc một để có được kết quả ở định dạng nhị phân. (Hiện tại không có điều khoản nào để có được kèo bóng đá hom nay cột kết quả khác nhau ở kèo bóng đá hom nay định dạng khác nhau, mặc dù điều đó là có thể trong giao thức cơ bản.)
Ưu điểm chính củaPQExecParams
OverPQEXEC
16506_16648
kèo bóng đá hom nay giống nhưPQEXEC
, PQExecParams
Cho phép nhiều nhất một kèo bóng đá hom nay SQL trong chuỗi đã cho. .
Tip:Chỉ định kèo bóng đá hom nay loại tham số thông qua OID là tẻ nhạt, đặc biệt nếu bạn không thích kèo bóng đá hom nay giá trị OID đặc biệt cứng vào chương trình của bạn. Tuy nhiên, bạn có thể tránh làm như vậy ngay cả trong trường hợp máy chủ tự nó không thể xác định loại tham số hoặc chọn một loại khác với bạn muốn.
Chọn * Từ MyTable WHERE X = $ 1 :: Bigint;Tham số lực lượng này$ 1được coi làBigint, trong khi theo mặc định, nó sẽ được gán cùng loại vớiX. Buộc quyết định loại tham số, theo cách này hoặc bằng cách chỉ định loại OID số, được khuyến nghị mạnh mẽ khi gửi kèo bóng đá hom nay giá trị tham số ở định dạng nhị phân, bởi vì định dạng nhị phân có ít dự phòng hơn định dạng văn bản và do đó ít có khả năng máy chủ sẽ phát hiện ra lỗi không khớp loại cho bạn.
PQPrepare
Đệ trình yêu cầu tạo câu kèo bóng đá hom nay đã chuẩn bị với các tham số đã cho và chờ hoàn thành.
pgresult *pqprepare (pgconn *Conn,
PQPrepare
Tạo một câu kèo bóng đá hom nay đã chuẩn bị để thực hiện sau vớiPQEXECPREPARED
. Tính năng này cho phép các kèo bóng đá hom nay sẽ được sử dụng nhiều lần để được phân tích cú pháp và được lên kế hoạch chỉ một lần, thay vì mỗi lần chúng được thực thi.PQPrepare
chỉ được hỗ trợ trong giao thức 3.0 và kèo bóng đá hom nay kết nối sau đó; nó sẽ thất bại khi sử dụng giao thức 2.0.
Hàm tạo ra một câu kèo bóng đá hom nay đã chuẩn bị có tênstmtnametừTruy vấnChuỗi, phải chứa một kèo bóng đá hom nay SQL duy nhất.stmtnamecó thể""Để tạo một tuyên bố không tên, trong trường hợp đó, bất kỳ câu kèo bóng đá hom nay chưa được đặt tên nào đã được đặt tên được thay thế tự động; Nếu không thì đó là một lỗi nếu tên câu kèo bóng đá hom nay đã được xác định trong phiên hiện tại.$ 1, $ 2, v.v.nparamslà số lượng tham số mà kèo bóng đá hom nay loại được chỉ định trước trong mảngparamtypes []. (Con trỏ mảng có thể lànullKhinparamsbằng kèo bóng đá hom nay.)paramtypes []Chỉ định, bởi OID, kèo bóng đá hom nay loại dữ liệu được gán cho kèo bóng đá hom nay ký hiệu tham số. Nếu nhưparamtypeslànullhoặc bất kỳ phần tử cụ thể nào trong mảng bằng không, máy chủ gán một loại dữ liệu cho ký hiệu tham số theo cùng một cách nó sẽ làm cho một chuỗi theo nghĩa đen chưa được xác định. Ngoài ra, truy vấn có thể sử dụng kèo bóng đá hom nay ký hiệu tham số có số cao hơnnparams; kèo bóng đá hom nay loại dữ liệu cũng sẽ được suy ra cho kèo bóng đá hom nay biểu tượng này.PQDespripePrepared
Đối với một phương tiện để tìm hiểu loại dữ liệu nào đã được suy ra.)
Như vớiPQEXEC
, kết quả thường làpgresultĐối tượng có nội dung biểu thị thành công hoặc thất bại phía máy chủ. Một kết quả null chỉ ra bộ nhớ ngoài hoặc không có khả năng gửi kèo bóng đá hom nay.pqerrormessage
Để biết thêm thông tin về kèo bóng đá hom nay lỗi đó.
Câu kèo bóng đá hom nay được chuẩn bị để sử dụng vớiPQEXECPREPARED
cũng có thể được tạo bằng cách thực thi SQLChuẩn bịCâu kèo bóng đá hom nay. Ngoài ra, mặc dù không cólibpqHàm xóa câu kèo bóng đá hom nay đã chuẩn bị, SQLDealLocateCâu kèo bóng đá hom nay có thể được sử dụng cho mục đích đó.
PQEXECPREPARED
Gửi yêu cầu thực thi câu kèo bóng đá hom nay đã chuẩn bị với các tham số đã cho và chờ kết quả.
PGRESULT *PQEXECPREPARED (PGConn *Conn,
PQEXECPREPARED
giống nhưPQExecParams
, nhưng kèo bóng đá hom nay sẽ được thực thi được chỉ định bằng cách đặt tên một câu kèo bóng đá hom nay được chuẩn bị trước đó, thay vì đưa ra một chuỗi truy vấn. Tính năng này cho phép các kèo bóng đá hom nay sẽ được sử dụng nhiều lần để được phân tích cú pháp và được lên kế hoạch chỉ một lần, thay vì mỗi lần chúng được thực thi.PQEXECPREPARED
chỉ được hỗ trợ trong giao thức 3.0 và kèo bóng đá hom nay kết nối sau này; nó sẽ thất bại khi sử dụng giao thức 2.0.
kèo bóng đá hom nay tham số giống hệt vớiPQExecParams
, ngoại trừ tên của câu kèo bóng đá hom nay đã chuẩn bị được đưa ra thay vì chuỗi truy vấn vàparamtypes []Không có tham số (không cần thiết vì các loại tham số của câu kèo bóng đá hom nay đã chuẩn bị được xác định khi nó được tạo).
Đệ trình một yêu cầu để có được thông tin về câu kèo bóng đá hom nay đã chuẩn bị được chỉ định và chờ hoàn thành.
PGRESULT *
Cho phép một ứng dụng lấy thông tin về câu kèo bóng đá hom nay đã chuẩn bị trước đó.
chỉ được hỗ trợ trong kèo bóng đá hom nay kết nối giao thức 3.0 trở lên; nó sẽ thất bại khi sử dụng giao thức 2.0.
stmtnamecó thể""hoặcnullĐể tham khảo câu kèo bóng đá hom nay chưa được đặt tên, nếu không thì nó phải là tên của một câu kèo bóng đá hom nay đã chuẩn bị hiện có. Về thành công, Apgresultvới trạng tháiPGRES_COMMAND_OKđược trả về. kèo bóng đá hom nay chức năngpqnparams
vàPQParamType
có thể được áp dụng cho điều nàyPGRESULTĐể có được thông tin về các tham số của câu kèo bóng đá hom nay đã chuẩn bị và các hàmPQNFields
, PQFNAME
, PQFTYPE
, v.v. cung cấp thông tin về các cột kết quả (nếu có) của câu kèo bóng đá hom nay.
PQDescriptePortal
Đệ trình yêu cầu lấy thông tin về cổng thông tin được chỉ định và chờ hoàn thành.
24331_24398
PQDescriptePortal
Cho phép một ứng dụng lấy thông tin về cổng thông tin được tạo trước đó. (libpqKhông cung cấp bất kỳ quyền truy cập trực tiếp nào vào cổng, nhưng bạn có thể sử dụng chức năng này để kiểm tra kèo bóng đá hom nay thuộc tính của con trỏ được tạo bằngTuyên bố con trỏkèo bóng đá hom nay SQL.)chỉ được hỗ trợ trong kèo bóng đá hom nay kết nối giao thức 3.0 trở lên; nó sẽ thất bại khi sử dụng giao thức 2.0.
PortalNamecó thể""hoặcnullĐể tham khảo cổng thông tin kèo bóng đá hom nay tên, nếu kèo bóng đá hom nay nó phải là tên của một cổng thông tin hiện có. Về thành công, Apgresultvới trạng tháiPGRES_COMMAND_OKđược trả về. kèo bóng đá hom nay chức năngPQNFields
, pqfname
, PQFTYPE
, ETC có thể được áp dụng chopgresultĐể có được thông tin về kèo bóng đá hom nay cột kết quả (nếu có) của cổng thông tin.
ThepgresultCấu trúc đóng gói kết quả được trả về bởi máy chủ.libpqLập trình viên ứng dụng nên cẩn thận để duy trìpgresultTrừu tượng. Sử dụng kèo bóng đá hom nay chức năng của người phụ kiện bên dưới để có được nội dung củaPGRESULT. Tránh trực tiếp tham chiếu kèo bóng đá hom nay trường củaPGRESULTCấu trúc vì chúng có thể thay đổi trong tương lai.
PQResultstatus
Trả về trạng thái kết quả của kèo bóng đá hom nay.
26219_26272
PQResultstatus
Có thể trả về một trong kèo bóng đá hom nay giá trị sau:
Chuỗi được gửi đến máy chủ trống.
Hoàn thành thành công kèo bóng đá hom nay trả về không có dữ liệu.
Hoàn thành thành công dữ liệu trả về kèo bóng đá hom nay (chẳng hạn như AChọnhoặcshow).
Sao chép (từ máy chủ) BẮT ĐẦU DỮ LIỆU.
Sao chép (vào máy chủ) bắt đầu truyền dữ liệu.
Phản hồi của máy chủ kèo bóng đá hom nay được hiểu.
Một lỗi kèo bóng đá hom nay sinh (thông báo hoặc cảnh báo) đã xảy ra.
Đã xảy ra lỗi nghiêm trọng.
Sao chép vào/ra (đến và từ máy chủ) Truyền dữ liệu bắt đầu. Tính năng này hiện chỉ được sử dụng để sao chép phát trực tuyến, vì vậy trạng thái này không nên xảy ra trong kèo bóng đá hom nay ứng dụng thông thường.
Thepgresultchứa một kết quả duy nhất từ kèo bóng đá hom nay hiện tại. Trạng thái này chỉ xảy ra khi chế độ hàng đơn đã được chọn cho truy vấn (xemPhần 31,5).
Nếu trạng thái kết quả làPGRES_TUDS_OKhoặcpgres_single_tuple, sau đó kèo bóng đá hom nay chức năng được mô tả dưới đây có thể được sử dụng để truy xuất kèo bóng đá hom nay hàng được trả về bởi truy vấn. Lưu ý rằng AChọnkèo bóng đá hom nay xảy ra để truy xuất các hàng không vẫn hiển thịPGRES_TUDS_OK. PGRES_COMMAND_OKdành cho các kèo bóng đá hom nay không bao giờ có thể trả lại hàng (ChènhoặcCập nhậtkèo bóng đá hom nay cóTrở vềmệnh đề, v.v.). Một phản hồi củapgres_empty_queryCó thể chỉ ra một lỗi trong phần mềm máy khách.
Kết quả của trạng tháiPGRES_NONFATAL_ERRORSẽ kèo bóng đá hom nay bao giờ được trả về trực tiếp bởiPQEXEC
hoặc kèo bóng đá hom nay chức năng thực thi truy vấn khác; Kết quả của loại này thay vào đó được chuyển cho bộ xử lý thông báo (xemPhần 31.12).
pqresstatus
Chuyển đổi loại được liệt kê được trả về bởiPQResultstatus
thành một hằng số chuỗi mô tả mã trạng thái. Người gọi kèo bóng đá hom nay nên giải phóng kết quả.
29899_29942
pqresulterrormessage
Trả về thông báo lỗi được liên kết với kèo bóng đá hom nay hoặc một chuỗi trống nếu không có lỗi.
char *pqresulterrormessage (const pgresult *res);
Nếu có lỗi, chuỗi được trả về sẽ bao gồm một dòng mới. Người gọi kèo bóng đá hom nay nên giải phóng kết quả trực tiếp.PGRESULTXử lý được chuyển choPQClear
.
ngay sau APQEXEC
hoặcPQGetResult
CALL,PQerrorMessage
(trên kết nối) sẽ trả về cùng chuỗi vớipqresulterrormessage
(kết quả). Tuy nhiên, APGRESULTSẽ giữ lại thông báo lỗi cho đến khi bị phá hủy, trong khi thông báo lỗi của kết nối sẽ thay đổi khi kèo bóng đá hom nay hoạt động tiếp theo được thực hiện. Sử dụngpqresulterrormessage
Khi bạn muốn biết trạng thái được liên kết với một cụ thểPGRESULT; sử dụngPQerrorMessage
Khi bạn muốn biết trạng thái từ thao tác mới nhất trên kết nối.
pqresulterrorfield
Trả về một trường riêng lẻ của báo cáo lỗi.
Char *pqresulterrorfield (const pgresult *res, int fieldCode);
FieldCodelà một định danh trường lỗi; Xem kèo bóng đá hom nay biểu tượng được liệt kê bên dưới.nullđược trả về nếupgresultkèo bóng đá hom nay phải là một lỗi hoặc kết quả cảnh báo hoặc kèo bóng đá hom nay bao gồm trường được chỉ định. Giá trị trường thường sẽ kèo bóng đá hom nay bao gồm một dòng mới.pgresultXử lý được chuyển choPQClear
.
Mã trường sau đây có sẵn:
Mức độ nghiêm trọng; Nội dung trường làERROR, FatalhoặcPanic(trong một thông báo lỗi) hoặcCảnh báo, Thông báo, DEBUG, thông tinhoặclog(trong một thông báo thông báo) hoặc bản dịch cục bộ của một trong số này. Luôn luôn có mặt.
Mã SQLSTATE cho lỗi. Mã SQLSTATE xác định loại lỗi đã xảy ra;Phụ lục A. Trường này kèo bóng đá hom nay thể bản địa hóa và luôn có mặt.
Thông báo lỗi có thể đọc được chính của con người (thường là một dòng). Luôn luôn có mặt.
Chi tiết: Thông báo lỗi thứ cấp tùy chọn mang thêm chi tiết về vấn đề. Có thể chạy đến nhiều dòng.
Gợi ý: Một đề xuất tùy chọn phải làm gì về vấn đề. Điều này nhằm khác với chi tiết ở chỗ nó cung cấp lời khuyên (có khả năng kèo bóng đá hom nay phù hợp) thay vì sự thật khó khăn.
Một chuỗi chứa số nguyên thập phân cho biết vị trí con trỏ lỗi làm chỉ mục vào chuỗi câu kèo bóng đá hom nay gốc. Ký tự đầu tiên có chỉ số 1 và các vị trí được đo bằng các ký tự không phải byte.
Điều này được xác định giống nhưpg_diag_statement_poseitionTrường, nhưng nó được sử dụng khi vị trí con trỏ đề cập đến một kèo bóng đá hom nay được tạo bên trong thay vì kèo bóng đá hom nay được gửi bởi máy khách. ThePG_DIAG_INTERNAL_QUERYTrường sẽ luôn xuất hiện khi trường này xuất hiện.
Văn bản của một kèo bóng đá hom nay không thành công trong nội bộ. Ví dụ, đây có thể là một truy vấn SQL do chức năng PL/PGSQL phát hành.
Một dấu hiệu của bối cảnh xảy ra lỗi. Hiện tại điều này bao gồm một dấu vết Call Stack của kèo bóng đá hom nay chức năng ngôn ngữ thủ tục hoạt động và kèo bóng đá hom nay truy vấn được tạo trong nội bộ.
Nếu lỗi được liên kết với một đối tượng cơ sở dữ liệu cụ thể, tên của lược đồ chứa đối tượng đó, nếu có.
Nếu lỗi được liên kết với một bảng cụ thể, tên của bảng. (Tham khảo trường Tên lược đồ cho tên của lược đồ bảng.)
Nếu lỗi được liên kết với một cột bảng cụ thể, tên của cột. (Tham khảo Lược đồ và kèo bóng đá hom nay trường tên bảng để xác định bảng.)
Nếu lỗi được liên kết với một loại dữ liệu cụ thể, tên của kiểu dữ liệu. (Tham khảo trường Tên lược đồ cho tên của lược đồ loại dữ liệu.)
Nếu lỗi được liên kết với một ràng buộc cụ thể, tên của ràng buộc. Tham khảo kèo bóng đá hom nay trường được liệt kê ở trên cho bảng hoặc miền liên quan.
Tên tệp của vị trí mã nguồn nơi báo cáo lỗi.
Số dòng của vị trí mã nguồn nơi báo cáo lỗi.
Tên của chức năng mã nguồn báo cáo lỗi.
Lưu ý:kèo bóng đá hom nay trường cho tên lược đồ, tên bảng, tên cột, tên loại dữ liệu và tên ràng buộc chỉ được cung cấp cho một số loại lỗi giới hạn; nhìn thấyPhụ lục A. kèo bóng đá hom nay cho rằng sự hiện diện của bất kỳ trường nào trong số này đảm bảo sự hiện diện của trường khác.
Khách hàng chịu trách nhiệm định dạng thông tin hiển thị để đáp ứng nhu cầu của nó; Đặc biệt nó nên phá vỡ kèo bóng đá hom nay hàng dài khi cần thiết.
Lỗi được tạo bên tronglibpqsẽ có mức độ nghiêm trọng và thông điệp chính, nhưng thường kèo bóng đá hom nay có trường nào khác. Lỗi được trả về bởi máy chủ Pre-3.0 Protocol sẽ bao gồm mức độ nghiêm trọng và tin nhắn chính và đôi khi là một thông báo chi tiết, nhưng kèo bóng đá hom nay có trường nào khác.
Lưu ý rằng kèo bóng đá hom nay trường lỗi chỉ khả dụng từPGRESULTĐối tượng, kèo bóng đá hom nayPGConnĐối tượng; kèo bóng đá hom nay cópqerrorfield
function.
PQClear
Giải phóng bộ nhớ liên kết với APGRESULT. Mọi kết quả kèo bóng đá hom nay phải được giải phóng quaPQClear
Khi nó kèo bóng đá hom nay còn cần thiết nữa.
void pqClear (pgresult *res);
Bạn có thể giữPGRESULTĐối tượng xung quanh miễn là bạn cần nó; Nó không biến mất khi bạn đưa ra một kèo bóng đá hom nay mới, cũng như ngay cả khi bạn đóng kết nối.PQClear
. kèo bóng đá hom nay làm điều này sẽ dẫn đến rò rỉ bộ nhớ trong ứng dụng của bạn.
kèo bóng đá hom nay chức năng này được sử dụng để trích xuất thông tin từ APGRESULTĐối tượng đại diện cho kết quả truy vấn thành công (nghĩa là, một đối tượng có trạng tháiPGRES_TUDS_OKhoặcpgres_single_tuple). Chúng cũng có thể được sử dụng để trích xuất thông tin từ một hoạt động mô tả thành công: Kết quả của một mô tả có tất cả thông tin cột giống nhau mà việc thực hiện truy vấn thực tế sẽ cung cấp, nhưng nó kèo bóng đá hom nay có hàng.
PQNTUMPLES
Trả về số lượng hàng (bộ dữ liệu) trong kết quả truy vấn. (Lưu ý rằngpgresultĐối tượng bị giới hạn kèo bóng đá hom nay quáint_maxhàng, vì vậyintKết quả là đủ.)
int pqntuples (const pgresult *res);
PQNFields
Trả về số lượng cột (trường) trong mỗi hàng của kết quả truy vấn.
int pqnfields (const pgresult *res);
PQFNAME
Trả về tên cột được liên kết với số cột đã cho. Số cột bắt đầu ở 0. Người gọi kèo bóng đá hom nay được giải phóng trực tiếp kết quả.pgresultXử lý được chuyển choPQClear
.
char *pqfname (const pgresult *res,
nullđược trả về nếu số cột nằm ngoài phạm vi.
PQFNumber
Trả về số cột được liên kết với tên cột đã cho.
int pqfnumber (const pgresult *res,
-1 được trả về nếu tên đã cho kèo bóng đá hom nay khớp với bất kỳ cột nào.
Tên đã cho được đối xử như một định danh trong kèo bóng đá hom nay SQL, nghĩa là nó bị hạ thấp trừ khi được trích dẫn kép. Ví dụ: đưa ra kết quả truy vấn được tạo từ kèo bóng đá hom nay SQL:
Chọn 1 làm foo, 2 là "thanh";
Chúng tôi sẽ có kết quả:
pqfname (res, 0)foopqfname (res, 1)Barpqfnumber (res, "foo")0pqfnumber (res, "foo")0pqfnumber (res, "bar")-1pqfnumber (res, "\" bar \ "")1
PQFTable
Trả về OID của bảng mà từ đó cột đã cho được lấy. Số cột bắt đầu ở 0.
oid pqftable (const pgresult *res,
kèo bóng đá hom nay hợp lệđược trả về nếu số cột nằm ngoài phạm vi hoặc nếu cột được chỉ định kèo bóng đá hom nay phải là tham chiếu đơn giản đến cột bảng hoặc khi sử dụng giao thức Pre-3.0. Bạn có thể truy vấn bảng hệ thốngpg_ classĐể xác định chính xác bảng nào được tham chiếu.
LoạiOIDvà hằng sốkèo bóng đá hom nay hợp lệsẽ được xác định khi bạn bao gồmlibpqTệp tiêu đề. Cả hai sẽ là một loại số nguyên.
pqftablecol
Trả về số cột (trong bảng của nó) của cột tạo thành cột Kết quả truy vấn được chỉ định. Số cột truy vấn-result bắt đầu ở 0, nhưng kèo bóng đá hom nay cột bảng có số khác.
int pqftablecol (const pgresult *res,
Zero được trả về nếu số cột nằm ngoài phạm vi hoặc nếu cột được chỉ định kèo bóng đá hom nay phải là tham chiếu đơn giản đến cột bảng hoặc khi sử dụng giao thức Pre-3.0.
PQFFormat
Trả về mã định dạng biểu thị định dạng của cột đã cho. Số cột bắt đầu ở 0.
int pqfformat (const pgresult *res,
Mã định dạng Zero biểu thị biểu diễn dữ liệu văn bản, trong khi mã định dạng một biểu thị nhị phân. (kèo bóng đá hom nay mã khác được dành cho định nghĩa trong tương lai.)
PQFTYPE
Trả về kiểu dữ liệu được liên kết với số cột đã cho. Số nguyên được trả về là số OID nội bộ của loại.
oid pqfttype (const pgresult *res,
Bạn có thể truy vấn bảng hệ thốngPG_TYPEĐể có được tên và thuộc tính của kèo bóng đá hom nay loại dữ liệu khác nhau. TheoidS của kèo bóng đá hom nay loại dữ liệu tích hợp được xác định trong tệpsrc/bao gồm/catalog/pg_type.hTrong cây nguồn.
PQFMOD
Trả về bộ sửa đổi loại của cột được liên kết với số cột đã cho. Số cột bắt đầu ở 0.
int pqfmod (const pgresult *res,
Giải thích kèo bóng đá hom nay giá trị sửa đổi là cụ thể loại; Chúng thường chỉ ra giới hạn độ chính xác hoặc kích thước."kèo bóng đá hom nay có thông tin". Hầu hết kèo bóng đá hom nay loại dữ liệu không sử dụng bộ sửa đổi, trong trường hợp đó, giá trị luôn luôn -1.
pqfsize
Trả về kích thước theo byte của cột được liên kết với số cột đã cho. Số cột bắt đầu ở 0.
int pqfsize (const pgresult *res,
pqfsize
Trả về kèo bóng đá hom nay gian được phân bổ cho cột này trong một hàng cơ sở dữ liệu, nói cách khác, kích thước của biểu diễn bên trong của máy chủ của kiểu dữ liệu. (Theo đó, nó kèo bóng đá hom nay thực sự hữu ích cho khách hàng.) Một giá trị âm cho biết loại dữ liệu có độ dài thay đổi.
PQBinaryTuples
Trả về 1 nếuPGRESULTChứa dữ liệu nhị phân và 0 nếu nó chứa dữ liệu văn bản.
int pqbinarytuples (const pgresult *res);
Hàm này được kèo bóng đá hom nay dùng nữa (ngoại trừ việc sử dụng nó liên quan đếnCopy), bởi vì nó có thể cho mộtPGRESULTĐể chứa dữ liệu văn bản trong một số cột và dữ liệu nhị phân trong kèo bóng đá hom nay cột khác.PQFFORMAT
được ưu tiên.PQBinaryTuples
Chỉ trả về 1 nếu tất cả kèo bóng đá hom nay cột của kết quả là nhị phân (định dạng 1).
PQGetValue
Trả về một giá trị trường duy nhất của một hàng của APGRESULT. kèo bóng đá hom nay số hàng và cột bắt đầu ở 0. Người gọi không được giải phóng trực tiếp kết quả.pgresultXử lý được chuyển choPQClear
.
Char *pqgetValue (const pgresult *res,
Đối với dữ liệu ở định dạng văn bản, giá trị được trả về bởiPQGetValue
là biểu diễn chuỗi ký tự kết thúc của giá trị trường. Đối với dữ liệu ở định dạng nhị phân, giá trị nằm trong biểu diễn nhị phân được xác định bởi kiểu dữ liệutypsend
vàTyPreceive
chức năng. .
Một chuỗi trống được trả về nếu giá trị trường là null. Nhìn thấyPQGetisNull
Để phân biệt kèo bóng đá hom nay giá trị null với kèo bóng đá hom nay giá trị chuỗi trống.
Con trỏ được trả về bởiPQGetValue
Điểm để lưu trữ là một phần củaPGRESULTCấu trúc. Người ta kèo bóng đá hom nay nên sửa đổi dữ liệu mà nó trỏ đến và người ta phải sao chép rõ ràng dữ liệu vào bộ lưu trữ khác nếu nó được sử dụng qua vòng đời củapgresultCấu trúc chính nó.
PQGetIsNull
Kiểm tra một trường cho giá trị null. kèo bóng đá hom nay số hàng và cột bắt đầu ở 0.
int pqgetisnull (const pgresult *res,
Hàm này trả về 1 nếu trường là null và 0 nếu nó chứa giá trị kèo bóng đá hom nay null. (Lưu ý rằngPQGetValue
Sẽ trả về một chuỗi trống, kèo bóng đá hom nay phải là một con trỏ null, cho một trường null.)
PQGetLpm
Trả về độ dài thực tế của giá trị trường tính bằng byte. kèo bóng đá hom nay số hàng và cột bắt đầu ở 0.
int pqetlength (const pgresult *res,
Đây là độ dài dữ liệu thực tế cho giá trị dữ liệu cụ thể, nghĩa là kích thước của đối tượng được trỏ đến bởiPQGetValue
. Đối với định dạng dữ liệu văn bản, điều này giống nhưstrlen ()
. Đối với định dạng nhị phân, đây là thông tin cần thiết.kèo bóng đá hom naydựa vàopqfsize
Để có được độ dài dữ liệu thực tế.
pqnparams
Trả về số lượng tham số của câu kèo bóng đá hom nay đã chuẩn bị.
int pqnparams (const pgresult *res);
Hàm này chỉ hữu ích khi kiểm tra kết quả của. Đối với kèo bóng đá hom nay loại truy vấn khác, nó sẽ trả về 0.
PQParamType
Trả về kiểu dữ liệu của tham số câu kèo bóng đá hom nay được chỉ định. Số tham số bắt đầu ở 0.
oid pqparamtype (const pgresult *res, int param_number);
Hàm này chỉ hữu ích khi kiểm tra kết quả của. Đối với kèo bóng đá hom nay loại truy vấn khác, nó sẽ trả về 0.
PQPrint
In ra tất cả kèo bóng đá hom nay hàng và, tùy chọn, tên cột vào luồng đầu ra được chỉ định.
void pqprint (tệp *fout, / *luồng đầu ra * /
Hàm này trước đây được sử dụng bởiPSQLĐể in kết quả truy vấn, nhưng điều này kèo bóng đá hom nay còn xảy ra. Lưu ý rằng nó giả sử tất cả dữ liệu ở định dạng văn bản.
kèo bóng đá hom nay chức năng này được sử dụng để trích xuất thông tin khác từpgresultĐối tượng.
PQCMDSTATUS
Trả về thẻ trạng thái kèo bóng đá hom nay từ kèo bóng đá hom nay SQL đã tạoPGRESULT.
char *pqcmdstatus (pgresult *res);
Thông thường đây chỉ là tên của kèo bóng đá hom nay, nhưng nó có thể bao gồm dữ liệu bổ sung như số lượng hàng được xử lý. Người gọi không nên giải phóng kết quả trực tiếp.pgresultXử lý được chuyển choPQClear
.
PQCMDTUMPLES
Trả về số lượng hàng bị ảnh hưởng bởi kèo bóng đá hom nay SQL.
char *pqcmdtuples (pgresult *res);
Hàm này trả về một chuỗi chứa số lượng hàng bị ảnh hưởng bởiSQLCâu kèo bóng đá hom nay đã tạopgresult. Chức năng này chỉ có thể được sử dụng sau khi thực hiệnChọn, Tạo bảng dưới dạng, Chèn, Cập nhật, Xóa, Di chuyển, FetchhoặcCopycâu kèo bóng đá hom nay hoặc mộtthực thicủa một truy vấn đã chuẩn bị có chứaChèn, Cập nhậthoặcXóaTuyên bố. Nếu kèo bóng đá hom nay đã tạoPGRESULTlà bất cứ điều gì khác,PQCMDTUMPLES
Trả về một chuỗi trống. Người gọi kèo bóng đá hom nay nên giải phóng giá trị trả về trực tiếp.PGRESULTXử lý được chuyển choPQClear
.
PQOIDVALUE
Trả về OID của hàng được chèn, nếuSQLkèo bóng đá hom nay làChènChèn chính xác một hàng vào một bảng có OID hoặc Athực thicủa một truy vấn đã chuẩn bị có chứa phù hợpChènTuyên bố. Nếu kèo bóng đá hom nay, chức năng này trả vềkèo bóng đá hom nay hợp lệ. Chức năng này cũng sẽ trở lạikèo bóng đá hom nay hợp lệNếu bảng bị ảnh hưởng bởiChènCâu kèo bóng đá hom nay không chứa OIDS.
oid pqoidValue (const pgresult *res);
PQOIDSTATUS
Hàm này kèo bóng đá hom nay được ủng hộPQOIDVALUE
và kèo bóng đá hom nay an toàn cho luồng. Nó trả về một chuỗi với oid của hàng được chèn, trong khiPQOIDVALUE
Trả về giá trị OID.
char *pqoidstatus (const pgresult *res);
pqescapeliteral
char *pqescapeliteral (pgconn *Conn, const char *str, size_t length);
pqescapeliteral
thoát một chuỗi để sử dụng trong kèo bóng đá hom nay SQL. Điều này rất hữu ích khi chèn các giá trị dữ liệu dưới dạng hằng số theo nghĩa đen trong các kèo bóng đá hom nay SQL.pqescapeliteral
Thực hiện thao tác này.
pqescapeliteral
Trả về phiên bản thoát củastrTham số trong bộ nhớ được phân bổ vớimalloc ()
. Bộ nhớ này nên được giải phóng bằng cách sử dụngpqfreemem ()
Khi kết quả kèo bóng đá hom nay còn cần thiết. kèo bóng đá hom nay cần phải tính một byte bằng 0 và kèo bóng đá hom nay nên được tính vàoLEGN. (Nếu tìm thấy một byte chấm dứt bằng kèo bóng đá hom nay trướcLEGNbyte được xử lý,pqescapeliteral
dừng ở số 0; Hành vi như vậy giống nhưstrncpy
.) Chuỗi trả về có tất cả kèo bóng đá hom nay ký tự đặc biệt được thay thế để chúng có thể được xử lý đúng cách bởiPostgreSQLTrình phân tích cú pháp theo nghĩa đen. Một byte chấm dứt cũng được thêm vào.POSTGRESQLChuỗi chữ được bao gồm trong chuỗi kết quả.
ON ERROR,pqescapeliteral
returnnullvà một thông báo phù hợp được lưu trữ trongConnĐối tượng.
Tip:Điều đặc biệt quan trọng là phải trốn thoát thích hợp khi xử lý kèo bóng đá hom nay chuỗi nhận được từ một nguồn không đáng tin cậy. Nếu không thì có rủi ro bảo mật: Bạn dễ bị tổn thương với"SQL tiêm"Các cuộc tấn công trong đó các kèo bóng đá hom nay SQL không mong muốn được đưa vào cơ sở dữ liệu của bạn.
Lưu ý rằng kèo bóng đá hom nay cần thiết cũng kèo bóng đá hom nay chính xác để thoát khi giá trị dữ liệu được truyền dưới dạng tham số riêng biệt trongPQExecParams
hoặc kèo bóng đá hom nay thói quen anh chị em của nó.
pqescapeidentifier
58341_58414
pqescapentifier
thoát một chuỗi để sử dụng làm định danh SQL, chẳng hạn như bảng, cột hoặc tên chức năng. Điều này rất hữu ích khi mã định danh do người dùng cung cấp có thể chứa kèo bóng đá hom nay ký tự đặc biệt mà nếu không sẽ không được giải thích là một phần của định danh bởi trình phân tích cú pháp SQL hoặc khi định danh có thể chứa kèo bóng đá hom nay ký tự trường hợp trên có trường hợp nên được bảo quản.
pqescapeidentifier
Trả về phiên bản củastrtham số thoát ra như một định danh SQL trong bộ nhớ được phân bổ vớimalloc ()
. Bộ nhớ này phải được giải phóng bằng cách sử dụngpqfreemem ()
Khi kết quả kèo bóng đá hom nay còn cần thiết. kèo bóng đá hom nay cần phải tính một byte bằng 0 và kèo bóng đá hom nay nên được tính vàoLEGN. (Nếu tìm thấy một byte chấm dứt bằng kèo bóng đá hom nay trướclengthbyte được xử lý,pqescapeidentifier
dừng ở số 0; Hành vi như vậy giống nhưstrncpy
.) Chuỗi trả về có tất cả kèo bóng đá hom nay ký tự đặc biệt được thay thế để nó được xử lý đúng như một định danh SQL. Một byte chấm dứt cũng được thêm vào.
ON Lỗi,pqescapentifier
returnnullvà một thông điệp phù hợp được lưu trữ trongConnĐối tượng.
Tip:Như với kèo bóng đá hom nay chuỗi chữ, để ngăn chặn kèo bóng đá hom nay cuộc tấn công tiêm SQL, số nhận dạng SQL phải được thoát khi chúng được nhận từ một nguồn không đáng tin
pqescapestringConn
size_t pqescapestringconn (pgconn *Conn,
pqescapestringConn
Escapes Chuỗi nghĩa đen, giống nhưpqescapeliteral
. kèo bóng đá hom nay giống nhưpqescapeliteral
, người gọi có trách nhiệm cung cấp bộ đệm có kích thước phù hợp. Hơn nữa,pqescapestringConn
Không tạo ra kèo bóng đá hom nay trích dẫn đơn phải bao quanhPostgreSQLChuỗi chữ; Chúng nên được cung cấp trong kèo bóng đá hom nay SQL rằng kết quả được chèn vào.từchỉ vào ký tự đầu tiên của chuỗi được thoát ra vàLEGNTham số cung cấp số lượng byte trong chuỗi này. kèo bóng đá hom nay cần phải tính một byte bằng 0 và kèo bóng đá hom nay nên được tính vàoLEGN. (Nếu tìm thấy một byte chấm dứt bằng kèo bóng đá hom nay trướcLEGNbyte được xử lý,pqescapestringConn
dừng ở số 0; Hành vi như vậy giống nhưstrncpy
.)đếnsẽ chỉ vào bộ đệm có thể giữ ít nhất một byte nữa so với giá trị củaLEGN, nếu kèo bóng đá hom nay thì hành vi kèo bóng đá hom nay được xác định. Hành vi cũng kèo bóng đá hom nay được xác định nếuđếnvàtừChuỗi chồng chéo.
NếuERRORtham số kèo bóng đá hom nay phải lànull, sau đó*Lỗiđược đặt thành 0 khi thành công, không có lỗi. Hiện tại kèo bóng đá hom nay điều kiện lỗi duy nhất có thể liên quan đến mã hóa đa không hợp lệ trong chuỗi nguồn.ConnĐối tượng, có hay kèo bóng đá hom nayERRORlànull.
pqescapestringConn
Trả về số byte được viết thànhđến, kèo bóng đá hom nay bao gồm việc chấm dứt byte bằng kèo bóng đá hom nay.
pqescapestring
pqescapestring
là phiên bản cũ hơn, kèo bóng đá hom nay dùng nữa củapqescapestringConn
.
size_t pqescapestring (char *to, const char *từ, size_t length);
Sự khác biệt duy nhất so vớipqescapestringConn
làpqescapestring
kèo bóng đá hom nay lấyPGConnhoặcERRORtham số. Bởi vì điều này, nó không thể điều chỉnh hành vi của nó tùy thuộc vào kèo bóng đá hom nay thuộc tính kết nối (chẳng hạn như mã hóa ký tự) và do đóNó có thể cho kết quả sai. Ngoài ra, nó không có cách nào để báo cáo kèo bóng đá hom nay điều kiện lỗi.
pqescapestring
Có thể được sử dụng một cách an toàn trong kèo bóng đá hom nay chương trình khách hàng chỉ làm việc với mộtPostgreSQLKết nối tại một thời điểm (trong trường hợp này nó có thể tìm ra những gì nó cần biết"Phía sau hậu trường"). Trong kèo bóng đá hom nay bối cảnh khác, đó là một mối nguy hiểm bảo mật và nên tránh có lợi chopqescapestringConn
.
pqescapyteaconn
thoát dữ liệu nhị phân để sử dụng trong kèo bóng đá hom nay SQL với loạibytea. Như vớipqescapestringConn
, Điều này chỉ được sử dụng khi chèn dữ liệu trực tiếp vào chuỗi kèo bóng đá hom nay SQL.
Char kèo bóng đá hom nay dấu *pqescapyteaconn (PGConn *Conn,
Giá trị byte nhất định phải được thoát khi được sử dụng như một phần của Abyteatheo nghĩa đen trong mộtSQLcâu kèo bóng đá hom nay.pqescapyteaconn
Escapes byte bằng cách sử dụng mã hóa hex hoặc thoát khỏi sự ngược. Nhìn thấyPhần 8.4Để biết thêm thông tin.
Thetừtham số chỉ vào byte đầu tiên của chuỗi sẽ được thoát ra vàfrom_lengthTham số cung cấp số lượng byte trong chuỗi nhị phân này. (Một byte kết thúc bằng kèo bóng đá hom nay là kèo bóng đá hom nay cần thiết cũng như kèo bóng đá hom nay được tính.)to_lengthTham số trỏ đến một biến sẽ giữ độ dài chuỗi thoát ra kết quả. Độ dài chuỗi kết quả này bao gồm kết thúc bằng 0 byte của kết quả.
pqescapyteaconn
Trả về phiên bản thoát củatừChuỗi nhị phân tham số trong bộ nhớ được phân bổ vớimalloc ()
. Bộ nhớ này nên được giải phóng bằng cách sử dụngpqfreemem ()
Khi kết quả không còn cần thiết. Chuỗi trả về có tất cả kèo bóng đá hom nay ký tự đặc biệt được thay thế để chúng có thể được xử lý đúng cách bởiPOSTGRESQLTrình phân tích cú pháp theo nghĩa đen vàbyteaHàm đầu vào. Một byte chấm dứt cũng được thêm vào.PostgreSQLChuỗi chữ kèo bóng đá hom nay phải là một phần của chuỗi kết quả.
Khi lỗi, một con trỏ null được trả về và thông báo lỗi phù hợp được lưu trữ trongConnĐối tượng. Hiện tại, lỗi duy nhất có thể là kèo bóng đá hom nay đủ bộ nhớ cho chuỗi kết quả.
pqescapytea
pqescapytea
là phiên bản cũ hơn, kèo bóng đá hom nay dùng nữa củapqescapyteaconn
.
Char kèo bóng đá hom nay dấu *pqescapytea (const kèo bóng đá hom nay dấu char *từ,
Sự khác biệt duy nhất so vớipqescapyteaconn
làpqescapytea
kèo bóng đá hom nay lấyPGConnTham số. Vì điều này,pqescapytea
Chỉ có thể được sử dụng một cách an toàn trong kèo bóng đá hom nay chương trình khách hàng sử dụng mộtPostgreSQLKết nối tại một thời điểm (trong trường hợp này nó có thể tìm ra những gì nó cần biết"Phía sau hậu trường"). NóCó thể đưa ra kết quả saiNếu được sử dụng trong kèo bóng đá hom nay chương trình sử dụng nhiều kết nối cơ sở dữ liệu (sử dụngpqescapyteaconn
Trong những trường hợp như vậy).
PQUNESCAPHERTEA
Chuyển đổi biểu diễn chuỗi của dữ liệu nhị phân thành dữ liệu nhị phân - ngược lạipqescapytea
. Điều này là cần thiết khi lấy lạibyteaDữ liệu ở định dạng văn bản, nhưng kèo bóng đá hom nay phải khi truy xuất nó ở định dạng nhị phân.
67680_67759
Thetừtham số trỏ vào một chuỗi như có thể được trả về bởiPQGetValue
Khi được áp dụng cho AbyteaCột.PQUNESCAPHERTEA
Chuyển đổi biểu diễn chuỗi này thành biểu diễn nhị phân của nó. Nó trả về một con trỏ cho bộ đệm được phân bổ vớimalloc ()
hoặcnulltrên lỗi và đặt kích thước của bộ đệm vàoto_length. Kết quả phải được giải phóng bằng cách sử dụngPQFreemem
Khi nó kèo bóng đá hom nay còn cần thiết nữa.
Chuyển đổi này kèo bóng đá hom nay chính xác là nghịch đảo củapqescapytea
, vì chuỗi dự kiến sẽ là"Escaped"Khi nhận được từPQGetValue
. Cụ thể, điều này có nghĩa là kèo bóng đá hom nay cần xem xét trích dẫn chuỗi, và vì vậy kèo bóng đá hom nay cần phảiPGConntham số.