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 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

34.2. Quản lý tỷ lệ kèo bóng đá cơ sở dữ liệu#

Phần này mô tả cách mở, đóng và chuyển đổi tỷ lệ kèo bóng đá cơ sở dữ liệu.

34.2.1. tỷ lệ kèo bóng đá với máy chủ cơ sở dữ liệu#

Một tỷ lệ kèo bóng đá với cơ sở dữ liệu bằng cách sử dụng câu lệnh sau:

EXEC SQL tỷ lệ kèo bóng đá vớiTarget[AStên tỷ lệ kèo bóng đá] [usertên người dùng];

TheTargetcó 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ột chuỗi SQL theo nghĩa đen chứa một trong các biểu mẫu trên
  • tham chiếu đến biến ký tự chứa một trong các biểu mẫu trên (xem ví dụ)
  • Mặc định

Mục tiêu tỷ lệ kèo bóng đámặc địnhBắt đầu tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá (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ọnPhả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ó lẽ sẽ dễ bị lỗi hơn 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 là để ghi trực tiếp mục tiêu tỷ lệ kèo bóng đá.

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ùngsử dụngMật khẩu

Như trên, các tham sốtên người dùngMật khẩucó 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 tỷ lệ kèo bóng đá bao gồm bất kỳ nàoTùy chọn, những người bao gồmTừ khóa15533_15536giá trịThông số kỹ thuật được phân tách bởi ampersands (&). Các từ khóa được phép là những từ giống nhau được nhận ra bởilibpq(xemPhần 32.1.2). Không gian bị bỏ qua trước bất kỳTừ khóahoặcgiá trị16023_16094&trong Agiá trị.

Lưu ý rằng khi chỉ định tỷ lệ kèo bóng đá ổ 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ủahostTùy chọn trongTùy chọnmột phần của mục tiêu.

Thetên tỷ lệ kèo bóng đá16649_16925

Đây là một số ví dụ vềtỷ lệ kèo bóng đáCâu lệnh:

17046_17462

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 tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá ở đâu đó.

Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ tỷ lệ kèo bóng đá 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 =đếnTùy chọnhoặc vấn đềEXEC SQL CHỌN PG_CATALOG.SET_CONFIG ('search_path', ''Sau khi tỷ lệ kèo bóng đá. 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 ý.

34.2.2. Chọn tỷ lệ kèo bóng đá#

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 tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá, thì có ba cách để xử lý việc này.

Tùy chọn đầu tiên là chọn rõ ràng tỷ lệ kèo bóng đá cho mỗi câu lệnh SQL, ví dụ:

EXEC SQL tạitên tỷ lệ kèo bóng đá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ố tỷ lệ kèo bóng đá 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ẻ tỷ lệ kèo bóng đá đồng thời. Bạn phải kiểm soát rõ ràng quyền truy cập vào tỷ lệ kèo bóng đá (sử dụng mutexes) hoặc sử dụng tỷ lệ kèo bóng đá cho mỗi luồng.

Tùy chọn thứ hai là thực thi một câu lệnh để chuyển đổi tỷ lệ kèo bóng đá hiện tại. Tuyên bố đó là:

EXEC SQL SET tỷ lệ kèo bóng đátên tỷ lệ kèo bóng đá;

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 tỷ lệ kèo bóng đá.

Đây là một chương trình ví dụ quản lý nhiều tỷ lệ kèo bóng đá cơ sở dữ liệu:

20179_21330

21342_21383

21410_21521

Tùy chọn thứ ba là khai báo số nhận dạng SQL được liên kết với tỷ lệ kèo bóng đá, ví dụ:

EXEC SQL tạitên tỷ lệ kèo bóng đá21727_21738tê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 tỷ lệ kèo bóng đá, 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 tỷ lệ kèo bóng đá với Postgres dưới dạng con1;
  EXEC SQL tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá tất cả;
  trả lại 0;

Ví dụ này sẽ tạo ra đầu ra này, ngay cả khi tỷ lệ kèo bóng đá mặc định là TestDB:

Postgres

34.2.3. Đóng tỷ lệ kèo bóng đá#

Để đóng tỷ lệ kèo bóng đá, hãy sử dụng câu lệnh sau:

EXEC SQL Ngắt tỷ lệ kèo bóng đá [tỷ lệ kèo bóng đá];

Thetỷ lệ kèo bóng đáCó thể được chỉ định theo các cách sau:

  • tên tỷ lệ kèo bóng đá
  • hiện tại
  • tất cả

Nếu không có tên tỷ lệ kèo bóng đá được chỉ định, tỷ lệ kèo bóng đá hiện tại được đóng.

Phong cách tốt mà một ứng dụng luôn ngắt tỷ lệ kèo bóng đá rõ ràng với mọi tỷ lệ kèo bóng đá mà nó mở.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá.