Trong nhiều trường hợp, các câu lệnh kèo bóng đá c1 cụ thể mà một ứng dụng phải thực thi được biết tại thời điểm ứng dụng được viết. Tuy nhiên, trong một số trường hợp, các câu lệnh kèo bóng đá c1 được sáng tác tại thời điểm chạy hoặc được cung cấp bởi một nguồn bên ngoài. Trong những trường hợp này, bạn không thể nhúng các câu lệnh kèo bóng đá c1 trực tiếp vào mã nguồn C, nhưng có một cơ sở cho phép bạn gọi các câu lệnh kèo bóng đá c1 tùy ý mà bạn cung cấp trong một biến chuỗi.
Cách đơn giản nhất để thực hiện câu lệnh kèo bóng đá c1 tùy ý là sử dụng lệnhthực hiện ngay lập tức
. Ví dụ:
11452_11600
thực hiện ngay lập tức
có thể được sử dụng cho các câu lệnh kèo bóng đá c1 không trả về tập kết quả (ví dụ: DDL,Chèn
, Cập nhật
, Xóa
). Bạn không thể thực hiện các câu kèo bóng đá c1 truy xuất dữ liệu (ví dụ:Chọn
) Theo cách này. Phần tiếp theo mô tả cách làm điều đó.
Một cách mạnh mẽ hơn để thực hiện các câu lệnh kèo bóng đá c1 tùy ý là chuẩn bị chúng một lần và thực hiện câu lệnh đã chuẩn bị thường xuyên như bạn muốn. Cũng có thể chuẩn bị một phiên bản tổng quát của một câu lệnh và sau đó thực hiện các phiên bản cụ thể của nó bằng cách thay thế các tham số. Khi chuẩn bị tuyên bố, hãy viết các dấu câu hỏi mà bạn muốn thay thế các tham số sau này. Ví dụ:
EXEC kèo bóng đá c1 bắt đầu phần khai báo; const char *stmt = "chèn vào các giá trị test1 (?,?);"; EXEC kèo bóng đá c1 END TUYÊN BỐ TUYÊN BỐ; EXEC kèo bóng đá c1 Chuẩn bị MyStmt từ: STMT; ... EXEC kèo bóng đá c1 Thực thi MyStmt bằng 42, 'foobar';
Khi bạn không cần câu kèo bóng đá c1 đã chuẩn bị nữa, bạn nên giải quyết nó:
EXEC kèo bóng đá c1 DealLocate Preptên
;
Để thực hiện câu lệnh kèo bóng đá c1 với một hàng kết quả duy nhất,thực thi
có thể được sử dụng. Để lưu kết quả, thêm mộtthành
mệnh đề.
13533_13785
ANthực thi
kèo bóng đá c1 có thể cóthành
mệnh đề, ASử dụng
mệnh đề, cả hai hoặc không.
Nếu một truy vấn dự kiến sẽ trả về nhiều hơn một hàng kết quả, nên sử dụng con trỏ, như trong ví dụ sau. (Nhìn thấyPhần 35.3.2Để biết thêm chi tiết về con trỏ.)
EXEC kèo bóng đá c1 bắt đầu khai báo; Char Dbaname [128]; DatName char [128]; char *stmt = "Chọn U.usename là Dbaname, D.DatName" "Từ pg_database D, pg_user u" "Trường hợp D.Datdba = U.Usesysid"; EXEC kèo bóng đá c1 END TUYÊN BỐ TUYÊN BỐ; EXEC kèo bóng đá c1 kết nối với TestDB với tư cách là người dùng người dùng CON1; Exec kèo bóng đá c1 chọn pg_catalog.set_config ('search_path', '', false); Exec kèo bóng đá c1 cam kết; EXEC kèo bóng đá c1 Chuẩn bị STMT1 từ: STMT; EXEC kèo bóng đá c1 tuyên bố con trỏ con trỏ cho STMT1; Exec kèo bóng đá c1 mở con trỏ1; EXEC kèo bóng đá c1 Bất cứ khi nào không tìm thấy bị phá vỡ; while (1) Exec kèo bóng đá c1 Fetch Con trỏ1 vào: DBANAME,: DATNAME; printf ("dbaname =%s, datName =%s \ n", dbaname, datName); Exec kèo bóng đá c1 Đóng con trỏ1; Exec kèo bóng đá c1 cam kết; Exec kèo bóng đá c1 ngắt kết nối tất cả;
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.