Postgresql 9.2.24 Tài liệu | ||||
---|---|---|---|---|
Prev | UP | Chương 33.ECPG- nhúngSQLTrong C | Tiếp theo |
Phần này mô tả cách mở, đóng và chuyển cơ sở dữ liệu kèo bóng đá hom nay.
Một kèo bóng đá hom nay với cơ sở dữ liệu bằng cách sử dụng các mục sau tuyên bố:
EXEC SQL kèo bóng đá hom nay vớiTarget[AStên kèo bóng đá hom nay] [usertên người dùng];
TheTargetcó thể được chỉ định theo những 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] [/dbname] [?Tùy chọn]
Chuỗi SQL theo nghĩa đen chứa một trong những điều trên biểu mẫu
tham chiếu đến biến ký tự chứa một trong số các biểu mẫu trên (xem ví dụ)
Mặc định
Nếu bạn chỉ định mục tiêu kèo bóng đá hom nay theo nghĩa đen (nghĩa là không thông qua một tham chiếu biến) và bạn không trích dẫn giá trị, Sau đó, 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ể truy cập gấp đôi các tham số riêng lẻ riêng biệt khi cần thiết. Trong thực tế, nó có lẽ ít hơn dễ bị lỗi khi sử dụng một chuỗi (một trích xuất đơn) theo nghĩa đen hoặc một tham chiếu biến. Mục tiêu kèo bóng đá hom naymặc địnhBắt đầu kèo bóng đá hom nay với mặc định Cơ sở dữ liệu dưới tên người dùng mặc định. Không có tên người dùng riêng biệt hoặc Tên kèo bóng đá hom nay 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ùngsử dụngMật khẩu
Như trên, các tham sốtên người dùngvàMật khẩucó thể là một định danh SQL, SQL Chuỗi theo nghĩa đen hoặc tham chiếu đến một biến ký tự.
Thetên kèo bóng đá hom nayđược sử dụng Để xử lý nhiều kèo bóng đá hom nay trong một chương trình. Nó có thể được Bỏ qua nếu một chương trình chỉ sử dụng một kèo bóng đá hom nay. Nhiều nhất kèo bóng đá hom nay được mở gần đây trở thành kèo bóng đá hom nay hiện tại, được sử dụng theo mặc định khi câu lệnh SQL được thực hiện (xem sau trong chương này).
Đây là một số ví dụ vềkèo bóng đá hom naycâu lệnh:
EXEC SQL kèo bóng đá hom nay với mydb@sql.mydomain.com; EXEC SQL kèo bóng đá hom nay 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èo bóng đá hom nay với: Người dùng mục tiêu: Người dùng sử dụng: Passwd; /* hoặc EXEC SQL kèo bóng đá hom nay với: người dùng đích: người dùng/: passwd; */
15321_15536
Được thông báo rằng định dạng của mục tiêu kèo bóng đá hom nay không phải đượ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 mục tiêu kèo bóng đá hom nay Chuỗi ở đâu đó.
Các câu lệnh SQL trong các chương trình SQL nhúng là theo mặc định được thực hiện trên kèo bóng đá hom nay hiện tại, nghĩa là gần đây nhất đã mở một. Nếu một ứng dụng cần quản lý nhiều kèo bóng đá hom nay, sau đó có hai cách để xử lý việc này.
Tùy chọn đầu tiên là chọn rõ ràng kèo bóng đá hom nay cho Mỗi câu lệnh SQL, ví dụ:
EXEC SQL tạitên kèo bóng đá hom nayChọ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èo bóng đá hom nay theo thứ tự hỗn hợp.
Nếu ứng dụng của bạn sử dụng nhiều luồng thực thi, chúng không thể chia sẻ một kèo bóng đá hom nay đồng thời. Bạn phải kiểm soát rõ ràng quyền truy cập vào kèo bóng đá hom nay (sử dụng mutexes) hoặc Sử dụng kèo bóng đá hom nay cho mỗi luồng.
tùy chọn thứ hai là thực thi câu lệnh để chuyển đổi kèo bóng đá hom nay hiện tại. Tuyên bố đó là:
kèo bóng đá hom nay SQL SQLtên kèo bóng đá hom nay;
Tùy chọn này đặc biệt thuận tiện nếu nhiều câu lệnh sẽ được thực thi trên cùng một kèo bóng đá hom nay.
Đây là một chương trình ví dụ quản lý nhiều cơ sở dữ liệu kèo bóng đá hom nay:
#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èo bóng đá hom nay với TestDB1 với tư cách là người dùng người dùng Con1; EXEC SQL kèo bóng đá hom nay với TestDB2 với tư cách là người dùng Con2 Testuser; EXEC SQL kèo bóng đá hom nay với TestDB3 với tư cách là người dùng con3 người dùng TestUser; /* 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èo bóng đá hom nay hiện tại sang "TestDB1". */ EXEC SQL Đặt kèo bóng đá hom nay 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èo bóng đá hom nay 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èo bóng đá hom nay, sử dụng câu lệnh sau:
exec SQL Ngắt kèo bóng đá hom nay [kèo bóng đá hom nay];
Thekèo bóng đá hom naycó thể được chỉ định theo các cách sau:
tên kèo bóng đá hom nay
mặc định
hiện tại
tất cả
Nếu không có tên kèo bóng đá hom nay được chỉ định, kèo bóng đá hom nay hiện tại được đóng.
Đó là phong cách tốt mà một ứng dụng luôn luôn rõ ràng Ngắt kèo bóng đá hom nay khỏi mọi kèo bóng đá hom nay mà nó đã mở.