Postgresql 8.3.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 32.ECPG- nhúngSQLtrong C | Chuyển tiếp nhanh | Tiếp theo |
inPhần 32.4Bạn đã thấy cách Bạn có thể thực hiện kèo tỷ số bóng đá euro hôm nay câu lệnh SQL từ một chương trình SQL nhúng. Một số trong số kèo tỷ số bóng đá euro hôm nay câu lệnh chỉ được sử dụng kèo tỷ số bóng đá euro hôm nay giá trị cố định và không cung cấp cách chèn kèo tỷ số bóng đá euro hôm nay giá trị do người dùng cung cấp vào kèo tỷ số bóng đá euro hôm nay câu lệnh hoặc có Chương trình xử lý kèo tỷ số bóng đá euro hôm nay giá trị được trả về bởi truy vấn. Những loại đó kèo tỷ số bóng đá euro hôm nay tuyên bố không thực sự hữu ích trong kèo tỷ số bóng đá euro hôm 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à kèo tỷ số bóng đá euro hôm nay câu lệnh SQL nhúng bằng cơ chế đơn giản gọi điệnkèo tỷ số bóng đá euro hôm nay chủ. Trong một nhúng Chương trình SQL Chúng tôi coi kèo tỷ số bóng đá euro hôm nay câu lệnh SQL làKháchTrong mã chương trình C làNgôn ngữ máy chủ. Do đó kèo tỷ số bóng đá euro hôm nay của chương trình C được gọi làMáy chủ kèo tỷ số bóng đá euro hôm nay.
11556_11917
EXEC SQL chèn vào kèo tỷ số bóng đá euro hôm nay giá trị một số (: v1, 'foo',: v2);
Câu lệnh này đề cập đến hai kèo tỷ số bóng đá euro hôm nay C có tênV1vàV2và cũng sử dụng 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ử dụng một loại dữ liệu hoặc loại khác.
Phong cách chèn c biến C trong kèo tỷ số bóng đá euro hôm nay câu lệnh SQL hoạt động Bất cứ nơi nào một biểu thức giá trị được mong đợi trong SQL tuyên bố.
Ví dụ, chuyển dữ liệu từ chương trình sang cơ sở dữ liệu 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, kèo tỷ số bóng đá euro hôm 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:
Phần khai báo cuối SQL;
Giữa kèo tỷ số bóng đá euro hôm nay dòng đó, phải có biến C bình thường Tuyên bố, chẳng hạn như:
int x = 4; char foo [16], thanh [16];
13257_13547
EXEC SQL INT I = 4;
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 là kèo tỷ số bóng đá euro hôm 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. kèo tỷ số bóng đá euro hôm nay không được sử dụng trong 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ý kèo tỷ số bóng đá euro hôm nay loại này vì nó không Biết định nghĩa.
Là một biến máy chủ, bạn cũng có thể sử dụng mảng, typedefs, Cấu trúc và con trỏ. Hơn nữa, có những loại máy chủ đặc biệt kèo tỷ số bóng đá euro hôm nay chỉ tồn tại trong ECPG.
Một vài ví dụ về kèo tỷ số bóng đá euro hôm nay chủ:
Một trong những cách sử dụng phổ kèo tỷ số bóng đá euro hôm nay nhất của khai báo mảng là Có lẽ là phân bổ một mảng char như trong:
EXEC SQL BẮT ĐẦU phần khai báo; char str [50]; Exec sql end decare phần;
Lưu ý rằng bạn phải chăm sóc độ dài cho bản thân bạn. Nếu bạn sử dụng kèo tỷ số bóng đá euro hôm nay chủ này làm mục tiêu Biến một truy vấn trả về một chuỗi với nhiều hơn 49 ký tự, xảy ra tràn bộ đệm.
Sử dụngtypedefTừ khóa đến ánh xạ kèo tỷ số bóng đá euro hôm nay loại mới thành kèo tỷ số bóng đá euro hôm nay loại đã có.
EXEC SQL bắt đầu phần khai báo; typedef char mychartype [40]; typedef dài serial_t; Exec sql end decare phần;
Lưu ý rằng bạn cũng có thể sử dụng:
EXEC SQL Loại serial_t dài;
15603_15678
Bạn có thể khai báo con trỏ đến các loại phổ biến nhất. Tuy nhiên, lưu ý rằng bạn không thể sử dụng con trỏ làm mục tiêu kèo tỷ số bóng đá euro hôm nay của các truy vấn không có phân bổ tự động. Nhìn thấyPhần 32.10cho Thêm thông tin về phân bổ tự động.
EXEC SQL bắt đầu khai báo; int *intp; char ** charp; Exec sql end decare phần;
ECPG chứa một số loại đặc biệt giúp bạn Tương tác dễ dàng với dữ liệu từ SQL Server. Vì Ví dụ nó đã triển khai hỗ trợ choVarchar, Số, ngày, TimestampvàKhoảngloại.Phần 32.8Chứa kèo tỷ số bóng đá euro hôm nay chức năng cơ bản để đối phó với kèo tỷ số bóng đá euro hôm nay loại đó, như vậy rằng bạn không cần gửi truy vấn đến máy chủ SQL Chỉ để thêm một khoảng thời gian vào dấu thời gian cho ví dụ.
Loại đặc biệtVarcharIS được chuyển đổi thành một cái tênstructcho Mỗi kèo tỷ số bóng đá euro hôm 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 SQL Datums thuộc loạiVarchar.
17633_17857ChọnvàFetch. Những cái này kèo tỷ số bóng đá euro hôm nay lệnh có một đặc biệtthànhmệnh đề chỉ định kèo tỷ số bóng đá euro hôm nay 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ử dụng lệnhFetch:
EXEC SQL bắt đầu 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ả kèo tỷ số bóng đá euro hôm nay mệnh đề bình thường.
Cả hai phương pháp này chỉ cho phép truy xuất một hàng tại A thời gian. Nếu bạn cần xử lý kèo tỷ số bóng đá euro hôm nay bộ kết quả có khả năng chứa nhiều hơn một hàng, bạn cần sử dụng con trỏ, như được hiển thị Trong ví dụ thứ hai.
kèo tỷ số bóng đá euro hôm nay ví dụ trên không xử lý kèo tỷ số bóng đá euro hôm nay giá trị null. Trong thực tế, kèo tỷ số bóng đá euro hôm 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 kèo tỷ số bóng đá euro hôm nay giá trị null cho cơ sở dữ liệu hoặc truy xuất kèo tỷ số bóng đá euro hôm 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 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 kèo tỷ số bóng đá euro hôm nay giá trị null một cách chính xác:
20141_20288
kèo tỷ số bóng đá euro hôm 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.
Chỉ báo có chức năng khác: Nếu giá trị chỉ báo là tích cực, nó có nghĩa là giá trị không phải là vô giá trị, nhưng nó là cắt ngắn khi nó được lưu trữ trong kèo tỷ số bóng đá euro hôm nay chủ.