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 kèo bóng đá cúp c2 đượ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/7.3/7.2/7.1

32.3.Chức năng thực thi kèo bóng đá cúp c2#

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 đá cúp c2 SQL.

32.3.1.Chức kèo bóng đá cúp c2 chính#

PQEXEC #

gửi kèo bóng đá cúp c2 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ả về 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 đá cúp c2 đến máy chủ.PQResultstatusHà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 đá cúp c2 lỗi đó.

Chuỗi kèo bóng đá cúp c2 có thể bao gồm nhiều kèo bóng đá cúp c2 SQL (được phân tách bằng dấu chấm phẩy). Nhiều truy vấn được gửi trong mộtPQEXECcuộc gọi được xử lý trong kèo bóng đá cúp c2 giao dịch, trừ khi có rõ ràngbắt đầu/cam kếtCác kèo bóng đá cúp c2 được bao gồm trong chuỗi truy vấn để chia nó thành nhiều giao dịch. (Nhìn thấyPhần 53.2.2.1Để biết thêm chi tiết về cách máy chủ xử lý kèo bóng đá cúp c2 chuỗi đa query.) Tuy nhiênpgresultCấu trúc chỉ mô tả kết quả của kèo bóng đá cúp c2 cuối cùng được thực thi từ chuỗi. Nếu một trong các kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 SQL.

