Một khi kết nối với máy chủ cơ sở dữ liệu đã thành công được thiết lập, các chức năng được mô tả ở đây được sử dụng để thực hiện SQL kèo bóng đá c1 và lệnh.
PQEXECGửi kèo bóng đá c1 choPostgresvà chờ đợi kết quả.
PGRESULT *PQEXEC (PGCONN *Conn, const char *kèo bóng đá c1);Trả về một con trỏ pgresult 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 bộ nhớ ngoài các điều kiện hoặc các lỗi nghiêm trọng như không có khả năng gửi kèo bóng đá c1 đến phụ trợ. Nếu một null được trả lại, nó nên được đối xử như Kết quả PGRES_FATAL_ERROR. Sử dụng pqerrormessage để có được nhiều hơn thông tin về lỗi.
Thekèo bóng đá c1Cấu trúc đóng gói kết quả kèo bóng đá c1 được trả về bởi phần phụ trợ.libpqlập trình viên ứng dụng nên cẩn thận Duy trì sự trừu tượng của pgresult. Sử dụng các chức năng của người kèo bóng đá c1 cập bên dưới Để có được nội dung của pgresult. Tránh trực tiếp tham khảo Các lĩnh vực của cấu trúc pgresult vì chúng có thể thay đổi trong tương lai. (Bắt đầu trongPostgresPhát hành 6.4, Định nghĩa của Struct Pgresult thậm chí không được cung cấp trong libpq-fe.h. Nếu bạn có mã cũ kèo bóng đá c1 cập trực tiếp vào các trường pgresult, bạn có thể tiếp tục sử dụng nó bằng cách bao gồm cả libpq-int.h nữa, nhưng bạn được khuyến khích sửa mã sớm.)
PQResultstatusTrả về kết quả trạng thái của kèo bóng đá c1. PQResultstatus có thể trả lại một trong những Giá trị sau:
pgres_empty_query, PGRES_COMMAND_OK, / * kèo bóng đá c1 là lệnh trả về không có dữ liệu * / Pgres_tuples_ok, / * kèo bóng đá c1 trả về thành công các bộ dữ liệu * / / PGRES_COPY_OUT, / * Sao chép (từ máy chủ) Truyền dữ liệu bắt đầu * / / Pgres_copy_in, / * Sao chép trong (sang máy chủ) bắt đầu truyền dữ liệu * / / PGRES_BAD_RESPONSE, / * đã nhận được phản hồi bất ngờ * / / Pgres_nonfatal_error, Pgres_fatal_errorNếu trạng thái kết quả là pgres_tuples_ok, thì các thói quen được mô tả dưới đây có thể được sử dụng để truy xuất các bộ dữ liệu được trả về bởi kèo bóng đá c1. Lưu ý rằng một lựa chọn xảy ra để truy xuất các bộ dữ liệu không Vẫn hiển thị pgres_tuples_ok. Pgres_command_ok là cho các lệnh không bao giờ có thể trả lại bộ dữ liệu.
pqresulterrormessageTrả về thông báo lỗi liên quan đến kèo bóng đá c1 hoặc chuỗi trống nếu không có lỗi.
const char *pqresulterrormessage (kèo bóng đá c1 *res);Ngay sau cuộc gọi PQEXEC hoặc PQGetResult, Pqerrormessage (trên kết nối) sẽ trả về cùng một chuỗi như Pqresulterrormessage (về kết quả). Tuy nhiên, một pgresult sẽ Giữ lại thông báo lỗi cho đến khi bị phá hủy, trong khi kết nối Thông báo lỗi sẽ thay đổi khi kèo bóng đá c1 hoạt động tiếp theo được thực hiện. Sử dụng Pqresulterrormessage khi bạn muốn biết trạng thái được liên kết với một pgresult cụ thể; sử dụng pqerrormessage 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.
PQNTUMPLESTrả về số lượng Tuples (phiên bản) trong kết quả kèo bóng đá c1.
int pqntuples (kèo bóng đá c1 *res);
PQNFieldsTrả về số lượng của Các trường (thuộc tính) trong mỗi bộ của kết quả kèo bóng đá c1.
int pqnfields (kèo bóng đá c1 *res);
PQBinaryTuplesTrả về 1 nếu kèo bóng đá c1 chứa dữ liệu tuple nhị phân, 0 nếu nó chứa ASCII dữ liệu.
int pqbinarytuples (kèo bóng đá c1 *res);Hiện tại, dữ liệu Tuple nhị phân chỉ có thể được trả về bởi một kèo bóng đá c1 trích xuất dữ liệu từ mộtnhị phâncon trỏ.
pqfnameTrả về trường (thuộc tính) Tên được liên kết với chỉ mục trường đã cho. Cánh đồng Chỉ số bắt đầu ở 0.
Char *pqfname (kèo bóng đá c1 *res, int field_index);
PQFNumberTrả về trường (thuộc tính) Chỉ mục được liên kết với tên trường đã cho.
int pqfnumber (kèo bóng đá c1 *res, char* field_name);
-1 được trả về nếu tên đã cho không khớp với bất kỳ cánh đồng.
PQFTYPETrả về loại trường liên kết với chỉ số trường đã cho. Số nguyên được trả về là một mã hóa nội bộ của loại. Chỉ số trường bắt đầu ở 0.
oid pqfttype (kèo bóng đá c1 *res, int field_num);
pqfsizeTrả về kích thước theo byte của trường liên quan đến chỉ số trường đã cho. Cánh đồng Chỉ số bắt đầu ở 0.
int pqfsize (kèo bóng đá c1 *res, int field_index);pqfsize trả về không gian được phân bổ cho trường này trong a Nói cách khác, cơ sở dữ kèo bóng đá c1, nói cách khác là kích thước của nhị phân của máy chủ Đại diện của loại dữ kèo bóng đá c1. -1 được trả về nếu trường là Kích thước biến.
pqfmodTrả về loại cụ thể Dữ kèo bóng đá c1 sửa đổi của trường được liên kết với trường đã cho chỉ mục. Chỉ số trường bắt đầu ở 0.
int pqfmod (kèo bóng đá c1 *res, int field_index);
PQGetValueTrả về một trường duy nhất (Thuộc tính) Giá trị của một tuple của kèo bóng đá c1. Tuple và lĩnh vực Chỉ số bắt đầu ở 0.
char * pqgetValue (kèo bóng đá c1 * res, int tup_num, int field_num);Đối với hầu hết các kèo bóng đá c1, giá trị được trả về bởi pqgetValue là một NULL-kết thúc chuỗi ASCII Biểu diễn của giá trị thuộc tính. Nhưng nếu pqbinarytuples () là đúng, giá trị được trả về bởi pqgetValue là biểu diễn nhị phân của loại trong định dạng nội bộ của máy chủ phụ trợ (nhưng không bao gồm từ kích thước, nếu trường là độ dài thay đổi). Đó là trách nhiệm của lập trình viên đối với đúc và chuyển đổi dữ liệu thành loại C chính xác. Con trỏ được trả về bởi pqgetValue điểm cho lưu trữ là một phần của Cấu trúc pgresult. Người ta không nên sửa đổi nó, và người ta phải Sao chép rõ ràng giá trị vào bộ nhớ khác nếu nó được sử dụng qua đời của chính cấu trúc pgresult.
PQGetLpmTrả về chiều dài của một trường (thuộc tính) trong byte. Chỉ số hiện trường và chỉ số hiện trường 0.
int PQGetLpm (kèo bóng đá c1 *res, int tup_num, int field_num);Đây là độ dài dữ liệu thực tế cho giá trị dữ liệu cụ thể, Đó là kích thước của đối tượng được chỉ ra bởi pqgetValue. Lưu ý rằng Đối với kèo bóng đá c1 giá trị được đại diện ASCII, kích thước này ít liên quan đến Kích thước nhị phân được báo cáo bởi pqfsize.
PQGetIsNullKiểm tra một trường cho một Nhập cảnh. Chỉ số trường và trường bắt đầu ở 0.
int pqgetisnull (kèo bóng đá c1 *res, int tup_num, int field_num);Hàm này trả về 1 nếu trường chứa null, 0 nếu nó chứa một giá trị không null. (Lưu ý rằng PQGetValue sẽ trả về một Chuỗi trống, không phải là một con trỏ null, cho trường null.)
PQCMDSTATUSTrả về lệnh Chuỗi trạng thái từ lệnh SQL đã tạo kèo bóng đá c1.
Char *pqcmdstatus (kèo bóng đá c1 *res);
PQCMDTUMPLESTrả về số lượng của hàng bị ảnh hưởng bởi lệnh sql.
const char *pqcmdtuples (kèo bóng đá c1 *res);Nếu lệnh SQL tạo ra kèo bóng đá c1 đã được chèn, Cập nhật hoặc xóa, điều này trả về một chuỗi chứa số lượng Hàng bị ảnh hưởng. Nếu lệnh là bất cứ điều gì khác, nó sẽ trả lại Chuỗi trống.
PQOIDSTATUSTrả về một chuỗi với ID đối tượng của bộ tuple được chèn, nếu lệnh SQL là CHÈN. Nếu không, trả về một chuỗi trống.
Char * pqoidstatus (kèo bóng đá c1 * res);
PQPrintIn ra tất cả kèo bóng đá c1 bộ dữ và, tùy chọn, tên thuộc tính cho đầu ra được chỉ định suối.
void pqprint (tệp* fout, /* luồng đầu ra* / Pgresult* res, Pqprintopt* po); Cấu trúc _PQPrintopt Tiêu đề PQBool; / * In kèo bóng đá c1 tiêu đề trường đầu ra và số lượng hàng */ PQBool căn chỉnh; / * Điền vào căn chỉnh kèo bóng đá c1 trường */ Tiêu chuẩn PQBool; / * Định dạng chết não cũ */ PQBool HTML3; / * kèo bóng đá c1 bảng HTML đầu ra */ PQBool mở rộng; / * mở rộng bảng */ PQBool PAGER; / * Sử dụng máy nhắn tin cho đầu ra nếu cần */ char *fieldsep; / * phân tách trường */ Char *TableOpt; / * chèn vào html <bảng ... *// Char *chú thích; / * Html <taption *// char ** tên trường; / * null chấm dứt mảng tên trường thay thế *// ;Hàm này nhằm thay thế pqprinttuples (), mà bây giờ đã lỗi thời. ThePSQLChương trình sử dụng Pqprint () để hiển thị kết quả kèo bóng đá c1.
PQPrintTuplesIn ra tất cả Tuples và, tùy chọn, tên thuộc tính cho được chỉ định luồng đầu ra.
VOID PQPRINTTUMPLES (kèo bóng đá c1* RES, Tệp* fout, /* luồng đầu ra* / int printattname,/* in tên thuộc tính hoặc không*// int terseOutput, /* thanh phân cách hoặc không?* / / int chiều rộng); /* chiều rộng của cột, chiều rộng biến nếu 0*/
PQDisplayTuplesIn ra tất cả Tuples và, tùy chọn, tên thuộc tính cho được chỉ định luồng đầu ra.
void pqdisplayTuples (pgresult* res, Tệp* fout, /* luồng đầu ra* / int fillalign, / * không gian điền để căn chỉnh kèo bóng đá c1 cột * / / const char *fieldsep, / *phân tách trường * / / int printheader, /* Tiêu đề hiển thị? */ int yên tĩnh); / * triệt tiêu in số lượng hàng ở cuối */và lần lượt được thay thế bởi pqprint ().
PQClearGiải phóng bộ lưu trữ Liên kết với pgresult. Mọi kết quả kèo bóng đá c1 nên được được giải phóng qua pqclear khi nó không còn cần thiết nữa.
VOID PQCLEAR (pqresult *res);Bạn có thể giữ một đối tượng pgresult xung quanh miễn là bạn cần Nó; Nó không biến mất khi bạn phát hành một kèo bóng đá c1 mới, cũng như ngay cả khi bạn Đóng kết nối. Để thoát khỏi nó, bạn phải gọi PQClear. Không làm điều này sẽ dẫn đến rò rỉ bộ nhớ ở phía trước ứng dụng.
PQMakeMpTypgresultXây dựng an đối tượng kèo bóng đá c1 trống với trạng thái đã cho.
16787_16858Đây là thói quen nội bộ của LibPQ để phân bổ và khởi tạo một đối tượng pgresult trống. Nó được xuất khẩu vì một số ứng dụng thấy nó hữu ích để tạo kèo bóng đá c1 đối tượng kết quả (đặc biệt là kèo bóng đá c1 đối tượng với trạng thái lỗi) chính họ. Nếu Conn không phải là NULL và trạng thái Cho biết lỗi, ErrorMessage hiện tại của kết nối được sao chép vào pgresult. Lưu ý rằng PQClear cuối cùng nên được gọi đối tượng, giống như với một pgresult được trả về bởi chính libpq.