Ví dụ về việc sử cách đọc cách đọc kèo bóng đáng SPI này thể hiện quy tắc hiển thị. Có nhiều ví dụ phức tạp hơn trong SRC/Test/Refor/Reform và trong đóng góp/spi.
Đây là cách đọc kèo bóng đá ví dụ rất đơn giản về việc sử dụng SPI. Quy trình Execq Chấp nhận cách đọc kèo bóng đá Trận đấu SQL trong đối số đầu tiên và Tcount trong thứ hai, thực thi truy vấn bằng spi_exec và trả về số lượng Tuples mà truy vấn được thực thi:
int exec (văn bản *sql, int cnt); int EXECQ (Text *SQL, Int CNT) int ret; int Proc = 0; Spi_connect (); ret = spi_exec (textout (sql), cnt); Proc = spi_proced; /* * Nếu điều này được chọn và cách đọc kèo bóng đá số Tuple (s) được tìm nạp - * Trả về các bộ dữ liệu cho người gọi thông qua ELOG (thông báo). */ if (ret == spi_ok_select && spi_proced 0) Tupledesc tupdesc = spi_tuptable- tupdesc; Spitupletable *TUPTABLE = spi_tuptable; char buf [8192]; int i; for (ret = 0; ret <proc; ret ++) Nặng tuple = tupsable- vals [ret]; for (i = 1, buf [0] = 0; i <= tupdesc- natts; i ++) Sprintf (buf + strlen (buf), " %s %s", Spi_getvalue (tuple, tupdesc, i), (i == Tupdesc- natts)? "": "|"); ELOG (Thông báo, "Execq: %s", BUF); Spi_finish (); trở lại (Proc);
Bây giờ, biên dịch và tạo hàm:
7085_7169
Vac = chọn Execq ('Tạo Bảng A (x Int4)', 0); EXECQ ----- 0 (1 hàng) Vac = chèn vào cách đọc kèo bóng đá giá trị (exec ('chèn vào cách đọc kèo bóng đá giá trị (0)', 0)); Chèn 167631 1 Vac = Chọn Execq ('Chọn * từ A', 0); THÔNG BÁO: EXECQ: 0 <<< Được chèn bởi EXECQ THÔNG BÁO: EXECQ: 1 <<< Giá trị được thực thi trả về và được chèn bằng cách chèn trên EXECQ ----- 2 (1 hàng) Vac = Chọn Execq ('Chèn vào A Chọn x + 2 từ A', 1); EXECQ ----- 1 (1 hàng) Vac = Chọn Execq ('Chọn * từ A', 10); THÔNG BÁO: EXECQ: 0 THÔNG BÁO: EXECQ: 1 THÔNG BÁO: EXECQ: 2 <<< 0 + 2, chỉ có cách đọc kèo bóng đá tuple được chèn - như được chỉ định EXECQ ----- 3 <<< 10 chỉ có giá trị tối đa, 3 là thực sự # của các bộ dữ (1 hàng) Vac = Xóa khỏi a; Xóa 3 Vac = Chèn vào cách đọc kèo bóng đá giá trị (Execq ('select * từ a', 0) + 1); Chèn 167712 1 Vac = Chọn * từ a; x - 1 <<< Không có bộ dữ liệu trong A (0) + 1 (1 hàng) Vac = Chèn vào cách đọc kèo bóng đá giá trị (Execq ('select * từ a', 0) + 1); THÔNG BÁO: EXECQ: 0 Chèn 167713 1 Vac = Chọn * từ a; x - 1 2 <<< Có cách đọc kèo bóng đá tuple duy nhất trong A + 1 (2 hàng) - Điều này thể hiện Quy tắc hiển thị thay đổi dữ liệu: Vac = Chèn vào cách đọc kèo bóng đá exec Chọn ('select * từ a', 0) * x từ a; THÔNG BÁO: EXECQ: 1 THÔNG BÁO: EXECQ: 2 THÔNG BÁO: EXECQ: 1 THÔNG BÁO: EXECQ: 2 THÔNG BÁO: EXECQ: 2 Chèn 0 2 Vac = Chọn * từ a; x - 1 2 2 <<< 2 Tuples * 1 (x trong đầu tiên) 6 <<< 3 Tuples (2 + 1 vừa được chèn) * 2 (x trong phần thứ hai) (4 hàng) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Tuples hiển thị cho exec () trong các yêu cầu khác nhau