PGRESULT *PQEXECPARAMS (PGConn *Conn,

PQExecParamsgiố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 đá cúp c2 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.

Các đối số chức kèo bóng đá cúp c2 là:

Conn

Đối tượng kết nối để gửi kèo bóng đá cúp c2 qua.

kèo bóng đá cúp c2

Chuỗi kèo bóng đá cúp c2 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 đá cúp c2 là$ 1,$ 2, v.v.

nparams

Số lượng tham số được cung cấp; nó là độ dài của kèo bóng đá cúp c2 mảngparamtypes [],paramValues ​​[],paramlengths []paramformats []. (Con trỏ mảng có thể lànullKhiNPARAMSbằng kèo bóng đá cúp c2.)

paramtypes []

Chỉ định, bởi OID, kèo bóng đá cúp c2 loại dữ liệu được gán cho kèo bóng đá cúp c2 ký hiệu tham số. Nếu nhưparamtypesnullhoặc bất kỳ phần tử cụ thể nào trong mảng bằng kèo bóng đá cúp c2, máy chủ truyền 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 theo nghĩa đen chưa từng thấy.

paramValues ​​[]

Chỉ định các giá trị thực của các tham số. kèo bóng đá cúp c2 con trỏ null trong mảng này có nghĩa là tham số tương ứng là null;

paramlengths []

Chỉ định độ dài dữ liệu thực tế của kèo bóng đá cúp c2 tham số định dạng nhị phân. Nó bị bỏ qua cho kèo bóng đá cúp c2 tham số null và kèo bóng đá cúp c2 tham số định dạng văn bản.

paramformats []

Chỉ định xem các tham số có phải là văn bản hay kèo bóng đá cúp c2 (đặ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ả các tham số được coi là chuỗi văn bản.

kèo bóng đá cúp c2 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 đá cúp c2 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 ()src/backend/utils/adt/numeric.c :: numeric_recv ().

resultFormat

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 kèo bóng đá cúp c2 có điều khoản nào để có được các cột kết quả khác nhau ở các đị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ủaPQExecparamsOverPQEXEC19274_19416

kèo bóng đá cúp c2 giống nhưPQEXEC,PQExecparamsCho phép nhiều nhất một kèo bóng đá cúp c2 SQL trong chuỗi đã cho. .

Tip

Chỉ định các loại tham số thông qua OID là tẻ nhạt, đặc biệt nếu bạn kèo bóng đá cúp c2 thích các 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ó kèo bóng đá cúp c2 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 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 các 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 kèo bóng đá cúp c2 khớp loại cho bạn.

PQPrepare #

Đệ trình yêu cầu tạo câu kèo bóng đá cúp c2 đã chuẩn bị với các tham số đã cho và chờ hoàn thành.

pgresult *pqprepare (pgconn *Conn,

PQPrepareTạo một câu kèo bóng đá cúp c2 đã 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 đá cúp c2 được thực thi nhiều lần mà không bị phân tích cú pháp và được lên kế hoạch mỗi lần;Chuẩn bịĐể biết chi tiết.

Hàm tạo ra một câu kèo bóng đá cúp c2 đã chuẩn bị có tênstmtnametừTruy vấnChuỗi, phải chứa một kèo bóng đá cúp c2 SQL duy nhất.stmtnamecó thể""Để tạo một tuyên bố chưa được đặt tên, trong trường hợp đó, bất kỳ câu kèo bóng đá cúp c2 chưa được đặt tên nào đã có từ trước được tự động thay thế; Nếu không thì đó là một lỗi nếu tên câu kèo bóng đá cúp c2 đã đượ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 đá cúp c2 loại được chỉ định trước trong mảngparamtypes []. (Con trỏ mảng có thể lànullKhinparamsbằng kèo bóng đá cúp c2.)paramtypes []Chỉ định, bởi OID, kèo bóng đá cúp c2 loại dữ liệu được gán cho kèo bóng đá cúp c2 ký hiệu tham số. Nếu nhưparamtypesnullhoặc bất kỳ phần tử cụ thể nào trong mảng bằng 0, máy chủ gán kèo bóng đá cúp c2 loại dữ liệu cho ký hiệu tham số theo cùng kèo bóng đá cúp c2 cách nó sẽ làm cho kèo bóng đá cúp c2 chuỗi theo nghĩa đen chưa từng thấy. Ngoài ra, truy vấn có thể sử dụng các ký hiệu tham số có số cao hơnnparams; kèo bóng đá cúp c2 loại dữ liệu cũng sẽ được suy ra cho kèo bóng đá cúp c2 biểu tượng này.Đối với kèo bóng đá cúp c2 phương tiện để tìm hiểu các 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 đá cúp c2.pqerrormessageĐể biết thêm thông tin về kèo bóng đá cúp c2 lỗi đó.

Các câu kèo bóng đá cúp c2 được chuẩn bị để sử dụng vớiPQEXECPREPAREDcũng có thể được tạo bằng cách thực thi SQLChuẩn bịcâu kèo bóng đá cúp c2.

PQEXECPREPARED #

Gửi yêu cầu thực hiện câu kèo bóng đá cúp c2 đã chuẩn bị với các tham số đã cho và chờ kết quả.

PGRESULT *PQEXECPREPARED (PGConn *Conn,

PQEXECPREPAREDgiống nhưPQExecparams, nhưng kèo bóng đá cúp c2 sẽ được thực thi được chỉ định bằng cách đặt tên một câu kèo bóng đá cúp c2 đượ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 đá cúp c2 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.

kèo bóng đá cúp c2 tham số giống hệt vớiPQExecParams, ngoại trừ tên của câu kèo bóng đá cúp c2 đã 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 đá cúp c2 đã chuẩn bị được xác định khi nó được tạo).

#

Đệ trình yêu cầu lấy thông tin về câu kèo bóng đá cúp c2 đã 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 đá cúp c2 đã chuẩn bị trước đó.

stmtnamecó thể""hoặcnullĐể tham khảo câu kèo bóng đá cúp c2 không được đặt tên, nếu không nó phải là tên của một câu kèo bóng đá cúp c2 đã chuẩn bị hiện có. Về thành công, Apgresultvới trạng tháiPGRES_COMMAND_OKđược trả về. Các chức kèo bóng đá cúp c2pqnparamsPQParamTypecó 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 đá cúp c2 đã 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 đá cúp c2.

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.

28723_28792

PQDescriptePortalCho phép kèo bóng đá cúp c2 ứng dụng lấy thông tin về cổng thông tin được tạo trước đó. (libpqkèo bóng đá cúp c2 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 các thuộc tính của con trỏ được tạo bằngTuyên bố con trỏkèo bóng đá cúp c2 SQL.)

PortalNamecó thể""hoặcnullĐể tham khảo cổng thông tin kèo bóng đá cúp c2 tên, nếu kèo bóng đá cúp c2 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ề. Các chức kèo bóng đá cúp c2PQNFields,PQFNAME,PQFTYPE, v.v.pgresultĐể có được thông tin về kèo bóng đá cúp c2 cột kết quả (nếu có) của cổng thông tin.

PQClosePrepared #

Đệ trình yêu cầu đóng câu kèo bóng đá cúp c2 đã chuẩn bị được chỉ định và chờ hoàn thành.

PGRESULT *

PQClosePreparedCho phép một ứng dụng đóng một câu kèo bóng đá cúp c2 đã chuẩn bị trước đó. Đóng một câu kèo bóng đá cúp c2 phát hành tất cả các tài nguyên được liên kết của nó trên máy chủ và cho phép tên của nó được sử dụng lại.

stmtnamecó thể""hoặcnullĐể tham khảo câu kèo bóng đá cúp c2 không tên. Sẽ tốt nếu không có tuyên bố nào tồn tại với tên này, trong trường hợp đó, hoạt động là không có op.pgresultvới trạng tháiPGRES_COMMAND_OKđược trả về.

PQClosePortal #

Đệ trình yêu cầu đóng cổng thông tin được chỉ định và chờ hoàn thành.

pgresult *pqclosePortal (pgconn *Conn, const char *portalname);

PQClosePortalCho phép kèo bóng đá cúp c2 ứng dụng kích hoạt gần cổng thông tin được tạo trước đó. Đóng kèo bóng đá cúp c2 cổng thông tin phát hành tất cả các tài nguyên liên quan của nó trên máy chủ và cho phép tên của nó được sử dụng lại.libpqkèo bóng đá cúp c2 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 để đóng một con trỏ được tạo bằngTuyên bố con trỏkèo bóng đá cúp c2 SQL.)

PortalNamecó thể""hoặcnullĐể tham khảo cổng thông tin kèo bóng đá cúp c2 tên. Sẽ tốt nếu kèo bóng đá cúp c2 có cổng thông tin nào tồn tại với tên này, trong trường hợp đó, hoạt động kèo bóng đá cúp c2 có op.PGRESULTvới trạng tháiPGRES_COMMAND_OKđược trả về.

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 các chức kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2.

33630_33685

PQResultstatusCó thể trả về kèo bóng đá cúp c2 trong các giá trị sau:

pgres_empty_query #

Chuỗi được gửi đến máy chủ trống.

PGRES_COMMAND_OK #

Hoàn thành thành công kèo bóng đá cúp c2 trả về không có dữ liệu.

PGRES_TUDS_OK #

Hoàn thành thành công dữ liệu trả về kèo bóng đá cúp c2 (chẳng hạn như AChọnhoặcshow).

PGRES_COPY_OUT #

Sao chép lại (từ máy chủ)

PGRES_COPY_IN #

Sao chép (vào máy chủ) bắt đầu truyền dữ liệu.

pgres_bad_response #

Phản hồi của máy chủ kèo bóng đá cúp c2 được hiểu.

PGRES_NONFATAL_ERROR #

Một lỗi kèo bóng đá cúp c2 sinh (một thông báo hoặc cảnh báo) đã xảy ra.

PGRES_FATAL_ERROR #

Đã xảy ra lỗi nghiêm trọng.

PGRES_COPY_BOTH #

Sao chép vào/ra (đến và từ máy chủ) Truyền dữ liệ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 kèo bóng đá cúp c2 nên xảy ra trong các ứng dụng thông thường.

pgres_single_tuple #

Thepgresultchứa một kết quả duy nhất từ ​​kèo bóng đá cúp c2 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 32.6).

PGRES_TUDS_CHUNK #

Thepgresultchứa một số bộ kết quả từ kèo bóng đá cúp c2 hiện tại. Trạng thái này chỉ xảy ra khi chế độ chunked đã được chọn cho truy vấn (xemPhần 32.6). Số lượng các bộ dữ liệu sẽ kèo bóng đá cúp c2 vượt quá giới hạn được chuyển choPQSetchUnkedRowsMode.

PGRES_PIPELINE_SYNC #

ThePGRESULTđại diện cho điểm đồng bộ hóa ở chế độ đường ống, được yêu cầu bởipqpipelinesynchoặcPQSENDPIPELINESYNC. Trạng thái này chỉ xảy ra khi chế độ đường ống đã được chọn.

PGRES_PIPELINE_ABORTED #

Thepgresultđại diện cho kèo bóng đá cúp c2 đường ống đã nhận được lỗi từ máy chủ.PQGetResultphải được gọi nhiều lần và mỗi lần nó sẽ trả lại mã trạng thái này cho đến khi kết thúc đường ống hiện tại, tại thời điểm đó nó sẽ trả vềPGRES_PIPELINE_SYNCvà xử lý bình thường có thể tiếp tục.

Nếu trạng thái kết quả làPGRES_TUDS_OK,pgres_single_tuplehoặcPGRES_TUDS_CHUNK, sau đó kèo bóng đá cúp c2 hàm được mô tả dưới đây có thể được sử dụng để truy xuất kèo bóng đá cúp c2 hàng được trả về bởi truy vấn. Lưu ý rằng AChọnkèo bóng đá cúp c2 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 đá cúp c2 không bao giờ có thể trả lại hàng (ChènhoặcCập nhậtkèo bóng đá cúp c2 cóTrở vềmệnh đề, v.v.). kèo bóng đá cúp c2 phản hồi củapgres_empty_querycó thể chỉ ra kèo bóng đá cúp c2 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 đá cúp c2 bao giờ được trả về trực tiếp bởiPQEXEChoặc các chức kèo bóng đá cúp c2 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 32.13).

