Phần này mô tả cách mở, đóng và chuyển đổi kết kèo bóng đá pháp cơ sở dữ liệu.
Một kết kèo bóng đá pháp với cơ sở dữ liệu bằng cách sử dụng câu lệnh sau:
EXEC SQL Kết kèo bóng đá pháp vớiTarget
[AStên kết kèo bóng đá pháp
] [usertên người dùng
];
TheTarget
có thể được chỉ định theo các cách sau:
dbname
[@tên máy chủ
] [:Cổng
]
TCP: PostgreSQL: //tên máy chủ
[:Cổng
] [/dbname
] [?Tùy chọn
]
UNIX: POSTGRESQL: //tên máy chủ
[:Cổng
12887_12891/dbname
] [?Tùy chọn
]
Mặc định
Nếu bạn chỉ định mục tiêu kết kèo bóng đá pháp theo nghĩa đen (nghĩa là không thông qua tham chiếu biến) và bạn không trích dẫn giá trị, thì các quy tắc không nhạy cảm trường hợp của SQL bình thường được áp dụng. Trong trường hợp đó, bạn cũng có thể kiểm duyệt gấp đôi các tham số riêng lẻ khi cần thiết. Trong thực tế, có lẽ sẽ ít dễ bị lỗi hơn khi sử dụng một chuỗi (được trích dẫn đơn) theo nghĩa đen hoặc một tham chiếu biến. Mục tiêu kết kèo bóng đá phápMặc định
Bắt đầu kết kèo bóng đá pháp với cơ sở dữ liệu mặc định dưới tên người dùng mặc định. Không có tên người dùng hoặc tên kết kèo bóng đá pháp riêng biệt có thể được chỉ định trong trường hợp đó.
Ngoài ra còn có những cách khác nhau để chỉ định tên người dùng:
tên người dùng
tên người dùng
/Mật khẩu
tên người dùng
được xác định bởiMật khẩu
tên người dùng
Sử dụngMật khẩu
Như trên, các tham sốtên người dùng
vàMật khẩu
có thể là một định danh kèo bóng đá pháp, một chuỗi kèo bóng đá pháp theo nghĩa đen hoặc tham chiếu đến một biến ký tự.
Nếu mục tiêu kết kèo bóng đá pháp bao gồm bất kỳ nàoTùy chọn
, những người bao gồm
Thông số kỹ thuật được phân tách bởi ampersands (Từ khóa
=giá trị
&
). Các từ khóa được phép là những từ giống nhau được nhận ra bởilibpq(xemPhần 33.1.2). Không gian bị bỏ qua trước bất kỳTừ khóa
hoặcgiá trị
, mặc dù không trong hoặc sau một. Lưu ý rằng không có cách nào để viết&
trong Agiá trị
.
Thetên kết kèo bóng đá pháp
15917_16193
Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ kèo bóng đá pháp chưa áp dụngmẫu sử dụng lược đồ an toàn, Bắt đầu mỗi phiên bằng cách xóa các lược đồ công khai từsearch_path
. Ví dụ: thêmTùy chọn = -C search_path =
đến
hoặc vấn đềTùy chọn
16688_16754
Sau khi kết kèo bóng đá pháp. Việc xem xét này không cụ thể cho ECPG; Nó áp dụng cho mọi giao diện để thực thi các lệnh SQL tùy ý.
Đây là một số ví dụ vềKết kèo bóng đá pháp
Câu lệnh:
EXEC SQL Kết kèo bóng đá pháp với mydb@sql.mydomain.com; EXEC SQL Kết kèo bóng đá pháp với Unix: Postgresql: //sql.mydomain.com/mydb với tư cách là người dùng myconnection John; EXEC SQL bắt đầu phần khai báo; const char *target = "mydb@sql.mydomain.com"; const char *user = "john"; const char *passwd = "bí mật"; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; ... EXEC SQL Kết kèo bóng đá pháp với: Người dùng mục tiêu: Người dùng sử dụng: Passwd; /* hoặc EXEC SQL Kết kèo bóng đá pháp với: người dùng đích: người dùng/: passwd; */
Mẫu cuối cùng sử dụng biến thể được gọi ở trên là tham chiếu biến ký tự. Bạn sẽ thấy trong các phần sau làm thế nào các biến C có thể được sử dụng trong các câu lệnh kèo bóng đá pháp khi bạn tiền tố chúng bằng dấu hai chấm.
Được thông báo rằng định dạng của mục tiêu kết kèo bóng đá pháp không được chỉ định trong tiêu chuẩn SQL. Vì vậy, nếu bạn muốn phát triển các ứng dụng di động, bạn có thể muốn sử dụng một cái gì đó dựa trên ví dụ cuối cùng ở trên để gói gọn chuỗi mục tiêu kết kèo bóng đá pháp ở đâu đó.
Các câu lệnh SQL trong các chương trình SQL nhúng được thực hiện mặc định trên kết kèo bóng đá pháp hiện tại, nghĩa là, chương trình được mở gần đây nhất. Nếu một ứng dụng cần quản lý nhiều kết kèo bóng đá pháp, thì có hai cách để xử lý việc này.
Tùy chọn đầu tiên là chọn rõ ràng kết kèo bóng đá pháp cho mỗi câu lệnh SQL, ví dụ:
EXEC kèo bóng đá pháp tạitên kết kèo bóng đá pháp
Chọn ...;
Tùy chọn này đặc biệt phù hợp nếu ứng dụng cần sử dụng một số kết kèo bóng đá pháp theo thứ tự hỗn hợp.
18717_18932
Tùy chọn thứ hai là thực thi một câu lệnh để chuyển đổi kết kèo bóng đá pháp hiện tại. Tuyên bố đó là:
EXEC SQL SET Kết kèo bóng đá pháptên kết kèo bóng đá pháp
;
Tùy chọn này đặc biệt thuận tiện nếu nhiều câu lệnh được thực thi trên cùng một kết kèo bóng đá pháp.
Đây là một chương trình ví dụ quản lý nhiều kết kèo bóng đá pháp cơ sở dữ liệu:
#include <stdio.h EXEC SQL bắt đầu phần khai báo; DBName char [1024]; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; int chủ yếu() EXEC SQL kết kèo bóng đá pháp với TestDB1 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 kết kèo bóng đá pháp với TestDB2 với tư cách là người dùng Con2 Testuser; Exec sql chọn pg_catalog.set_config ('search_path', '', false); Exec sql cam kết; EXEC SQL kết kèo bóng đá pháp với TestDB3 với tư cách là người dùng con3 người dùng TestUser; Exec sql chọn pg_catalog.set_config ('search_path', '', false); Exec sql cam kết; /* Truy vấn này sẽ được thực thi trong cơ sở dữ liệu được mở cuối cùng "TestDB3". */ Exec sql chọn current_database () vào: dbname; printf ("hiện tại =%s (nên là testdb3) \ n", dbname); / * Sử dụng "AT" để chạy truy vấn trong "TestDB2" *// EXEC SQL tại con2 chọn current_database () vào: dbname; printf ("hiện tại =%s (nên là testdb2) \ n", dbname); /* Chuyển kết kèo bóng đá pháp hiện tại sang "TestDB1". */ EXEC SQL Đặt kết kèo bóng đá pháp Con1; Exec sql chọn current_database () vào: dbname; printf ("hiện tại =%s (nên là testdb1) \ n", dbname); EXEC SQL Ngắt kết kèo bóng đá pháp tất cả; trả lại 0;
Ví dụ này sẽ tạo ra đầu ra này:
hiện tại = testDB3 (nên là testdb3) hiện tại = testDB2 (nên là testdb2) hiện tại = testDb1 (nên là testdb1)
Để đóng kết kèo bóng đá pháp, sử dụng câu lệnh sau:
exec SQL Ngắt kết kèo bóng đá pháp [Kết kèo bóng đá pháp
];
TheKết kèo bóng đá pháp
có thể được chỉ định theo các cách sau:
tên kết kèo bóng đá pháp
hiện tại
tất cả
Nếu không có tên kết kèo bóng đá pháp được chỉ định, kết kèo bóng đá pháp hiện tại được đóng.
Đó là phong cách tốt mà một ứng dụng luôn ngắt kết kèo bóng đá pháp rõ ràng với mọi kết kèo bóng đá pháp mà nó mở.
Nếu bạn thấy bất cứ điều gì trong tài kèo bóng đá pháp 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 kèo bóng đá pháp.