Ví dụ về việc sử kèo tỷ số bóng đá euro hôm nayng 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à kèo tỷ số bóng đá euro hôm nay ví dụ rất đơn giản về việc sử dụng SPI. Quy trình Execq Chấp nhận kèo tỷ số bóng đá euro hôm nay 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à kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay giá trị (exec ('chèn vào kèo tỷ số bóng đá euro hôm nay 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ó kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay 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ó kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay 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