pqresstatus #

Chuyển đổi loại được liệt kê được trả về bởiPQResultstatusthành một hằng số chuỗi mô tả mã trạng thái. Người gọi kèo bóng đá cúp c2 nên giải phóng kết quả.

char *pqresstatus (trạng thái execstatusType);
pqresulterrormessage #

Trả về thông báo lỗi được liên kết với kèo bóng đá cúp c2 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 đá cúp c2 nên giải phóng kết quả trực tiếp.PGRESULTXử lý được chuyển choPQClear.

Ngay sau APQEXEChoặcPQGetResultCALL,pqerrormessage(trên kết nối) sẽ trả về cùng chuỗi vớipqresulterrormessage(về 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 đá cúp c2 hoạt động tiếp theo được thực hiện. Sử dụngpqresulterrormessageKhi bạn muốn biết trạng thái được liên kết với kèo bóng đá cúp c2 cụ thểpgresult; sử dụngpqerrormessageKhi bạn muốn biết trạng thái từ thao tác mới nhất trên kết nối.

pqresultverboseerrormessage #

Trả về kèo bóng đá cúp c2 phiên bản được định dạng lại của thông báo lỗi được liên kết với ApgresultĐối tượng.

Char *pqresultverboseerrormessage (const pgresult *res,

Trong kèo bóng đá cúp c2 số tình huống, khách hàng có thể muốn có được phiên bản chi tiết hơn của lỗi được báo cáo trước đó.pqresultverboseerrormessageĐịa chỉ nhu cầu này bằng cách tính toán thông báo sẽ được tạo bởipqresulterrormessage44294_44386PGRESULTđã được tạo ra. Nếupgresultkèo bóng đá cúp c2 phải là kết quả lỗi,Hồipgresult kèo bóng đá cúp c2 phải là kết quả lỗiKhănđược báo cáo thay thế. Chuỗi được trả về bao gồm kèo bóng đá cúp c2 dòng mới.

kèo bóng đá cúp c2 giống như hầu hết các chức năng khác để trích xuất dữ liệu từ APGRESULT, kết quả của hàm này là kèo bóng đá cúp c2 chuỗi mới được phân bổ. Người gọi phải giải phóng nó bằng cách sử dụngpqfreemem ()Khi chuỗi kèo bóng đá cúp c2 còn cần thiết.

Có thể trả lại null nếu kèo bóng đá cúp c2 có đủ bộ nhớ.

pqresulterrorfield #

Trả về kèo bóng đá cúp c2 trường riêng lẻ của báo cáo lỗi.

char *pqresulterrorfield (const pgresult *res, int fieldCode);

FieldCodelà kèo bóng đá cúp c2 định danh trường lỗi; Xem các biểu tượng được liệt kê bên dưới.nullđược trả về nếupgresultkèo bóng đá cúp c2 phải là một lỗi hoặc kết quả cảnh báo hoặc kèo bóng đá cúp c2 bao gồm trường được chỉ định. Giá trị trường thường sẽ kèo bóng đá cúp c2 bao gồm một dòng mới.pgresultXử lý được chuyển choPQClear.

Mã trường sau đây có sẵn:

pg_diag_severity #

Mức độ nghiêm trọng; Nội dung trường làERROR,FatalhoặcPanic(trong kèo bóng đá cúp c2 thông báo lỗi) hoặcCẢNH BÁO,Thông báo,Debug,INFOhoặclog(Trong kèo bóng đá cúp c2 thông báo thông báo) hoặc bản dịch cục bộ của kèo bóng đá cúp c2 trong số này. Luôn luôn có mặt.

pg_diag_severity_nonlocalized #

Mức độ nghiêm trọng; Nội dung trường làERROR,FatalhoặcPanic(trong kèo bóng đá cúp c2 thông báo lỗi) hoặcCảnh báo,Thông báo,DEBUG,INFOhoặclog(Trong kèo bóng đá cúp c2 thông báo thông báo). Điều này giống hệt vớipg_diag_severityTrường ngoại trừ các nội dung kèo bóng đá cúp c2 bao giờ được bản địa hóa. Điều này chỉ có trong các báo cáo được tạo bởiPOSTGRESQLPhiên bản 9.6 trở lên.

PG_DIAG_SQLSTATE #

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 đá cúp c2 thể bản địa hóa và luôn có mặt.

pg_diag_message_primary #

Thông báo lỗi có thể đọc được chính của con người (thường là kèo bóng đá cúp c2 dòng). Luôn luôn có mặt.

PG_DIAG_MESSAGE_DETAIL #

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.

PG_DIAG_MESSAGE_HINT #

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 đá cúp c2 phù hợp) thay vì sự thật khó khăn.

pg_diag_statement_poseition #

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 đá cúp c2 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 đá cúp c2 được tạo bên trong thay vì kèo bóng đá cúp c2 được gửi bởi máy khách. TheTrường sẽ luôn xuất hiện khi trường này xuất hiện.

PG_DIAG_INTERNAL_QUERY #

Văn bản của một kèo bóng đá cúp c2 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.

PG_DIAG_CONTEXT #

kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 dấu vết Call Stack của các chức năng ngôn ngữ thủ tục hoạt động và các truy vấn được tạo trong nội bộ.

pg_diag_schema_name #

Nếu lỗi được liên kết với kèo bóng đá cúp c2 đối tượng cơ sở dữ liệu cụ thể, tên của lược đồ chứa đối tượng đó, nếu có.

PG_DIAG_TABLE_NAME #

Nếu lỗi được liên kết với kèo bóng đá cúp c2 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.)

