Trong nhiều trường hợp, các câu lệnh 스포츠 토토 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 스포츠 토토 đượ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 스포츠 토토 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 스포츠 토토 tùy ý mà bạn cung cấp trong một biến chuỗi.
Cách đơn giản nhất để thực thi câu lệnh 스포츠 토토 tùy ý là sử dụng lệnhthực hiện ngay lập tức
. Ví dụ:
EXEC 스포츠 토토 bắt đầu khai báo; const char *stmt = "Tạo bảng test1 (...);"; EXEC 스포츠 토토 END TUYÊN BỐ TUYÊN BỐ; EXEC 스포츠 토토 EXECUTE ngay lập tức: STMT;
thực hiện ngay lập tức
Có thể được sử dụng cho các câu lệnh SQL 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 lệnh 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 SQL 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 스포츠 토토 bắt đầu khai báo; const char *stmt = "chèn vào các giá trị test1 (?,?);"; EXEC 스포츠 토토 END TUYÊN BỐ TUYÊN BỐ; EXEC 스포츠 토토 Chuẩn bị MyStmt từ: STMT; ... EXEC 스포츠 토토 Thực thi MyStmt bằng 42, 'foobar';
Khi bạn không cần câu lệnh đã chuẩn bị nữa, bạn nên giải quyết nó:
EXEC 스포츠 토토 DealLocate Preptên
;
Để thực thi câu lệnh 스포츠 토토 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 đề.
EXEC SQL BẮT ĐẦU phần khai báo; const char *stmt = "chọn a, b, c từ test1 trong đó a?"; int v1, v2; Varchar v3 [50]; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; EXEC SQL Chuẩn bị MyStmt từ: STMT; ... EXEC SQL EXECUTE myStmt thành: v1,: v2,: v3 sử dụng 37;
ANthực thi
Lệnh 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 34.3.2Để biết thêm chi tiết về con trỏ.)
EXEC SQL 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 SQL END TUYÊN BỐ TUYÊN BỐ; EXEC SQL kết nối với TestDB với tư cách là người dùng người dùng CON1; Exec sql chọn pg_catalog.set_config ('search_path', '', false); Exec sql cam kết; EXEC SQL Chuẩn bị STMT1 từ: STMT; EXEC SQL tuyên bố con trỏ con trỏ cho STMT1; Exec sql mở con trỏ1; EXEC SQL Bất cứ khi nào không tìm thấy bị phá vỡ; while (1) Exec SQL Fetch Con trỏ1 vào: DBANAME,: DATNAME; printf ("dbaname =%s, datName =%s \ n", dbaname, datName); Exec SQL Đóng con trỏ1; Exec sql cam kết; Exec sql 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 phù hợ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.