Phiên bản không được hỗ trợ:7.0 / 6.5 / 6.4
Tài kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai trang chohiện tạiPhiên bản hoặc kèo bóng đá hôm nay và ngày mai trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 53. kèo bóng đá hôm nay và ngày mai - C Thư viện

kèo bóng đá hôm nay và ngày maiCGiao diện của lập trình viên ứng dụng vớiPostgres. kèo bóng đá hôm nay và ngày mailà kèo bóng đá hôm nay và ngày mai tập hợp các thói quen thư viện cho phép các chương trình khách hàng để chuyển truy vấn choPostgresMáy chủ phụ trợ và để nhận kèo bóng đá hôm nay và ngày mai quả của các truy vấn này.kèo bóng đá hôm nay và ngày maicũng là động cơ cơ bản cho kèo bóng đá hôm nay và ngày mai số khácPostgresGiao diện ứng dụng, bao gồmkèo bóng đá hôm nay và ngày mai ++(C ++),libpgtCl(TCL),perlECPG. Vì thế Một số khía cạnh của hành vi của kèo bóng đá hôm nay và ngày mai sẽ rất quan trọng đối với bạn nếu bạn sử dụng một trong các gói đó.

Ba chương trình ngắn được bao gồm ở cuối phần này để Hiển thị cách viết các chương trình sử dụngkèo bóng đá hôm nay và ngày mai. Có kèo bóng đá hôm nay và ngày mai số ví dụ đầy đủ vềkèo bóng đá hôm nay và ngày maiỨng dụng theo sau thư mục:

../ SRC/TEST/THỰC HIỆN
../src/test/examples
../src/bin/psql

Chương trình Frontend sử dụngkèo bóng đá hôm nay và ngày maiPhải Bao gồm tệp tiêu đềkèo bóng đá hôm nay và ngày mai-fe.hvà Phải liên kèo bóng đá hôm nay và ngày mai vớikèo bóng đá hôm nay và ngày maiThư viện.

Cơ sở dữ liệu Chức năng kèo bóng đá hôm nay và ngày mai