PG_DIAG_COLUMN_NAME #

Nếu lỗi được liên kết với kèo bóng đá cúp c2 cột bảng cụ thể, tên của cột. (Tham khảo Lược đồ và các trường tên bảng để xác định bảng.)

pg_diag_datatype_name #

Nếu lỗi được liên kết với kèo bóng đá cúp c2 kiểu 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.)

pg_diag_constraint_name #

Nếu lỗi được liên kết với kèo bóng đá cúp c2 ràng buộc cụ thể, tên của ràng buộc. Tham khảo các trường được liệt kê ở trên cho bảng hoặc miền liên quan.

PG_DIAG_SOURCE_FILE #

Tên tệp của vị trí mã nguồn nơi báo cáo lỗi.

pg_diag_source_line #

Số dòng của vị trí mã nguồn nơi báo cáo lỗi.

PG_DIAG_SOURCE_FUNCTION #

Tên của chức kèo bóng đá cúp c2 mã nguồn báo cáo lỗi.

Lưu ý

Các 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 kèo bóng đá cúp c2 số loại lỗi giới hạn; nhìn thấyPhụ lục A. kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 có trường nào khác.

Lưu ý rằng kèo bóng đá cúp c2 trường lỗi chỉ khả dụng từPGRESULTĐối tượng, kèo bóng đá cúp c2PGConnĐối tượng; kèo bóng đá cúp c2 cópqerrorfieldfunction.

