Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 30.ECPG- nhúngSQLtrong C | Chuyển tiếp nhanh | Tiếp theo |
inPhần 30.4Bạn đã thấy cách Bạn có thể thực hiện tỷ lệ kèo bóng đá tối nay câu lệnh SQL từ một chương trình SQL nhúng. Một số trong số tỷ lệ kèo bóng đá tối nay câu lệnh chỉ được sử dụng tỷ lệ kèo bóng đá tối nay giá trị cố định và không cung cấp cách chèn tỷ lệ kèo bóng đá tối nay giá trị do người dùng cung cấp vào tỷ lệ kèo bóng đá tối nay câu lệnh hoặc có Chương trình xử lý tỷ lệ kèo bóng đá tối nay giá trị được trả về bởi truy vấn. Những loại đó tỷ lệ kèo bóng đá tối nay tuyên bố không thực sự hữu ích trong tỷ lệ kèo bóng đá tối nay ứng dụng thực sự. Cái này Phần giải thích chi tiết về cách bạn có thể truyền dữ liệu giữa c của bạn chương trình và tỷ lệ kèo bóng đá tối nay câu lệnh SQL nhúng bằng cơ chế đơn giản gọi điệntỷ lệ kèo bóng đá tối nay chủ.
Truyền dữ liệu giữa chương trình C và các câu lệnh SQL là Đặc biệt đơn giản trong SQL nhúng. Thay vì có lập trình dán dữ liệu vào tuyên bố, đòi hỏi tỷ lệ kèo bóng đá tối nay chứng khác nhau, chẳng hạn như trích dẫn đúng giá trị, bạn Có thể chỉ cần viết tên của một biến C vào SQL Tuyên bố, tiền tố bởi một đại tràng. Ví dụ:
EXEC SQL chèn vào tỷ lệ kèo bóng đá tối nay giá trị một số (: v1, 'foo',: v2);
11750_11800V1vàV2và cũng sử tỷ lệ kèo bóng đá tối nay một chuỗi SQL thông thường theo nghĩa đen, để minh họa rằng bạn không bị hạn chế sử tỷ lệ kèo bóng đá tối nay một loại dữ liệu hoặc loại khác.
Phong cách chèn c biến C trong các câu lệnh SQL Bất cứ nơi nào một biểu thức giá trị được mong đợi trong một câu lệnh SQL. TRONG Môi trường SQL mà chúng tôi gọi các tham chiếu đến tỷ lệ kèo bóng đá tối nay Ctỷ lệ kèo bóng đá tối nay chủ.
Để chuyển dữ liệu từ chương trình sang cơ sở dữ liệu, ví dụ dưới dạng các tham số trong truy vấn hoặc để truyền dữ liệu từ cơ sở dữ liệu Quay lại chương trình, tỷ lệ kèo bóng đá tối nay C được dự định chứa dữ liệu này cần được khai báo đặc biệt các phần, vì vậy bộ tiền xử lý SQL nhúng được biết đến họ.
Phần này bắt đầu bằng
EXEC SQL BẮT ĐẦU TUYỆT VỜI;
và kết thúc bằng
EXEC SQL End Declare phần;
Giữa tỷ lệ kèo bóng đá tối nay dòng đó, phải có biến C bình thường Tuyên bố, chẳng hạn như
int x; char foo [16], thanh [16];
Bạn có thể có nhiều phần khai báo trong một chương trình như bạn giống.
Các khai báo cũng được lặp lại với tệp đầu ra dưới dạng tỷ lệ kèo bóng đá tối nay C bình thường, vì vậy không cần phải khai báo chúng một lần nữa. tỷ lệ kèo bóng đá tối nay không được sử dụng với các lệnh SQL có thể được khai báo bình thường bên ngoài các phần đặc biệt này.
Định nghĩa về cấu trúc hoặc liên kết cũng phải được liệt kê Bên trong Akhai báoPhần. Nếu không thì Bộ tiền xử lý không thể xử lý tỷ lệ kèo bóng đá tối nay loại này vì nó không Biết định nghĩa.
Loại đặc biệtVarcharđược chuyển đổi vào một cái tênstructĐối với mỗi tỷ lệ kèo bóng đá tối nay. MỘT Tuyên bố như
Varchar var [180];
được chuyển đổi thành
struct varchar_var int len; Char Arr [180]; var;
Cấu trúc này phù hợp để giao tiếp với Datums SQL loạiVarchar.
Bây giờ bạn sẽ có thể truyền dữ liệu được tạo bởi lập trình vào một lệnh SQL. Nhưng làm thế nào để bạn lấy lại Kết quả của một truy vấn? Với mục đích đó, SQL nhúng cung cấp tỷ lệ kèo bóng đá tối nay thể đặc biệt của các lệnh thông thườngChọnvàFetch. Những cái này tỷ lệ kèo bóng đá tối nay lệnh có một đặc biệtthànhmệnh đề chỉ định tỷ lệ kèo bóng đá tối nay máy chủ nào các giá trị được truy xuất được lưu trữ trong.
Đây là một ví dụ:
/* * Giả sử bảng này: * Tạo Bảng Test1 (A Int, B Varchar (50)); */ EXEC SQL bắt đầu phần khai báo; int v1; Varchar v2; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; ... EXEC SQL Chọn a, b vào: v1,: v2 từ kiểm tra;
SOthànhmệnh đề xuất hiện giữa Danh sách chọn vàtừmệnh đề. Số lượng phần tử trong danh sách chọn và danh sách sauthành(còn được gọi là danh sách đích) Phải bằng.
Đây là một ví dụ sử tỷ lệ kèo bóng đá tối nay lệnhFetch:
EXEC SQL BẮT ĐẦU phần khai báo; int v1; Varchar v2; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; ... EXEC SQL khai báo con trỏ foo cho chọn a, b từ thử nghiệm; ... LÀM ... EXEC SQL tìm nạp tiếp theo từ foo thành: v1,: v2; ... trong khi (...);
ở đâythànhmệnh đề xuất hiện sau tất cả tỷ lệ kèo bóng đá tối nay mệnh đề bình thường.
15787_16000
tỷ lệ kèo bóng đá tối nay ví dụ trên không xử lý tỷ lệ kèo bóng đá tối nay giá trị null. Trong thực tế, tỷ lệ kèo bóng đá tối nay ví dụ truy xuất sẽ gây ra lỗi nếu họ tìm nạp một null Giá trị từ cơ sở dữ liệu. Để có thể chuyển tỷ lệ kèo bóng đá tối nay giá trị null cho cơ sở dữ liệu hoặc truy xuất tỷ lệ kèo bóng đá tối nay giá trị null từ cơ sở dữ liệu, bạn cần nối một đặc điểm kỹ thuật của máy chủ thứ hai vào từng máy chủ Biến chứa dữ liệu. Biến máy chủ thứ hai này là được gọi làChỉ báovà chứa a cờ cho biết liệu tỷ lệ kèo bóng đá tối nay mốc dữ liệu có phải là null hay không, trong trường hợp đó Giá trị của biến máy chủ thực bị bỏ qua. Đây là một ví dụ Điều đó xử lý đúng tỷ lệ kèo bóng đá tối nay giá trị null một cách chính xác:
EXEC SQL bắt đầu khai báo; Varchar val; int val_ind; EXEC SQL END TUYÊN BỐ TUYÊN BỐ: ... EXEC SQL Chọn B vào: val: val_ind từ test1;
tỷ lệ kèo bóng đá tối nay chỉ báoVal_indWill bằng không nếu giá trị không phải là null và nó sẽ âm nếu giá trị là null.
17125_17305