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 đá cúp c2 và lệnh.
PQEXECGửi kèo bóng đá cúp c2 choPostgresvà chờ đợi kết quả.
PGRESULT *PQEXEC (PGCONN *Conn, const char *kèo bóng đá cúp c2);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 đá cúp c2 đế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 đá cúp c2Cấu trúc đóng gói kết quả kèo bóng đá cúp c2 đượ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 đá cúp c2 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 đá cúp c2 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 đá cúp c2. PQResultstatus có thể trả lại một trong những Giá trị sau:
pgres_empty_query, PGRES_COMMAND_OK, / * kèo bóng đá cúp c2 là lệnh trả về không có dữ liệu * / Pgres_tuples_ok, / * kèo bóng đá cúp c2 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 đá cúp c2. 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.
pqresstatusChuyển đổi Loại được liệt kê được pqresultatus trả lại vào một chuỗi Mô tả liên tục mã trạng thái.
const char *pqresstatus (trạng thái execstatusType);Mã cũ hơn có thể thực hiện hoạt động tương tự này bằng cách kèo bóng đá cúp c2 cập trực tiếp đến một mảng chuỗi không đổi bên trong libpq,
8096_8140Tuy nhiên, sử dụng chức năng được khuyến nghị thay thế, vì nó di động hơn và sẽ không thất bại trên các giá trị ngoài phạm vi.
pqresulterrormessageTrả về thông báo lỗi liên quan đến kèo bóng đá cúp c2 hoặc chuỗi trống nếu không có lỗi.
const char *pqresulterrormessage (kèo bóng đá cúp c2 *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 kèo bóng đá cúp c2 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 các 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 kèo bóng đá cúp c2 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 của Tuples (phiên bản) trong kết quả kèo bóng đá cúp c2.
int pqntuples (kèo bóng đá cúp c2 *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 đá cúp c2.
int pqnfields (kèo bóng đá cúp c2 *res);
PQBinaryTuplesTrả về 1 nếu kèo bóng đá cúp c2 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 đá cúp c2 *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 đá cúp c2 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 đá cúp c2 *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 đá cúp c2 *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 đá cúp c2 *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 đá cúp c2 *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 đá cúp c2, 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 đá cúp c2. -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 đá cúp c2 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 đá cúp c2 *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 đá cúp c2. Tuple và lĩnh vực Chỉ số bắt đầu ở 0.
Char * PQGetValue (kèo bóng đá cúp c2 * res, int tup_num, int field_num);Đối với hầu hết các kèo bóng đá cúp c2, 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 đá cúp c2 *res, int tup_num, int field_num);Đây là độ dài dữ kèo bóng đá cúp c2 thực tế cho giá trị dữ kèo bóng đá cúp c2 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 các 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 đá cúp c2 *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 đá cúp c2.
char *pqcmdstatus (kèo bóng đá cúp c2 *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 đá cúp c2 *res);Nếu lệnh SQL tạo ra kèo bóng đá cúp c2 đã đượ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 đá cúp c2 * res);
PQPrintIn ra tất cả các 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* / kèo bóng đá cúp c2* res, Pqprintopt* po); Cấu trúc _PQPrintopt Tiêu đề PQBool; / * In các 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 các trường */ Tiêu chuẩn PQBool; / * Định dạng chết não cũ */ PQBool HTML3; / * Các 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 đá cúp c2.
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 đá cúp c2* 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 (kèo bóng đá cúp c2* res, Tệp* fout, /* luồng đầu ra* / int fillalign, / * không gian điền để căn chỉnh các 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 trống với trạng thái đã cho.
17343_17414Đây là thói quen nội bộ của LibPQ để phân bổ và khởi tạo một đối tượng kèo bóng đá cúp c2 trống. Nó được xuất khẩu vì một số ứng dụng thấy nó hữu ích để tạo các đối tượng kết quả (đặc biệt là các đố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 kèo bóng đá cúp c2. Lưu ý rằng PQClear cuối cùng nên được gọi đối tượng, giống như với một kèo bóng đá cúp c2 được trả về bởi chính libpq.