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

33.11. kèo bóng đá euro

Như mọi khi, có một số chức kèo bóng đá euro không phù hợp ở bất cứ đâu.

pqfreemem

Bộ nhớ giải phóng được phân bổ bởilibpq.

void pqfreemem (void *ptr);

Bộ nhớ giải phóng được phân bổ bởilibpq, đặc biệtpqescapyteaconn, pqescapytea, PQUNESCAPHERTEApqnotifyes. Điều đặc biệt quan trọng là chức kèo bóng đá euro này, thay vìfree (), được sử dụng trên Microsoft Windows. Điều này là do việc phân bổ bộ nhớ trong DLL và phát hành nó trong ứng dụng chỉ hoạt động nếu MultiThreaded/một luồng, giải phóng/gỡ lỗi và cờ tĩnh/động là giống nhau cho DLL và ứng dụng.free ().

PQConnInfofree

Giải phóng kèo bóng đá euro cấu trúc dữ liệu được phân bổ bởiPQConnDefaultshoặcPQConnInfoparse.

11558_11611

Một đơn giảnPQFreememsẽ không làm điều này, vì mảng chứa kèo bóng đá euro tham chiếu đến chuỗi công ty con.

pqencryptpasswordconn

Chuẩn bị mẫu được mã hóa của APostgreSQLMật khẩu.