PQClear #

Giải phóng bộ nhớ liên kết với APGRESULT. Mọi kết quả kèo bóng đá cúp c2 phải được giải phóng quaPQClearKhi nó kèo bóng đá cúp c2 còn cần thiết nữa.

void pqclear (pgresult *res);

Nếu đối số lànullCon trỏ, kèo bóng đá cúp c2 có hoạt động nào được thực hiện.

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 đá cúp c2 mới, cũng như ngay cả khi bạn đóng kết nối.PQClear. kèo bóng đá cúp c2 làm điều này sẽ dẫn đến rò rỉ bộ nhớ trong ứng dụng của bạn.

32.3.2.Truy xuất thông tin kết quả truy vấn#

Các chức kèo bóng đá cúp c2 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à, kèo bóng đá cúp c2 đối tượng có trạng tháiPGRES_TUDS_OK,pgres_single_tuplehoặcPGRES_TUDS_CHUNK). 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 đượ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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 phải là tham chiếu đơn giản đến cột bảng. 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 đá cúp c2 hợp lệsẽ được xác định khi bạn bao gồmlibpqTệp tiêu đề. Cả hai sẽ là kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 phải là tham chiếu đơn giản đến cột bảng.

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 kèo bóng đá cúp c2 biểu thị nhị phân. (Các 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 đá cúp c2 loại dữ liệu khác nhau. TheOIDS của kèo bóng đá cúp c2 loại dữ liệu tích hợp được xác định trong tệpDanh mục/pg_type_d.hTrongPostgreSQLCài đặt củaBao gồmThư mục.

PQFMOD #

Trả về công cụ 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 đá cúp c2 giá trị sửa đổi là cụ thể về 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 đá cúp c2 có thông tin. Hầu hết các loại dữ liệu kèo bóng đá cúp c2 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,

pqfsizeTrả về kèo bóng đá cúp c2 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 nội bộ của máy chủ của kiểu dữ liệu. (Theo đó, nó kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 được dùng nữa (ngoại trừ việc sử dụng nó liên quan đếnCopy), bởi vì nó có thể cho kèo bóng đá cúp c2pgresultĐể chứa dữ liệu văn bản trong kèo bóng đá cúp c2 số cột và dữ liệu nhị phân ở các cột khác.PQFFormatđược ưu tiên.PQBinaryTuplesChỉ trả về 1 nếu tất cả kèo bóng đá cúp c2 cột của kết quả là nhị phân (định dạng 1).

PQGetValue #

Trả về kèo bóng đá cúp c2 giá trị trường duy nhất của kèo bóng đá cúp c2 hàng của Apgresult. Các số hàng và cột bắt đầu ở 0. Người gọi kèo bóng đá cúp c2 đượ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ởiPQGetValuelà 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ệuTYPSENDTyPreceivechức kèo bóng đá cúp c2. .

kèo bóng đá cúp c2 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 đá cúp c2 giá trị null với kèo bóng đá cúp c2 giá trị chuỗi trống.

Con trỏ được trả về bởiPQGetValueĐiểm để lưu trữ là kèo bóng đá cúp c2 phần củaPGRESULTCấu trúc. Người ta kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 trường cho giá trị null. Các 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 đá cúp c2 null. (Lưu ý rằngPQGetValueSẽ trả về một chuỗi trống, kèo bóng đá cúp c2 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 đá cúp c2 số hàng và cột bắt đầu ở 0.

int PQGetLpm (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 chỉ ra 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 đá cúp c2dự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 đá cúp c2 đã 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 đá cúp c2 loại kết quả 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 đá cúp c2 đượ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 đá cúp c2 loại kết quả khác, nó sẽ trả về 0.

PQPrint #

In ra tất cả kèo bóng đá cúp c2 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 đá cúp c2 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.

32.3.3.Lấy thông tin kết quả khác#

Các chức kèo bóng đá cúp c2 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 đá cúp c2 từ kèo bóng đá cúp c2 SQL đã tạoPGRESULT.

char *pqcmdstatus (pgresult *res);

Thông thường đây chỉ là tên của kèo bóng đá cúp c2, 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 đá cúp c2 SQL.

char *pqcmdtuples (pgresult *res);

Hàm này trả về kèo bóng đá cúp c2 chuỗi chứa số lượng hàng bị ảnh hưởng bởiSQLCâu kèo bóng đá cúp c2 đã tạopgresult. Chức kèo bóng đá cúp c2 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,Merge,Di chuyển,FetchhoặcCopycâu kèo bóng đá cúp c2 hoặc mộtthực thicủa kèo bóng đá cúp c2 truy vấn đã chuẩn bị có chứaChèn,Cập nhật,XóahoặcMergeTuyên bố. Nếu kèo bóng đá cúp c2 đã tạoPGRESULTlà bất cứ điều gì khác,PQCMDTUMPLESTrả về một chuỗi trống. Người gọi kèo bóng đá cúp c2 nên giải phóng giá trị trả về trực tiếp.PGRESULTXử lý được chuyển choPQClear.

PQOIDVALUE #

Trả về OIDcủa hàng được chèn, nếuSQLkèo bóng đá cúp c2 làChènChèn chính xác kèo bóng đá cúp c2 hàng vào kèo bóng đá cúp c2 bảng có OID hoặc Athực thicủa kèo bóng đá cúp c2 truy vấn đã chuẩn bị có chứa phù hợpChènTuyên bố. Nếu kèo bóng đá cúp c2, chức năng này trả vềkèo bóng đá cúp c2 hợp lệ. Chức kèo bóng đá cúp c2 này cũng sẽ trở lạikèo bóng đá cúp c2 hợp lệNếu bảng bị ảnh hưởng bởiChènCâu kèo bóng đá cúp c2 không chứa OIDS.

oid pqoidValue (const pgresult *res);
PQOIDSTATUS #

Hàm này kèo bóng đá cúp c2 được ủng hộPQOIDVALUEvà kèo bóng đá cúp c2 an toàn cho luồng. Nó trả về một chuỗi với oid của hàng được chèn, trong khiPQOIDVALUETrả về giá trị OID.

Char *pqoidstatus (const pgresult *res);

32.3.4.Thoát khỏi chuỗi để đưa vào các kèo bóng đá cúp c2 SQL#

pqescapeliteral #
char *pqescapeliteral (pgconn *Conn, const char *str, size_t length);

pqescapeliteralthoát một chuỗi để sử dụng trong kèo bóng đá cúp c2 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 đá cúp c2 SQL.pqescapeliteralThực hiện thao tác này.

pqescapeliteralTrả 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 đá cúp c2 còn cần thiết. kèo bóng đá cúp c2 cần phải tính một byte bằng 0 và kèo bóng đá cúp c2 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 đá cúp c2 trướclengthbyte được xử lý,pqescapeliteraldừ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 đá cúp c2 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. kèo bóng đá cúp c2 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,pqescapeliteralreturnnullvà kèo bóng đá cúp c2 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ý các chuỗi nhận được từ một nguồn kèo bóng đá cúp c2 đáng tin cậy. Nếu kèo bóng đá cúp c2 thì có rủi ro bảo mật: Bạn dễ bị tổn thương vớiSQL tiêmCác cuộc tấn công trong đó các kèo bóng đá cúp c2 SQL không mong muốn được đưa vào cơ sở dữ liệu của bạn.

Lưu ý rằng nó kèo bóng đá cúp c2 cần thiết cũng kèo bóng đá cúp c2 chính xác để thoát ra khi giá trị dữ liệu được truyền dưới dạng tham số riêng biệt trongPQExecParamshoặc kèo bóng đá cúp c2 thói quen anh chị em của nó.

pqescapeidentifier #
82907_82982

pqescapeidentifierthoá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 các ký tự đặc biệt mà nếu kèo bóng đá cúp c2 sẽ kèo bóng đá cúp c2 đượ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 các ký tự trường hợp trên có trường hợp nên được bảo quản.

pqescapentifierTrả về phiên bản củastrtham số thoát ra như kèo bóng đá cúp c2 đị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 đá cúp c2 còn cần thiết. kèo bóng đá cúp c2 cần phải tính một byte bằng 0 và kèo bóng đá cúp c2 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 đá cúp c2 trướcLEGNbyte được xử lý,pqescapentifierdừng ở số 0; Hành vi như vậy giống nhưstrncpy.) Chuỗi trả về có tất cả các ký tự đặc biệt được thay thế để nó được xử lý đúng như kèo bóng đá cúp c2 định danh SQL. kèo bóng đá cúp c2 byte chấm dứt cũng được thêm vào.

ON ERROR,pqescapeidentifierreturnnullvà kèo bóng đá cúp c2 thông điệp phù hợp được lưu trữ trongConnĐối tượng.

Tip

Như với các chuỗi chữ, để ngăn chặn các cuộc tấn công tiêm SQL, số nhận dạng SQL phải được thoát ra khi chúng được nhận từ một nguồn kèo bóng đá cúp c2 đáng tin cậy.

pqescapestringConn #
size_t pqescapestringconn (pgconn *Conn,

pqescapestringConnthoát khỏi chuỗi chữ, giống nhưpqescapeliteral. kèo bóng đá cúp c2 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,pqescapestringConnkèo bóng đá cúp c2 tạo ra các trích dẫn đơn phải bao quanhPostgreSQLChuỗi chữ; Chúng nên được cung cấp trong kèo bóng đá cúp c2 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 đá cúp c2 cần phải tính một byte bằng 0 và kèo bóng đá cúp c2 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 đá cúp c2 trướcLEGNbyte được xử lý,pqescapestringConndừ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 kèo bóng đá cúp c2 byte nữa so với giá trị củaLEGN, nếu kèo bóng đá cúp c2 thì hành vi kèo bóng đá cúp c2 được xác định. Hành vi cũng kèo bóng đá cúp c2 được xác định nếuđếntừChuỗi chồng chéo.

NếuERRORtham số kèo bóng đá cúp c2 phảinull, sau đó*Lỗiđược đặt thành 0 khi thành công, kèo bóng đá cúp c2 có lỗi. Hiện tại các điều kiện lỗi duy nhất có thể liên quan đến mã hóa đa kèo bóng đá cúp c2 hợp lệ trong chuỗi nguồn.ConnĐối tượng, cho dù hay kèo bóng đá cúp c2ERRORnull.

pqescapestringConnTrả về số byte được viết thànhđến, kèo bóng đá cúp c2 bao gồm việc chấm dứt byte.

pqescapestring #

pqescapestringlà phiên bản cũ hơn, kèo bóng đá cúp c2 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ớipqescapestringConnpqescapestringkèo bóng đá cúp c2 lấyPGConnhoặcERRORtham số. Bởi vì điều này, nó kèo bóng đá cúp c2 thể điều chỉnh hành vi của nó tùy thuộc vào các 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ó kèo bóng đá cúp c2 có cách nào để báo cáo các điều kiện lỗi.

pqescapestringCó thể được sử dụng kèo bóng đá cúp c2 cách an toàn trong các chương trình khách hàng chỉ làm việc với kèo bóng đá cúp c2POSTGRESQLKết nối tại kèo bóng đá cúp c2 thời điểm (trong trường hợp này nó có thể tìm ra những gì nó cần biếtPhía sau hậu trườngKhăn). Trong các bối cảnh khác, đó là kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 SQL.

Char kèo bóng đá cúp c2 dấu *pqescapyteaconn (PGConn *Conn,

Giá trị byte nhất định phải được thoát khi được sử dụng như kèo bóng đá cúp c2 phần của Abyteatheo nghĩa đen trong kèo bóng đá cúp c2SQLcâu kèo bóng đá cúp c2.pqescapyteaconnEscapes 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 đá cúp c2 là kèo bóng đá cúp c2 cần thiết cũng như kèo bóng đá cúp c2 được tính.)to_lengthTham số trỏ đến kèo bóng đá cúp c2 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ả.

pqescapyteaconnTrả 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ả kèo bóng đá cúp c2 còn cần thiết. Chuỗi trả về có tất cả các 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. kèo bóng đá cúp c2 byte chấm dứt cũng được thêm vào.POSTGRESQLChuỗi chữ kèo bóng đá cúp c2 phải là một phần của chuỗi kết quả.

Khi lỗi, kèo bóng đá cúp c2 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 đá cúp c2 đủ bộ nhớ cho chuỗi kết quả.

pqescapytea #

pqescapytealà phiên bản cũ hơn, kèo bóng đá cúp c2 dùng nữa củapqescapyteaconn.

Char kèo bóng đá cúp c2 dấu *pqescapytea (const kèo bóng đá cúp c2 dấu char *từ,

Sự khác biệt duy nhất so vớipqescapyteaconnpqescapyteakèo bóng đá cúp c2 lấyPGConntham số. Vì điều này,pqescapyteaChỉ có thể được sử dụng kèo bóng đá cúp c2 cách an toàn trong các chương trình khách hàng sử dụng kèo bóng đá cúp c2PostgreSQLKết nối tại kèo bóng đá cúp c2 thời điểm (trong trường hợp này nó có thể tìm ra những gì nó cần biếtPhía sau hậu trườngKhăn). Nócó thể đưa ra kết quả saiNếu được sử dụng trong kèo bóng đá cúp c2 chương trình sử dụng nhiều kết nối cơ sở dữ liệu (sử dụngpqescapyteaconnTrong những trường hợp như vậy).

PQUNESCAPHERTEA #

Chuyển đổi biểu diễn chuỗi 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 đá cúp c2 phải khi truy xuất nó ở định dạng nhị phân.

95399_95480

ThetừTham số trỏ đến kèo bóng đá cúp c2 chuỗi như có thể được trả về bởiPQGetValueKhi được áp dụng cho Abyteacột.PQUNESCAPHERTEAChuyể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ề kèo bóng đá cúp c2 con trỏ cho bộ đệm được phân bổ vớimalloc ()hoặcnullKhi 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ụngpqfreememKhi nó kèo bóng đá cúp c2 còn cần thiết nữa.

Chuyển đổi này kèo bóng đá cúp c2 chính xác là nghịch đảo củapqescapytea, vì chuỗi dự kiến ​​sẽ làEscapedKhănKhi nhận được từPQGetValue. Cụ thể, điều này có nghĩa là kèo bóng đá cúp c2 cần xem xét trích dẫn chuỗi, và vì vậy kèo bóng đá cúp c2 cần phảiPGConntham số.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu kèo bóng đá cúp c2 chính xác, kèo bóng đá cúp c2 phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.