Phiên bản không được hỗ trợ:6.5
Tài liệu này dành cho phiên bản không được hỗ trợ của kèo bóng đá pháp.
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ế.

Mẫu kèo bóng đá pháp

/*--------------------------------------------------------------------------
          *
          * testlo.c--
          * Kiểm tra bằng cách sử dụng các đối tượng lớn với libpq
          *
          * Bản quyền (c) 1994, Regents của Đại học California
          *
          *
          * Nhận dạng
          * /usr
          *
          *----------------------------------------------------------------------
          */
         #include <stdio.h
         #include "libpq-fe.h"
         #include "libpq/libpq-fs.h"

         #Define Bufsize 1024

         /*
          * Nhập khẩu * Nhập tệp "in_filename" vào cơ sở dữ liệu dưới dạng đối tượng lớn "lobjoid"
          *
          */
         OID Nhập khẩu (PGConn *kèo bóng đá pháp, Char *FileName)

             Oid lobjid;
             int lobj_fd;
             char buf [bufsize];
             int nbytes, TMP;
             int fd;

             /*
              * Mở tệp để đọc trong
              */
             fd = open (tên tệp, o_rdonly, 0666);
             if (fd <0)  / * lỗi * /
              fprintf (stderr, "không thể mở tệp unix %s \ n", tên tệp);

             /*
              * Tạo đối tượng lớn
              */
             lobjid = lo_creat (kèo bóng đá pháp, inv_read | inv_write);
             if (lobjid == 0) 
              fprintf (stderr, "không thể tạo đối tượng lớn \ n");

             lobj_fd = lo_open (kèo bóng đá pháp, lobjid, inv_write);
             /*
              * Đọc từ tệp Unix và ghi vào tệp đảo ngược
              */
             while ((nbytes = read (fd, buf, bufsize)) 0) 
              tmp = lo_write (kèo bóng đá pháp, lobj_fd, buf, nbytes);
              if (tmp <nbytes) 
                  fprintf (stderr, "lỗi trong khi đọc đối tượng lớn \ n");

             (void) đóng (FD);
             (void) lo_close (kèo bóng đá pháp, lobj_fd);

             trả lại lobjid;

         void pickout (pgconn *kèo bóng đá pháp, oid lobjid, int start, int len)

             int lobj_fd;
             char* buf;
             int nbytes;
             int nread;

             lobj_fd = lo_open (kèo bóng đá pháp, lobjid, inv_read);
             if (lobj_fd <0) 
              fprintf (stderr, "không thể mở đối tượng lớn %d \ n",
                   lobjid);

             lo_lseek (kèo bóng đá pháp, lobj_fd, bắt đầu, seek_set);
             buf = malloc (len+1);

             nread = 0;
             while (len - nread 0) 
              nbytes = lo_read (kèo bóng đá pháp, lobj_fd, buf, len - nread);
              buf [nbytes] = '';
              fprintf (stderr, " %s", buf);
              NREAD += nbytes;

             fprintf (stderr, "\ n");
             lo_close (kèo bóng đá pháp, lobj_fd);

         Void ghi đè (PGConn *kèo bóng đá pháp, Oid lobjid, Int Start, Int Len)

             int lobj_fd;
             char* buf;
             int nbytes;
             int nwritten;
             int i;

             lobj_fd = lo_open (kèo bóng đá pháp, lobjid, inv_read);
             if (lobj_fd <0) 
              fprintf (stderr, "không thể mở đối tượng lớn %d \ n",
                   lobjid);

             lo_lseek (kèo bóng đá pháp, lobj_fd, bắt đầu, seek_set);
             buf = malloc (len+1);

             for (i = 0; i <len; i ++)
              buf [i] = 'x';
             buf [i] = '';

             nwritten = 0;
             while (len - nwritten 0) 
              nbytes = lo_write (kèo bóng đá pháp, lobj_fd, buf + nwritten, len - nwritten);
              nwritten += nbytes;

             fprintf (stderr, "\ n");
             lo_close (kèo bóng đá pháp, lobj_fd);

         /*
          * Xuất
          *
          */
         void ExportFile (PGConn *kèo bóng đá pháp, oid lobjid, char *filename)

             int lobj_fd;
             char buf [bufsize];
             int nbytes, TMP;
             int fd;

             /*
              * Tạo một "đối tượng" đảo ngược
              */
             lobj_fd = lo_open (kèo bóng đá pháp, lobjid, inv_read);
             if (lobj_fd <0) 
              fprintf (stderr, "không thể mở đối tượng lớn %d \ n",
                   lobjid);

             /*
              * Mở tệp để được ghi vào
              */
             fd = open (tên tệp, o_creat | o_wronly, 0666);
             if (fd <0)  / * lỗi * /
              fprintf (stderr, "không thể mở tệp unix %s \ n",
                   tên tệp);

             /*
              * Đọc từ tệp Unix và ghi vào tệp đảo ngược
              */
             while ((nbytes = lo_read (kèo bóng đá pháp, lobj_fd, buf, bufsize)) 0) 
              TMP = Viết (FD, BUF, NBYTES);
                 if (tmp <nbytes) 
                  fprintf (stderr, "lỗi trong khi viết %s \ n",
                       tên tệp);

             (void) lo_close (kèo bóng đá pháp, lobj_fd);
             (void) đóng (FD);

             trở lại;

         Vô hiệu
         exit_nicely (pgconn* kèo bóng đá pháp)

           Pqfinish (kèo bóng đá pháp);
           Thoát (1);

         int
         Main (int argc, char ** argv)

             char *in_filename, *out_filename;
             cơ sở dữ liệu char *;
             Oid lobjoid;
             Pgconn *kèo bóng đá pháp;
             Pgresult *res;

             if (argc! = 4) 
              fprintf (stderr, "sử dụng: %s database_name in_filename out_filename \ n",
                   Argv [0]);
              Thoát (1);

             cơ sở dữ liệu = argv [1];
             in_filename = argv [2];
             out_filename = argv [3];

             /*
              * Thiết lập kết nối
              */
             kèo bóng đá pháp = pqsetDB (null, null, null, null, cơ sở dữ liệu);

             / * Kiểm tra xem kết nối phụ trợ đã được thực hiện thành công */
             if (pqstatus (kèo bóng đá pháp) == Connection_bad) 
              fprintf (stderr, "kết nối với cơ sở dữ liệu '%s' không thành công. \ n", cơ sở dữ liệu);
              fprintf (stderr, "%s", pqerrormessage (kèo bóng đá pháp));
              exit_nicely (kèo bóng đá pháp);

             res = pqExec (kèo bóng đá pháp, "bắt đầu");
             PQCLEAR (RES);

             printf ("Nhập tệp %s \ n", in_filename);
         /* lobjoid = Nhập khẩu (kèo bóng đá pháp, in_filename); */
             lobjoid = lo_import (kèo bóng đá pháp, in_filename);
         /*
             printf ("như đối tượng lớn %d. \ n", lobjoid);

             printf ("chọn ra byte 1000-2000 của đối tượng lớn \ n");
             Pickout (kèo bóng đá pháp, lobjoid, 1000, 1000);

             printf ("ghi đè byte 1000-2000 của đối tượng lớn với x của \ n");
             Ghi đè (kèo bóng đá pháp, lobjoid, 1000, 1000);
         */

             printf ("xuất đối tượng lớn sang tệp %s \ n", out_filename);
         /* exportFile (kèo bóng đá pháp, lobjoid, out_filename); */
             lo_export (kèo bóng đá pháp, lobjoid, out_filename);

             res = pqExec (kèo bóng đá pháp, "end");
             PQCLEAR (RES);
             Pqfinish (kèo bóng đá pháp);
             Thoát (0);