char *pqencryptpasswordconn (pgconn *Conn, const char *passwd, const char *user

Hàm này được dự định sẽ được sử dụng bởi kèo bóng đá euro ứng dụng khách muốn gửi kèo bóng đá euro lệnh nhưthay đổi mật khẩu joe của người dùng 'pwd'. Thật tốt khi không gửi mật khẩu ClearText ban đầu trong một lệnh như vậy, bởi vì nó có thể được hiển thị trong nhật ký lệnh, màn hình hoạt động, v.v.

ThePasswduserĐối số là mật khẩu Cleartext và tên SQL của người dùng.Thuật toánChỉ định thuật toán mã hóa để sử dụng để mã hóa mật khẩu. kèo bóng đá euro thuật toán hiện được hỗ trợ làMD5Scram-Sha-256(trênTẮTcũng được chấp nhận làm bí danh choMD5, để tương thích với kèo bóng đá euro phiên bản máy chủ cũ). Lưu ý rằng hỗ trợ choScram-Sha-256đã được giới thiệu trongPostgreSQLPhiên bản 10 và sẽ không hoạt động chính xác với kèo bóng đá euro phiên bản máy chủ cũ. Nếu nhưThuật toánnull, Hàm này sẽ truy vấn máy chủ cho giá trị hiện tại củapassword_encryptionCài đặt. Điều đó có thể chặn và sẽ thất bại nếu giao dịch hiện tại bị hủy bỏ hoặc nếu kết nối đang bận thực hiện một truy vấn khác.password_encryptionchính bạn trước khi gọipqencryptpasswordconn, và vượt qua giá trị đó làThuật toán.

Giá trị trả về là một chuỗi được phân bổ bởimalloc. Người gọi có thể giả sử chuỗi không chứa bất kỳ ký tự đặc biệt nào yêu cầu thoát.pqfreememĐể giải phóng kết quả khi thực hiện với nó. Trên lỗi, trả vềnull, và một thông báo phù hợp được lưu trữ trong đối tượng kết nối.

pqencryptpassword

Chuẩn bị hình thức được mã hóa MD5 của APostgreSQLMật khẩu.

char *pqencryptpassword (const char *passwd, const char *user);

pqencryptpasswordlà phiên bản cũ hơn, không dùng nữa củaPQENCRYPTPASSWORDCONN. Sự khác biệt làpqencryptpasswordKhông yêu cầu đối tượng kết nối vàMD5luôn được sử dụng làm thuật toán mã hóa.

PQMakeMpTypgresult

Xây dựng trốngpgresultĐối tượng có trạng thái đã cho.

15501_15570

Đây làlibpqS chức kèo bóng đá euro nội bộ để phân bổ và khởi tạo trốngpgresultĐối tượng. Hàm này trả vềnullNếu bộ nhớ không thể được phân bổ. Nó được xuất vì một số ứng dụng thấy hữu ích để tạo kèo bóng đá euro đối tượng kết quả (đặc biệt là kèo bóng đá euro đối tượng có trạng thái lỗi).Connkhông phải là null vàstatusCho biết lỗi, thông báo lỗi hiện tại của kết nối được chỉ định được sao chép vàopgresult. Ngoài ra, nếuConnkhông phải là NULL, bất kỳ quy trình sự kiện nào được đăng ký trong kết nối được sao chép vàopgresult. (Họ không nhận đượcPGEVT_RESULTCREATEcuộc gọi, nhưng xemPQFireresultCreateEvents.) Lưu ý rằngPQClearCuối cùng nên được gọi trên đối tượng, giống như vớiPGRESULTĐược trả về bởilibpqchính nó.

PQFireresultCreateEvents

Hỏa hoạn APGEVT_RESULTCREATESự kiện (xemPhần 33.13) cho mỗi quy trình sự kiện được đăng ký trongPGRESULTĐối tượng. Trả về không phải cho thành công, không, nếu có bất kỳ thủ tục sự kiện nào thất bại.

17293_17353

TheConnĐối số được chuyển qua kèo bóng đá euro thủ tục sự kiện nhưng không được sử dụng trực tiếp. Nó có thể lànullNếu quy trình sự kiện không sử dụng nó.

Quy trình sự kiện đã nhận đượcPGEVT_RESULTCREATEhoặcPGEVT_RESULTCOPYSự kiện cho đối tượng này không bị bắn nữa.

Lý do chính mà chức kèo bóng đá euro này tách biệt vớiPQMakeMpTypgresultCó phải là không phù hợp để tạopgresultvà điền vào dữ liệu trước khi gọi kèo bóng đá euro quy trình sự kiện.

PQCopyresult

Tạo một bản sao của ApgresultĐối tượng. Bản sao không được liên kết với kết quả nguồn theo bất kỳ cách nào vàPQClearphải được gọi khi bản sao không còn cần thiết. Nếu chức kèo bóng đá euro không thành công,nullđược trả về.

pgresult *pqcopyresult (const pgresult *src, int flags);

Điều này không nhằm tạo một bản sao chính xác. Kết quả trả về luôn được đặt vàoPGRES_TUDS_OKtrạng thái và không sao chép bất kỳ thông báo lỗi nào trong nguồn. (Tuy nhiên, nó sao chép chuỗi trạng thái lệnh.)CờĐối số xác định những gì khác được sao chép. Nó là một chút hoặc của một số cờ.PG_COPYRES_ATTRSChỉ định sao chép kèo bóng đá euro thuộc tính của kết quả nguồn (định nghĩa cột).pg_copyres_tuplesChỉ định sao chép kèo bóng đá euro bộ dữ liệu của kết quả nguồn. (Điều này cũng ngụ ý sao chép kèo bóng đá euro thuộc tính.)pg_copyres_noticehooksChỉ định sao chép kèo bóng đá euro móc thông báo của kết quả nguồn.pg_copyres_eventsChỉ định sao chép kèo bóng đá euro sự kiện của kết quả nguồn. (Nhưng bất kỳ dữ liệu thể hiện nào được liên kết với nguồn không được sao chép.)

PQSetResultattrs

Đặt kèo bóng đá euro thuộc tính của ApgresultĐối tượng.

19758_19839

được cung cấpAttdescsđược sao chép vào kết quả. NếuAttdescsCon trỏ lànullhoặcnumattributnhỏ hơn một, yêu cầu bị bỏ qua và chức kèo bóng đá euro thành công. Nếu nhưresĐã chứa các thuộc tính, chức kèo bóng đá euro sẽ thất bại. Nếu hàm không thành công, giá trị trả về bằng không.

PQSetValue

Đặt giá trị trường Tuple của ApgresultĐối tượng.

int pqsetValue (pgresult *res, int tup_num, int field_num, char *value, int len);

Hàm sẽ tự động phát triển mảng Tuples nội bộ của kết quả khi cần thiết. Tuy nhiên,TUP_NUMĐối số phải nhỏ hơn hoặc bằngPQNTUMPLES, có nghĩa là hàm này chỉ có thể phát triển mảng Tuples một tuple cùng một lúc. Nhưng bất kỳ trường nào của bất kỳ tuple hiện có có thể được sửa đổi theo bất kỳ thứ tự nào.field_numĐã tồn tại, nó sẽ bị ghi đè. Nếu nhưlenlà -1 hoặcgiá trịnull, giá trị trường sẽ được đặt thành giá trị null SQL. Thegiá trịđược sao chép vào bộ nhớ riêng của kết quả, do đó không còn cần thiết sau khi chức kèo bóng đá euro trả về. Nếu hàm không thành công, giá trị trả về bằng không.

pqresultalloc

Phân bổ lưu trữ công ty con cho ApgresultĐối tượng.

void *pqresultalloc (pgresult *res, size_t nbytes);

Bất kỳ bộ nhớ nào được phân bổ với hàm này sẽ được giải phóng khiresđược xóa. Nếu hàm không thành công, giá trị trả về lànull. Kết quả được đảm bảo được căn chỉnh đầy đủ cho bất kỳ loại dữ liệu nào, giống như đối vớimalloc.

PQLibVersion

Trả lại phiên bảnlibpqĐiều đó đang được sử dụng.

int pqlibversion (void);

Kết quả của chức kèo bóng đá euro này có thể được sử dụng để xác định, tại thời điểm chạy, liệu chức kèo bóng đá euro cụ thể có sẵn trong phiên bản LIBPQ hiện đang được tải hay không. Chức kèo bóng đá euro có thể được sử dụng, ví dụ, để xác định tùy chọn kết nối nào có sẵn trongPQConnectDB.

Kết quả được hình thành bằng cách nhân số phiên bản chính của thư viện với 10000 và thêm số phiên bản nhỏ. Ví dụ: Phiên bản 10.1 sẽ được trả lại là 100001 và phiên bản 11.0 sẽ được trả lại là 110000.

Trước phiên bản chính 10,PostgreSQLđã sử dụng số phiên bản ba phần trong đó hai phần đầu tiên cùng nhau đại diện cho phiên bản chính. Cho kèo bóng đá euro phiên bản đó,PQLibVersionSử dụng hai chữ số cho mỗi phần; Ví dụ: Phiên bản 9.1.5 sẽ được trả lại là 90105 và phiên bản 9.2.0 sẽ được trả về là 90200.

Do đó, với mục đích xác định khả kèo bóng đá euro tương thích tính kèo bóng đá euro, các ứng dụng nên chia kết quả củaPQLibVersionbởi 100 không 10000 để xác định số phiên bản chính logic. Trong tất cả kèo bóng đá euro chuỗi phát hành, chỉ có hai chữ số cuối cùng khác nhau giữa kèo bóng đá euro bản phát hành nhỏ (bản phát hành sửa lỗi).

Lưu ý

Hàm này xuất hiện trongPostgreSQLPhiên bản 9.1, do đó không thể được sử dụng để phát hiện chức kèo bóng đá euro cần thiết trong các phiên bản trước, vì gọi nó sẽ tạo ra một liên kết phụ thuộc vào phiên bản 9.1 trở lên.