Phần này mô tả cách mở, đóng và chuyển đổi 스포츠 토토 베트맨 nối cơ sở dữ liệu.
Một 스포츠 토토 베트맨 nối với cơ sở dữ liệu bằng cách sử dụng câu lệnh sau:
EXEC SQL 스포츠 토토 베트맨 nối vớiTarget
[AStên 스포츠 토토 베트맨 nối
] [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: // LocalHost [:Cổng
] [/dbname
] [?Tùy chọn
]
Mặc định
Mục tiêu 스포츠 토토 베트맨 nốimặc định
Bắt đầu 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối riêng biệt có thể được chỉ định trong trường hợp đó.
Nếu bạn chỉ định trực tiếp mục tiêu 스포츠 토토 베트맨 nối (nghĩa là không phải là một chuỗi theo nghĩa đen hoặc tham chiếu biến), thì các thành phần của mục tiêu được truyền qua phân tích SQL bình thường; Điều này có nghĩa là, ví dụ,tên máy chủ
phải trông giống như một hoặc nhiều định danh SQL được phân tách bằng các dấu chấm và các định danh đó sẽ được xếp lại trừ khi được trích dẫn kép. Giá trị của bất kỳTùy chọn
Phải là định danh SQL, số nguyên hoặc tài liệu tham khảo biến. Tất nhiên, bạn có thể đặt gần như bất cứ thứ gì vào số định danh SQL bằng cách trích dẫn gấp đôi. Trong thực tế, có thể ít 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 hơn để viết trực tiếp mục tiêu 스포츠 토토 베트맨 nối.
Cũng 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à định danh SQL, chuỗi SQL theo nghĩa đen hoặc tham chiếu đến biến ký tự.
Nếu mục tiêu 스포츠 토토 베트맨 nối 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
15533_15536giá trị
&
). Các từ khóa được phép là những từ giống nhau được nhận ra bởilibpq(xemPhần 34.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ị
.
Lưu ý rằng khi chỉ định 스포츠 토토 베트맨 nối ổ cắm (vớiUNIX:
tiền tố), tên máy chủ phải chính xácLocalhost
. Để chọn thư mục ổ cắm không mặc định, hãy viết tên đường dẫn của thư mục làm giá trị củahost
Tùy chọn trongTùy chọn
một phần của mục tiêu.
Thetên 스포츠 토토 베트맨 nối
được sử dụng để xử lý nhiều 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối. 스포츠 토토 베트맨 nối được mở gần đây nhất trở thành 스포츠 토토 베트맨 nối hiện tại, được sử dụng theo mặc định khi câu lệnh SQL được thực thi (xem sau trong chương này).
Đây là một số ví dụ về스포츠 토토 베트맨 nối
Câu lệnh:
EXEC SQL 스포츠 토토 베트맨 nối với mydb@sql.mydomain.com; EXEC SQL 스포츠 토토 베트맨 nối với TCP: 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 스포츠 토토 베트맨 nối với: Người dùng mục tiêu: Người dùng sử dụng: Passwd; /* hoặc EXEC SQL 스포츠 토토 베트맨 nối với: người dùng đích: người dùng/: passwd; */
Ví dụ cuối cùng sử dụng tính năng đượ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 SQL 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 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối ở đâu đó.
Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ liệu 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
18445_18511
Sau khi 스포츠 토토 베트맨 nối. 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 ý.
Các câu lệnh SQL trong các chương trình SQL nhúng được thực hiện theo mặc định trên 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối, thì có ba cách để xử lý việc này.
Tùy chọn đầu tiên là chọn rõ ràng 스포츠 토토 베트맨 nối cho mỗi câu lệnh SQL, ví dụ:
EXEC SQL tạitên 스포츠 토토 베트맨 nối
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ố 스포츠 토토 베트맨 nối 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, họ không thể chia sẻ 스포츠 토토 베트맨 nối đồng thời. Bạn phải kiểm soát rõ ràng quyền truy cập vào 스포츠 토토 베트맨 nối (sử dụng mutexes) hoặc sử dụng 스포츠 토토 베트맨 nối cho mỗi luồng.
Tùy chọn thứ hai là thực thi một câu lệnh để chuyển đổi 스포츠 토토 베트맨 nối hiện tại. Tuyên bố đó là:
exec SQL SET 스포츠 토토 베트맨 nốitên 스포츠 토토 베트맨 nối
;
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 스포츠 토토 베트맨 nối.
Đây là một chương trình ví dụ quản lý nhiều 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối hiện tại sang "TestDB1". */ EXEC SQL Đặt 스포츠 토토 베트맨 nối 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 스포츠 토토 베트맨 nối 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)
Tùy chọn thứ ba là khai báo số định danh SQL được liên kết với 스포츠 토토 베트맨 nối, ví dụ:
EXEC SQL tạitên 스포츠 토토 베트맨 nối
khai báotên tuyên bố
Tuyên bố; EXEC SQL Chuẩn bịtên tuyên bố
từ:Dyn-String
;
Khi bạn liên kết một định danh SQL với 스포츠 토토 베트맨 nối, bạn thực hiện SQL động mà không có mệnh đề AT. Lưu ý rằng tùy chọn này hoạt động như các chỉ thị tiền xử lý, do đó liên kết chỉ được bật trong tệp.
Đây là một chương trình ví dụ sử dụng tùy chọn này:
#include <stdio.h EXEC SQL bắt đầu phần khai báo; DBName char [128]; char *dyn_sql = "chọn current_database ()"; EXEC SQL END TUYÊN BỐ TUYÊN BỐ; int main () EXEC SQL 스포츠 토토 베트맨 nối với Postgres dưới dạng con1; EXEC SQL 스포츠 토토 베트맨 nối với TestDB dưới dạng con2; EXEC SQL tại câu lệnh STMT khai báo con1; Exec SQL chuẩn bị STMT từ: dyn_sql; EXEC SQL EXECUTE STMT thành: dbname; printf ("%s \ n", dbname); EXEC SQL Ngắt 스포츠 토토 베트맨 nối tất cả; trả lại 0;
Ví dụ này sẽ tạo ra đầu ra này, ngay cả khi 스포츠 토토 베트맨 nối mặc định là TestDB:
Postgres
Để đóng 스포츠 토토 베트맨 nối, hãy sử dụng câu lệnh sau:
exec SQL Ngắt 스포츠 토토 베트맨 nối [스포츠 토토 베트맨 nối
];
The스포츠 토토 베트맨 nối
có thể được chỉ định theo các cách sau:
tên 스포츠 토토 베트맨 nối
hiện tại
tất cả
Nếu không có tên 스포츠 토토 베트맨 nối được chỉ định, 스포츠 토토 베트맨 nối hiện tại được đóng.
Phong cách tốt mà một ứng dụng luôn ngắt 스포츠 토토 베트맨 nối rõ ràng với mọi 스포츠 토토 베트맨 nối mà nó mở.
Nếu bạn thấy bất cứ điều gì trong tài liệu 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 liệu.