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 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của kèo chấp bóng đá hôm nay.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 27.libpq- C kèo chấp bóng đá hôm nay

libpqCGiao diện của lập trình viên ứng dụng vớikèo chấp bóng đá hôm nay. libpqlà một tập hợp các chức năng kèo chấp bóng đá hôm nay màkèo chấp bóng đá hôm nayMáy chủ phụ trợ và để nhận

libpqcũng là cơ bảnkèo chấp bóng đá hôm nayGiao diện ứng dụng, bao gồmECPG. Vì vậy, một số khía cạnh củalibpqhành vi củaPhần 27.11, Phần 27.12Phần 27.13Mô tả hành vi đó làlibpq.

Một số chương trình ngắn được bao gồm ở cuối chương nàyPhần 27.16) để hiển thị cáchlibpq.libpqỨng dụng trong thư mụcsrc/test/exampleTrong mã nguồn

Chương trình khách hàng sử dụnglibpqPhải bao gồm tệp tiêu đềlibpq-fe.hvà phải liên kết vớilibpqkèo chấp bóng đá hôm nay.

27.1. Điều khiển kèo chấp bóng đá hôm nay cơ sở dữ liệu

Các chức năng sau liên quan đến việc tạo kèo chấp bóng đá hôm nay với Akèo chấp bóng đá hôm nayMáy chủ phụ trợ. MỘTPGConnĐối tượng, được lấy từ chức năngPQConnectDBhoặcPQSetDbLogin. Lưu ý rằng các chức năng này sẽPGConnĐối tượng. ThepqstatusHàm nên được gọi để kiểm tra

PQConnectDB

Tạo kèo chấp bóng đá hôm nay mới với máy chủ cơ sở dữ liệu.

PGConn *PQConnectDB (const char *Conninfo);

Hàm này mở kèo chấp bóng đá hôm nay cơ sở dữ liệu mới bằng cách sử dụngConninfo. Không giống nhưPQSetDbLoginbên dưới, bộ tham sốPQConnectStartPQConnectPoll) được ưu tiên

Chuỗi truyền có thể trống để sử dụng tất cả các mặc địnhtừ khóa = value.Từ khóa =. Trích dẫn đơn và dấu gạch chéo ngược trong\ '\.

Các từ khóa tham số hiện được công nhận là:

host

Tên máy chủ để kèo chấp bóng đá hôm nay với.Nếu điều này bắt đầu bằng một dấu gạch chéo, nómáy chủkhông được chỉ định là kèo chấp bóng đá hôm nay với một miền Unixin/TMP(hoặc bất kỳ ổ cắm nàokèo chấp bóng đá hôm nayđã được xây dựng). TRÊNLocalhost.

hostaddr

Địa chỉ IP số của máy chủ để kèo chấp bóng đá hôm nay với. Cái này172.28.40.9. Nếu bạn

sử dụnghostaddrThay vào đómáy chủCho phépmáy chủđược chỉ định mà không cóhostaddr, tên máy chủhostaddrđược chỉ định mà không cóhost,hostaddrCung cấp địa chỉ từ xa. Khi Kerberos được sử dụng, mộthosthostaddrhostaddrcung cấp địa chỉ từ xa;hostISlibpqđược thông qua ahostaddr.) Ngoài ra,máy chủthay vìhostaddrđược sử dụng~/.pgass(xemPhần 27.12).

Không có tên máy chủ hoặc địa chỉ máy chủ,libpqSẽ kèo chấp bóng đá hôm naylocalhost.

Cổng

Số cổng để kèo chấp bóng đá hôm nay với máy chủ máy chủ hoặc

dbname

Tên cơ sở dữ liệu. Mặc định là giống như

user

kèo chấp bóng đá hôm nayNgười dùng

Mật khẩu

Mật khẩu sẽ được sử dụng nếu máy chủ yêu cầu

Connect_Timeout

