Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

34.13.C ++Ứng cách đọc kèo bóng đá#

ECPG có một số hỗ trợ hạn chế cho các ứng cách đọc kèo bóng đá C ++. Phần này mô tả một số cảnh báo.

TheECPG9397_9578.cTệp. Tệp tiêu đề khai báo của các chức năng thư viện được sử cách đọc kèo bóng đá bởi các khối ngôn ngữ c màECPGTạo được gói cách đọc kèo bóng đáBên ngoài "C" ...Khối khi được sử cách đọc kèo bóng đá theo C ++, vì vậy chúng nên hoạt động liền mạch trong C ++.

Tuy nhiên, nói chung,ECPGBộ tiền xử lý chỉ hiểu C; Nó không xử lý cách đọc kèo bóng đá cú pháp đặc biệt và cách đọc kèo bóng đá từ dành riêng của ngôn ngữ C ++.

Một cách an toàn để sử cách đọc kèo bóng đá mã SQL được nhúng trong ứng cách đọc kèo bóng đá C ++ đang ẩn các cuộc gọi ECPG trong mô -đun C mà mã ứng cách đọc kèo bóng đá C ++ gọi vào để truy cập cơ sở dữ liệu và liên kết với phần còn lại của mã C ++. Nhìn thấyPhần 34.13.2về điều đó.

34.13.1. Phạm vi cho cách đọc kèo bóng đá biến máy chủ#

TheECPGBộ tiền xử lý hiểu phạm vi của cách đọc kèo bóng đá biến trong C. Trong ngôn ngữ C, điều này khá đơn giản vì phạm vi của cách đọc kèo bóng đá biến dựa trên cách đọc kèo bóng đá khối mã của chúng. Tuy nhiên, trong C ++, cách đọc kèo bóng đá biến thành viên lớp được tham chiếu trong một khối mã khác với vị trí được khai báo, vì vậyECPGBộ tiền xử lý sẽ không hiểu phạm vi của cách đọc kèo bóng đá biến thành viên lớp.

Ví dụ: cách đọc kèo bóng đá trường hợp sau,ECPGTiền xử lý không thể tìm thấy bất kỳ khai báo nào cho biếndbnamecách đọc kèo bóng đáTestPhương thức, vì vậy sẽ xảy ra lỗi.

Lớp TestCpp

Mã này sẽ dẫn đến một lỗi như thế này:

ECPG test_cpp.pgctest_cpp.pgc: 28: Lỗi: biến "dbname" không được khai báo

Để tránh vấn đề phạm vi này,testPhương pháp có thể được sửa đổi để sử cách đọc kèo bóng đá một biến cục bộ làm bộ nhớ trung gian. Nhưng cách tiếp cận này chỉ là một cách giải quyết kém, bởi vì nó tăng lên mã và giảm hiệu suất.

void testcpp :: test ()

34.13.2. Phát triển ứng cách đọc kèo bóng đá C ++ với mô -đun C bên ngoài#

Nếu bạn hiểu những hạn chế kỹ thuật này củaECPG13247_13721

Ba loại tệp phải được tạo: một tệp C (*.pgc), tệp tiêu đề và tệp C ++:

test_mod.pgc #

Một mô-đun tuyến phụ để thực thi cách đọc kèo bóng đá lệnh SQL được nhúng trong C. Nó sẽ được chuyển đổi thànhtest_mod.cbởi bộ tiền xử lý.

#include "test_mod.h"
test_mod.h #

Tệp tiêu đề với cách đọc kèo bóng đá khai báo của cách đọc kèo bóng đá hàm trong mô -đun C (test_mod.pgc). Nó được bao gồm bởitest_cpp.cpp. Tệp này phải cóBên ngoài "C"Khối xung quanh cách đọc kèo bóng đá khai báo, vì nó sẽ được liên kết từ mô -đun C ++.

#ifdef __cplusplus
test_cpp.cpp #

Mã chính cho ứng cách đọc kèo bóng đá, bao gồmchínhthói quen và cách đọc kèo bóng đá ví dụ này, một lớp C ++.

#include "test_mod.h"

Để xây dựng ứng cách đọc kèo bóng đá, hãy tiến hành như sau. Chuyển thànhtest_mod.pgcthànhtest_mod.cbằng cách chạyECPGvà tạotest_mod.obằng cách biên dịchtest_mod.cVới trình biên dịch c:

ECPG -O test_mod.c test_mod.pgc

Tiếp theo, tạotest_cpp.obằng cách biên dịchtest_cpp.cppVới trình biên dịch C ++:

C ++ -C test_cpp.cpp -o test_cpp.o

Cuối cùng, liên kết cách đọc kèo bóng đá tệp đối tượng này,test_cpp.otest_mod.o, thành một thực thi, sử cách đọc kèo bóng đá trình điều khiển trình biên dịch C ++:

C ++ test_cpp.o test_mod.o -lecpg -o test_cpp

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì cách đọc kèo bóng đá tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.