Các thói quen sau giải quyết việc tạo kèo bóng đá hôm nay và ngày mai với APostgresMáy chủ phụ trợ. Các Chương trình ứng dụng có thể mở một số kèo bóng đá hôm nay và ngày mai phụ trợ tại một lần. (Một lý do để làm điều đó là truy cập nhiều hơn một cơ sở dữ liệu.) Mỗi ​​kèo bóng đá hôm nay và ngày mai được biểu thị bằng một đối tượng PGConn được lấy từ pqconnectdb () hoặc pqsetdblogin (). Lưu ý rằng những điều này Các chức năng sẽ luôn trả về một con trỏ đối tượng không null, trừ khi Có lẽ có quá ít bộ nhớ thậm chí để phân bổ PGConn sự vật. Hàm pqstatus nên được gọi để kiểm tra xem có kèo bóng đá hôm nay và ngày mai đã được thực hiện thành công trước khi các truy vấn được gửi qua đối tượng kèo bóng đá hôm nay và ngày mai.

  • PQConnectDBTạo kèo bóng đá hôm nay và ngày mai mới đến máy chủ cơ sở dữ liệu.

    PGConn *PQConnectDB (const char *Conninfo)
    thói quen này mở kèo bóng đá hôm nay và ngày mai cơ sở dữ liệu mới bằng cách sử dụng tham số được lấy từ chuỗiConninfo. Không giống như pqsetdblogin () bên dưới, bộ tham số có thể được mở rộng mà không thay đổi chữ ký chức năng, vì vậy hãy sử dụng kèo bóng đá hôm nay và ngày mai trong hai điều này thường xuyên hoặc các chất tương tự không chặn pqconnectstart / PQConnectPoll được ưu tiên cho lập trình ứng dụng. Đã qua Chuỗi có thể trống để sử dụng tất cả các tham số mặc định hoặc nó có thể chứa kèo bóng đá hôm nay và ngày mai hoặc nhiều cài đặt tham số được phân tách bằng khoảng trắng.

    Mỗi cài đặt tham số ở dạngtừ khóa = value. (Để viết kèo bóng đá hôm nay và ngày mai giá trị null hoặc kèo bóng đá hôm nay và ngày mai Giá trị chứa khoảng trắng, bao quanh nó với các trích dẫn đơn, ví dụ:từ khóa = 'giá trị'. Trích dẫn đơn Trong giá trị phải được viết là\ '. Không gian xung quanh dấu hiệu bằng nhau là tùy chọn.) Từ khóa tham số hiện được nhận dạng là:

    host

    Tên máy chủ để kèo bóng đá hôm nay và ngày mai với. Nếu một chuỗi dài không được chỉ định, giao tiếp TCP/IP được sử dụng. Sử dụng điều này Tham số gây ra một cái nhìn của tên máy chủ. Xem hostaddr.

    hostaddr

    Địa chỉ IP của máy chủ để kèo bóng đá hôm nay và ngày mai với. Cái này nên ở Biểu mẫu số và điểm tiêu chuẩn, được sử dụng bởi BSD Chức năng Inet_aton et al. Nếu một chuỗi dài không phải là được chỉ định, giao tiếp TCP/IP được sử dụng.

    Sử dụng hostaddr thay vì máy chủ cho phép ứng dụng Tránh tìm kiếm tên máy chủ, điều này có thể quan trọng trong Các ứng dụng có hạn chế về thời gian. Tuy nhiên, Kerberos Xác thực yêu cầu tên máy chủ. Sau đây do đó áp dụng. Nếu máy chủ được chỉ định mà không có hostaddr, một Tra cứu tên máy chủ là bắt buộc. Nếu hostaddr được chỉ định Không có máy chủ, giá trị cho hostaddr cung cấp cho điều khiển từ xa Địa chỉ; Nếu Kerberos được sử dụng, điều này gây ra một tên ngược truy vấn. Nếu cả host và hostaddr được chỉ định, giá trị Đối với hostaddr cung cấp địa chỉ từ xa; giá trị cho máy chủ bị bỏ qua, trừ khi Kerberos được sử dụng, trong trường hợp đó Giá trị được sử dụng để xác thực Kerberos. Lưu ý rằng Xác thực có khả năng thất bại nếu kèo bóng đá hôm nay và ngày mai được thông qua một máy chủ Tên không phải là tên của máy tại hostaddr.

    Không có cả tên máy chủ và địa chỉ máy chủ, kèo bóng đá hôm nay và ngày mai sẽ kết nối bằng ổ cắm miền unix cục bộ.

    Cổng

    Số cổng để kèo bóng đá hôm nay và ngày mai tại máy chủ máy chủ hoặc ổ cắm Tiện ích mở rộng tên tệp cho các kèo bóng đá hôm nay và ngày mai tên miền Unix.

    dbname

    Tên cơ sở dữ kèo bóng đá hôm nay và ngày mai.

    user

    11831_11857

    Mật khẩu

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

    Tùy chọn

    Các tùy chọn theo dõi/gỡ lỗi sẽ được gửi đến máy chủ.

    tty

    kèo bóng đá hôm nay và ngày mai tệp hoặc tty cho đầu ra gỡ lỗi tùy chọn từ phụ trợ.

    Nếu bất kỳ tham số nào không được xác định, thì tương ứng Biến môi trường (xem phần "Biến môi trường") là đã kiểm tra. Nếu biến môi trường cũng không được đặt Mặc định cứng được sử dụng. Giá trị trả về là một con trỏ tới một cấu trúc trừu tượng đại diện cho kèo bóng đá hôm nay và ngày mai với phần phụ trợ.
  • PQSetDbLoginlàm cho một cái mới kèo bóng đá hôm nay và ngày mai với máy chủ cơ sở dữ liệu.

    PGConn *pqsetdblogin (const char *pghost,
                         const char *pgport,
                         const char *pgoptions,
                         const char *pgtty,
                         const char *dbname,
                         const char *đăng nhập,
                         const char *pwd)
    Đây là tiền thân củaPQConnectDBvới số lượng tham số cố định nhưng cùng chức năng.
  • PQSetDBTạo kèo bóng đá hôm nay và ngày mai mới với Máy chủ cơ sở dữ liệu.

    13350_13505
    Đây là kèo bóng đá hôm nay và ngày mai macro gọipqsetDbLogin ()với các con trỏ null cho đăng nhập và tham số PWD. Nó được cung cấp chủ yếu cho khả năng tương thích ngược với các chương trình cũ.
  • PQConnectStart PQConnectPollTạo kèo bóng đá hôm nay và ngày mai với cơ sở dữ liệu máy chủ theo cách không chặn.

    PGConn *PQConnectStart (const char *ConnInfo)
    13991_14049
    Hai thói quen này được sử dụng để mở kèo bóng đá hôm nay và ngày mai với A máy chủ cơ sở dữ liệu sao cho chủ đề thực thi của ứng dụng của bạn là không bị chặn trên I/O từ xa trong khi làm như vậy.

    kèo bóng đá hôm nay và ngày mai cơ sở dữ liệu được thực hiện bằng cách sử dụng các tham số được thực hiện Từ chuỗiConninfo14338_14445

    Cả PQConnectStart và PQConnectPoll đều không bị chặn, miễn là như kèo bóng đá hôm nay và ngày mai số hạn chế được đáp ứng:

    • Các tham số máy chủ và máy chủ được sử dụng phù hợp Để đảm bảo rằng các truy vấn tên và tên ngược không được thực hiện. Xem tài kèo bóng đá hôm nay và ngày mai của các tham số này trong PQConnectDB ở trên để biết chi tiết.

    • Nếu bạn gọi pqtrace, hãy đảm bảo rằng đối tượng luồng kèo bóng đá hôm nay và ngày maio mà bạn theo dõi sẽ không chặn.

    • 14986_15121

    Để bắt đầu, hãy gọiConn = PQConnectStart ("<Connection_info_String"). Nếu Conn là NULL, thì kèo bóng đá hôm nay và ngày mai đã không thể phân bổ một cái mới Cấu trúc PGConn. Nếu không, một con trỏ PGConn hợp lệ được trả về (mặc dù chưa đại diện cho một kết nối hợp lệ với cơ sở dữ liệu). Khi trở về từ PQConnectStart, hãy gọi trạng thái = pqstatus (Conn). Nếu trạng thái bằng kết nối_bad, PQConnectStart đã thất bại.

    15601_16563

    Lưu ý rằng việc sử dụng chọn () để đảm bảo rằng ổ cắm là Sẵn sàng chỉ là kèo bóng đá hôm nay và ngày mai ví dụ (có khả năng); những người có cơ sở khác Có sẵn, chẳng hạn như cuộc gọi Poll (), tất nhiên có thể sử dụng điều đó thay vì.

    16787_17390

    • Connection_started: chờ kèo bóng đá hôm nay và ngày mai làm ra.

    • Connection_Made: kèo bóng đá hôm nay và ngày mai OK; chờ gửi.

    • Connection_Awaiting_Response: Đang chờ phản hồi từ người bán bưu điện.

    • Connection_Auth_ok: nhận được xác thực; chờ đợi Khởi động phụ trợ.

    • Connection_SetEnv: Môi trường đàm phán.

    Lưu ý rằng, mặc dù các hằng số này sẽ vẫn còn (theo thứ tự để duy trì khả năng tương thích) kèo bóng đá hôm nay và ngày mai ứng dụng không bao giờ nên dựa vào khi những thứ này xuất hiện theo kèo bóng đá hôm nay và ngày mai thứ tự cụ thể, hoặc Trạng thái luôn luôn là kèo bóng đá hôm nay và ngày mai trong những giá trị được ghi lại này. MỘT Ứng dụng có thể làm điều gì đó như thế này:
    Switch (pqstatus (Conn))
    
            Case Connection_started:
                Phản hồi = "kèo bóng đá hôm nay và ngày mai ...";
                phá vỡ;
    
            Case Connection_Made:
                Phản hồi = "kèo bóng đá hôm nay và ngày mai với máy chủ ...";
                phá vỡ;
    .
    .
    .
            mặc định:
                Phản hồi = "kèo bóng đá hôm nay và ngày mai ...";

    18561_18835

    18846_18980

    PQConnectPoll hiện sẽ chặn trong Windows, trừ khi kèo bóng đá hôm nay và ngày mai được biên dịch với win32_non_blocking_connections được xác định. Mã này chưa được kiểm tra trong Windows và vì vậy nó là hiện đang tắt theo mặc định. Điều này có thể được thay đổi trong tương lai.

    Những chức năng này để lại ổ cắm ở trạng thái không chặn như nếu nhưpqsetNonblockingđã được gọi điện.

  • PQConnDefaultsTrả về mặc định Tùy chọn kèo bóng đá hôm nay và ngày mai.

    19535_20303
    20307_20729

    Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách chuyển nó cho Pqconninfofree (). Nếu điều này không được thực hiện, kèo bóng đá hôm nay và ngày mai lượng nhỏ bộ nhớ bị rò rỉ cho mỗi cuộc gọi đến pqconndefaults ().

    Trong các phiên bản postgres trước 7.0, pqconndefaults () đã trả về a con trỏ đến kèo bóng đá hôm nay và ngày mai mảng tĩnh, thay vì được phân bổ động Mảng. Đó không an toàn cho chủ đề, vì vậy hành vi đã được đã thay đổi.

  • 21170_21180Đóng kèo bóng đá hôm nay và ngày mai với phụ trợ. Cũng giải phóng bộ nhớ được sử dụng bởi đối tượng PGConn.

    VOID PQFINISH (PGCONN *Conn)
    21335_21575
  • pqresetĐặt lại giao tiếp Cổng có phụ trợ.

    void pqreset (pgconn *Conn)
    Hàm này sẽ đóng kèo bóng đá hôm nay và ngày mai với phần phụ trợ và Cố gắng thiết lập lại một kèo bóng đá hôm nay và ngày mai mới với cùng một máy bưu điện, Sử dụng tất cả các tham số giống nhau được sử dụng trước đây. Điều này có thể hữu ích Để phục hồi lỗi nếu mất kèo bóng đá hôm nay và ngày mai làm việc.
  • pqresetstart pqresetpollĐặt lại cổng giao tiếp với phụ trợ, theo cách không chặn.

    int pqresetstart (pgconn *Conn);
    22262_22318
    Các chức năng này sẽ đóng kèo bóng đá hôm nay và ngày mai với phần phụ trợ và Cố gắng thiết lập lại một kèo bóng đá hôm nay và ngày mai mới với cùng một máy bưu điện, Sử dụng tất cả các tham số giống nhau được sử dụng trước đây. Điều này có thể hữu ích Để phục hồi lỗi nếu mất kèo bóng đá hôm nay và ngày mai làm việc. Họ khác nhau từ pqreset (ở trên) ở chỗ họ hành động theo cách không chặn. Các chức năng này phải chịu các hạn chế tương tự như pqconnectstart và PQConnectPoll.

    Gọi pqresetstart. Nếu nó trả về 0, thiết lập lại đã thất bại. Nếu như nó trả về 1, thăm dò đặt lại bằng cách sử dụng pqresetpoll chính xác Tương tự như bạn sẽ tạo kèo bóng đá hôm nay và ngày mai bằng cách sử dụng PQConnectPoll.

Lập trình viên ứng dụng kèo bóng đá hôm nay và ngày mai nên cẩn thận để duy trì PGConn trừu tượng. Sử dụng các chức năng truy cập bên dưới để có được Nội dung của PGConn. Tránh trực tiếp tham chiếu các trường của Cấu trúc PGConn 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 pgconn thậm chí không được cung cấp trongkèo bóng đá hôm nay và ngày mai-fe.h. Nếu bạn có mã cũ Truy cập trực tiếp các trường PGConn, bạn có thể tiếp tục sử dụng nó bằng cách bao gồmkèo bóng đá hôm nay và ngày mai-int.hquá, nhưng bạn được khuyến khích Để sửa mã sớm.)

  • PQDBTrả về tên cơ sở dữ liệu của kèo bóng đá hôm nay và ngày mai.

    char *pqdb (const pgconn *Conn)
    PQDB và một số chức năng tiếp theo trả về các giá trị Được thành lập tại kèo bóng đá hôm nay và ngày mai. Các giá trị này được cố định cho cuộc sống của Đối tượng PGConn.
  • PQUSERTrả về tên người dùng của kèo bóng đá hôm nay và ngày mai.

    char *pquser (const pgconn *Conn)
  • PQPass24105_24151

    Char *PQPass (const PGConn *Conn)
  • PQHOSTTrả về máy chủ máy chủ Tên của kèo bóng đá hôm nay và ngày mai.

    Char *pqhost (const pgconn *Conn)
  • PQPortTrả về cổng của sự liên quan.

    char *pqport (const pgconn *Conn)
  • pqttyTrả về bản gỡ lỗi của tty của sự liên quan.

    char *pqtty (const pgconn *Conn)
  • PQOptionsTrả về phần phụ trợ các tùy chọn được sử dụng trong kèo bóng đá hôm nay và ngày mai.

    char *pqoptions (const pgconn *Conn)
  • pqstatusTrả về trạng thái của sự liên quan.

    ConnstatusType pqStatus (const pgconn *Conn)

    Trạng thái có thể là một trong một số giá trị. Tuy nhiên, chỉ Hai trong số này được nhìn thấy bên ngoài kèo bóng đá hôm nay và ngày mai không đồng bộ thủ tục -Connection_okhoặcConnection_Bad. Một kèo bóng đá hôm nay và ngày mai tốt với Cơ sở dữ liệu có kèo bóng đá hôm nay và ngày mai trạng thái_ok. Một kèo bóng đá hôm nay và ngày mai thất bại Cố gắng được báo hiệu bởi trạng tháiConnection_Bad. Thông thường, kèo bóng đá hôm nay và ngày mai trạng thái OK sẽ vẫn như vậy cho đến khipqfinish, nhưng a Lỗi truyền thông có thể dẫn đến trạng thái thay đổi thànhConnection_Badsớm. Trong đó trường hợp ứng dụng có thể cố gắng khôi phục bằng cách gọipqreset.

    Xem mục cho PQConnectStart và PQConnectPoll với liên quan đến các mã trạng thái khác có thể được nhìn thấy.

  • pqerrormessageTrả về lỗi thông báo gần đây nhất được tạo bởi kèo bóng đá hôm nay và ngày mai hoạt động trên sự liên quan.

    char * pqerrormessage (const pgconn * Conn);

    Gần như tất cả các chức năng kèo bóng đá hôm nay và ngày mai sẽ được đặtpqerrormessageNếu họ thất bại. Lưu ý rằng bằng kèo bóng đá hôm nay và ngày mai quy ước, không trốngpqerrormessagesẽ bao gồm kèo bóng đá hôm nay và ngày mai dấu vết NEWLINE.

  • PQBackendPidTrả về quy trìnhidcủa xử lý máy chủ phụ trợ kèo bóng đá hôm nay và ngày mai này.

    int pqbackendPid (const pgconn *Conn);
    phụ trợPIDrất hữu ích cho mục đích gỡ lỗi và để so sánh với thông báo thông báo (mà Bao gồmPIDcủa thông báo phụ trợ). Lưu ý rằngPIDthuộc về một quy trình thực thi trên máy chủ máy chủ cơ sở dữ kèo bóng đá hôm nay và ngày mai chứ không phải cục bộ chủ nhà!