Như mọi khi, có một số chức kèo bóng đá c1 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
, PQUNESCAPHERTEA
vàpqnotifyes
. Điều đặc biệt quan trọng là chức kèo bóng đá c1 này, thay vìfree ()
, được sử dụng trên Microsoft Windows. Điều này là do phân bổ bộ nhớ trong DLL và phát hành nó trong ứng dụng chỉ hoạt động nếu Multerreaded/một luồng đơn, Phát hành/gỡ lỗi và Cờ tĩnh/động là giống nhau cho DLL và ứng dụng. Trên các nền tảng Windows không phải Microsoft, chức kèo bóng đá c1 này giống như chức kèo bóng đá c1 thư viện tiêu chuẩnfree ()
.
PQConnInfofree
#Giải phóng kèo bóng đá c1 cấu trúc dữ liệu được phân bổ bởiPQConnDefaults
hoặcPQConnInfoparse
.
12120_12175
Nếu đối số lànull
Con trỏ, không có hoạt động nào được thực hiện.
A Đơn giảnPQFreemem
sẽ không làm điều này, vì mảng chứa kèo bóng đá c1 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 đá c1 ứng dụng khách muốn gửi kèo bóng đá c1 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. Thay vào đó, hãy sử dụng chức kèo bóng đá c1 này để chuyển đổi mật khẩu thành biểu mẫu được mã hóa trước khi nó được gửi.
Thepasswd
vàuser
Đối số là mật khẩu Cleartext và tên SQL của người dùng.Thuật toán
Chỉ định thuật toán mã hóa để sử dụng để mã hóa mật khẩu. kèo bóng đá c1 thuật toán hiện được hỗ trợ làMD5
và13833_13848
(trên
vàTẮT
cũng được chấp nhận làm bí danh choMD5
, để tương thích với kèo bóng đá c1 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 đá c1 phiên bản máy chủ cũ. Nếu nhưThuật toán
lànull
, 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. Nếu bạn muốn sử dụng thuật toán mặc định cho máy chủ nhưng muốn tránh chặn, truy vấnpassword_encryption
chính bạn trước khi gọiPQENCRYPTPASSWORDCONN
và chuyển 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. Sử dụngPQFreemem
Để 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.
PQChangePassword
#thay đổi APostgreSQLMật khẩu.
pgresult *pqchangePassword (pgconn *Conn, const char *user
Hàm này sử dụngpqencryptpasswordconn
Để xây dựng và thực thi lệnhthay đổi người dùng ... mật khẩu '...'
, do đó thay đổi mật khẩu của người dùng. Nó tồn tại vì lý do tương tự nhưpqencryptpasswordconn
, nhưng thuận tiện hơn vì nó cả hai xây dựng và chạy lệnh cho bạn.pqencryptpasswordconn
được truyền Anull
Đối với đối số thuật toán, do đó mã hóa được thực hiện theo máy chủpassword_encryptionCài đặt.
Thengười dùng
vàpasswd
Đối số là tên SQL của người dùng đích và mật khẩu Cleartext mới.
Trả về APGRESULT
Con trỏ biểu thị kết quả củangười dùng thay đổi
lệnh hoặc con trỏ null nếu thói quen không thành công trước khi ban hành bất kỳ lệnh nào. ThePQResultstatus
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 đá c1 lỗi đó.
pqencryptpassword
#Chuẩn bị hình thức được mã hóa MD5 của APostgreSQLMật khẩu.
17922_17988
pqencryptpassword
là phiên bản cũ hơn, không dùng nữa củaPQENCRYPTPASSWORDCONN
. Sự khác biệt làpqencryptpassword
Không yêu cầu đối tượng kết nối vàMD5
luô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.
18956_19027
Đây làlibpq19089_19148PGRESULT
Đối tượng. Hàm này trả vềnull
Nế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 đá c1 đối tượng kết quả (đặc biệt là kèo bóng đá c1 đối tượng có trạng thái lỗi). Nếu nhưConn
không phải là null vàtrạng thái
Cho 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ếuConn
khô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_RESULTCREATE
cuộc gọi, nhưng xemPQFireresultCreateEevents
.) Lưu ý rằngPQClear
Cuố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_RESULTCREATE
Sự kiện (xemPhần 32.14) 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.
20986_21048
TheConn
Đối số được chuyển qua kèo bóng đá c1 thủ tục sự kiện nhưng không được sử dụng trực tiếp. Nó có thể làNULL
Nếu quy trình sự kiện không sử dụng nó.
Quy trình sự kiện đã nhận đượcPGEVT_RESULTCREATE
hoặcPGEVT_RESULTCOPY
Sự 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 đá c1 này tách biệt vớiPQMakeMpTypgresult
Có phải là không phù hợp để tạopgresult
và điền vào dữ liệu trước khi gọi kèo bóng đá c1 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àPQClear
phải được gọi khi bản sao không còn cần thiết. Nếu chức kèo bóng đá c1 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_OK
trạ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_ATTRS
Chỉ định sao chép kèo bóng đá c1 thuộc tính của kết quả nguồn (định nghĩa cột).pg_copyres_tuples
Chỉ định sao chép kèo bóng đá c1 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 đá c1 thuộc tính.)pg_copyres_noticehooks
Chỉ định sao chép kèo bóng đá c1 móc thông báo của kết quả nguồn.pg_copyres_events
23279_23423PGEVT_RESULTCOPY
Sự kiện.
PQSetResultattrs
#Đặt kèo bóng đá c1 thuộc tính của APGRESULT
Đối tượng.
23870_23953
được cung cấpAttdescs
được sao chép vào kết quả. NếuAttdescs
Con trỏ lànull
hoặcnumattribut
nhỏ hơn một, yêu cầu bị bỏ qua và chức kèo bóng đá c1 thành công. Nếu nhưres
24330_24490
PQSetValue
#Đặt giá trị trường Tuple của Apgresult
Đối tượng.
24873_24957
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. Nếu một giá trị tạifield_num
25459_25505len
là -1 hoặcgiá trị
là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 đá c1 trở lại. Nếu hàm không thành công, giá trị trả về bằng không. Nếu hàm thành công, giá trị trả về không khác.
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 chức kèo bóng đá c1 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
.
pqresultmemorysize
#Lấy số lượng byte được phân bổ cho a27089_27099
Đối tượng.
size_t pqresultmemorysize (const pgresult *res);
Giá trị này là tổng của tất cảmalloc
Yêu cầu liên quan đếnpgresult
Đối tượng, nghĩa là, tất cả bộ nhớ sẽ được giải phóng bởiPQClear
. Thông tin này có thể hữu ích để quản lý mức tiêu thụ bộ nhớ.
PQLibVersion
#27841_27865libpqĐiều đó đang được sử dụng.
int pqlibversion (void);
Kết quả của chức kèo bóng đá c1 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 đá c1 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 đá c1 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
.
28368_28585
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 đá c1 phiên bản đó,PQLibVersion
Sử 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 đá c1 tương thích tính kèo bóng đá c1, các ứng dụng nên chia kết quả củapqlibversion
29247_29409
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 đá c1 cần thiết trong các phiên bản trước, vì gọi nó sẽ tạo ra sự phụ thuộc liên kết vào phiên bản 9.1 trở lên.
PQGetCienTimeUsec
#Lấy thời gian hiện tại, được biểu thị bằng số lượng micro giây kể từ thời đại unix (nghĩa làtime_t
lần 1 triệu).
Điều này chủ yếu hữu ích để tính toán kèo bóng đá c1 giá trị thời gian chờ để sử dụng vớiPQSocketPoll
.