Chờ tối đa để kèo chấp bóng đá hôm nay, tính bằng giây (viết

Tùy chọn

Các tùy chọn dòng lệnh sẽ được gửi đến

tty

Bỏ qua (trước đây, được chỉ định nơi gửi

SSLMode

tùy chọn này xác định xem hoặc với cái gìSSLkèo chấp bóng đá hôm nay sẽ được đàm phán với máy chủ.vô hiệu hóasẽ chỉ cố gắngSSLkèo chấp bóng đá hôm nay;cho phépWillSSLkèo chấp bóng đá hôm nay, sau đó nếu điều đóSSLkèo chấp bóng đá hôm nay;ưa thích(mặc định) sẽ thương lượng,SSLkèo chấp bóng đá hôm nay, sau đó nếu điều đóSSLkèo chấp bóng đá hôm nay;Yêu cầusẽ chỉ thử mộtSSLkèo chấp bóng đá hôm nay.

nếukèo chấp bóng đá hôm nayđược biên dịch mà không cần hỗ trợ SSL, sử dụng tùy chọnYêu cầusẽ gây ra mộtcho phépưa thíchsẽ đượclibpqTrên thực tế sẽ không thửSSLkèo chấp bóng đá hôm nay.

Yêu cầu

Tùy chọn này không được ủng hộ ủng hộSSLModeCài đặt.

Nếu được đặt thành 1, anSSLkèo chấp bóng đá hôm nay với máy chủ làSSLMode Yêu cầu).libpqSau đó sẽ từ chốiSSLkèo chấp bóng đá hôm nay.libpqSẽ thương lượngSSLMode ưa thích). Tùy chọn này chỉ làkèo chấp bóng đá hôm nayđược tổng hợp với

Dịch vụ

Tên dịch vụ để sử dụng cho các tham số bổ sung.pg_service.confĐó là giữChia sẻ/pg_service.conf.sampleTrong

Nếu bất kỳ tham số nào không được xác định, thìPhần 27.11) được kiểm tra. Nếu

pqsetDbLogin

Tạo kèo chấp bóng đá hôm nay mới với máy chủ cơ sở dữ liệu.

PGConn *pqsetdblogin (const char *pghost,

Đây là tiền thân củaPQConnectDBvới một tập hợp cố địnhnullhoặc một chuỗi trống cho

PQSetDB

Tạo kèo chấp bóng đá hôm nay mới với máy chủ cơ sở dữ liệu.

PGConn *PQSetDB (char *pghost,

Đây là một macro gọiPQSetDbLoginvới các con trỏ null choĐăng nhậpPWDtham số. Nó được cung cấp cho

PQConnectStart
PQConnectPoll

Tạo a

PGConn *PQConnectStart (const char *ConnInfo);
29289_29347

Hai chức năng này được sử dụng để mở kèo chấp bóng đá hôm nay với APQConnectDB, và vì vậy ứng dụng có thể

kèo chấp bóng đá hôm nay cơ sở dữ liệu được thực hiện bằng các tham sốConninfo,,PQConnectStart.PQConnectDB.

khôngPQConnectStartcũng khôngPQConnectPollWill

  • Thehostaddrhosttham số được sử dụngPQConnectDBở trên để biết chi tiết.

  • Nếu bạn gọiPQTRACE,,

  • Bạn đảm bảo rằng ổ cắm nằm trong bộ phận thích hợpPQConnectPoll, như mô tả

Để bắt đầu yêu cầu kèo chấp bóng đá hôm nay không chặn, hãy gọiConn = PQConnectStart ("Connection_info_String"). Nếu nhưConnlà null, sau đólibpqđã không thể phân bổPGConnCấu trúc.PGConnCon trỏ được trả về (mặc dù chưa đại diện cho một hợp lệPQConnectStart, gọistatus = pqstatus (Conn). Nếu nhưstatusbằngConnection_Bad, PQConnectStartđã thất bại.

nếuPQConnectStartThành công, giai đoạn tiếp theo là thăm dò ý kiếnlibpqđể nó có thể tiến hànhPQSocket (Conn)Để có được bộ mô tảPQConnectPoll (Conn)Đã trả lại lần cuốipgres_polling_reading, đợi cho đến khiselect (), poll ()hoặc hàm hệ thống tương tự).PQConnectPoll (Conn)Một lần nữa. Ngược lại,PQConnectPoll (Conn)Cuối cùngPGRES_POLLING_WRITY,,PQConnectPoll (Conn)Một lần nữa.PQConnectPoll, tức là, ngay sau khiPQConnectStart,,PGRES_POLLING_WRITY. Tiếp tục vòng lặp nàyPQConnectPoll (Conn)returnPGRES_POLLING_FAILED,,PGRES_POLLING_OK, chỉ ra

Bất cứ lúc nào trong quá trình kèo chấp bóng đá hôm nay, trạng thái củapqstatus. Nếu điều này choConnection_Bad, sau đó là kèo chấp bóng đá hôm nayConnection_ok, thì kèo chấp bóng đá hôm nay làPQConnectPoll, được mô tả ở trên. Khác

Connection_started

chờ kèo chấp bóng đá hôm nay được thực hiện.

Connection_Made

kèo chấp bóng đá hôm nay OK; chờ gửi.

Connection_Awaiting_Response

Đang chờ phản hồi từ máy chủ.

Connection_Auth_ok

nhận được xác thực; chờ đợi phụ trợ

Connection_SSL_Startup

Đàm phán mã hóa SSL.

Connection_SetEnv

Tham số điều khiển môi trường

Lưu ý rằng, mặc dù các hằng số này sẽ vẫn còn (

Switch (pqstatus (Conn))

TheConnect_TimeoutTham số kèo chấp bóng đá hôm nay bị bỏ qua khi sử dụngPQConnectPoll; nó là ứng dụngPQConnectStarttheo sau làPQConnectPollVòng lặp làPQConnectDB.

Lưu ý rằng nếuPQConnectStartTrả về một người không phải là nullpqfinishKhi bạn kết thúc với nó,

PQConnDefaults

Trả về các tùy chọn kèo chấp bóng đá hôm nay mặc định.

PQConnInFooption *PQConnDefaults (void);

Trả về mảng tùy chọn kèo chấp bóng đá hôm nay. Điều này có thể được sử dụngPQConnectDBTùy chọn và dòng điện của chúngPQConninFooptioncấu trúc,Từ khóaCon trỏ. Lưu ý rằng hiện tạiValTrường)

Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách vượt quaPQConnInfofree. Nếu nhưPQConnDefaults.

pqfinish

Đóng kèo chấp bóng đá hôm nay với máy chủ. Cũng giải phóng bộ nhớPGConnĐối tượng.

void pqfinish (pgconn *Conn);

Lưu ý rằng ngay cả khi kèo chấp bóng đá hôm nay máy chủ không cốPQSTATUS),pqfinishĐể giải phóng bộ nhớ được sử dụng bởiPGConnĐối tượng. ThePGConnCon trỏ không được sử dụng lạipqfinishđã được

pqreset

Đặt lại kênh truyền thông cho máy chủ.

void pqreset (pgconn *Conn);

Chức năng này sẽ đóng kèo chấp bóng đá hôm nay với máy chủ

pqresetstart
pqresetpoll

Đặt lại kênh truyền thông cho máy chủ, trong A

int pqresetstart (pgconn *Conn);
41156_41212

Các chức năng này sẽ đóng kèo chấp bóng đá hôm nay vớipqreset(ở trên) trong đó họ hành động trong mộtPQConnectStartPQConnectPoll.

Để bắt đầu đặt lại kèo chấp bóng đá hôm nay, gọipqresetstart. Nếu nó trở lại 0,pqresetpollTrong chính xácPQConnectPoll.