Tạo (hình thành) các yêu cầu. Tạo một truy vấn chọn đơn giản Bạn biết phương pháp tạo truy vấn nào?

Mỗi ngày chúng ta phải giải quyết rất nhiều vấn đề. Để giải quyết thành công chúng, cần có câu trả lời cho các câu hỏi: từ “thời tiết hôm nay thế nào” đến “tỷ giá hối đoái của đồng zloty của Ba Lan với đồng rúp của Nga”. Internet và các công cụ tìm kiếm cho phép bạn tìm câu trả lời cho hầu hết các câu hỏi, nhưng với một điều kiện: bạn cần hỏi chúng một cách chính xác.

Hướng dẫn

  • Các công cụ tìm kiếm (Google, Yandex, Rambler, Mail, Yahoo, v.v.) được thiết kế để cung cấp cho người dùng những thông tin cần thiết. Họ thực hiện việc này dựa trên truy vấn tìm kiếm. Truy vấn tìm kiếm có thể có ba loại:
  • Thông tin. Người dùng đang tìm kiếm thông tin chính xác (bất kể nó ở trang nào). Ví dụ: "Quốc ca nước Nga".

    Điều hướng. Người dùng đang tìm kiếm địa chỉ của một trang web có thể chứa thông tin mà anh ta quan tâm. Ví dụ: "Trang web của Đại học bang M.V. Lomonosov Moscow."

    Giao dịch. Người dùng sẵn sàng thực hiện một số hành động và cần thông tin về nó. Ví dụ: “định dạng đĩa.” Vì vậy, điều đầu tiên bạn cần làm khi tạo truy vấn tìm kiếm là xác định chính xác những gì bạn đang tìm kiếm.

  • Công cụ tìm kiếm là một cơ sở dữ liệu khổng lồ, tất cả thông tin trong đó được “sắp xếp” thành các phần - từ khóa. Sau khi bạn đặt truy vấn tìm kiếm, tìm kiếm từ khóa sẽ diễn ra và kết quả tìm kiếm được trả về. Một lỗi phổ biến của người dùng mới làm quen là họ coi công cụ tìm kiếm như một người đối thoại biết mọi thứ và đặt truy vấn tìm kiếm, chẳng hạn như thế này: “Bạn có thể nói cho tôi biết, "Làm thế nào để loại bỏ vết bẩn khỏi chiếc áo sơ mi mới toanh? Đó là lụa." Đương nhiên, lợi ích từ yêu cầu như vậy sẽ rất ít, yêu cầu sau sẽ hiệu quả hơn nhiều: “áo lụa trắng để tẩy vết bẩn”. Vì vậy, điều thứ hai cần làm là đưa ra yêu cầu một cách chính xác. Nó phải đơn giản nhất có thể và chứa các từ khóa.
  • Sau khi máy xử lý yêu cầu của bạn sẽ hiển thị kết quả tìm kiếm. Theo quy định, tất cả các kết quả phù hợp nhất đều được tìm thấy trên hai hoặc ba trang đầu tiên. Tiếp theo là các kết quả tìm kiếm chỉ đáp ứng một phần yêu cầu, tuy nhiên, có những trường hợp cần thông tin rất hiếm - khi đó bạn phải trải qua một số tổ hợp từ khóa trong truy vấn tìm kiếm và lọc rất cẩn thận dữ liệu thu được.
  • Ngoài ra, đôi khi bạn phải tìm kiếm những thông tin hiếm hoi được “chứa” trong những từ khóa phổ biến. Ví dụ: nếu bạn hỏi truy vấn tìm kiếm “Nhà xuất bản ảnh Marx”, công cụ tìm kiếm sẽ tìm thấy nhiều ảnh của Karl Marx, nhà xuất bản của Karl Marx, nhưng để tìm được ảnh của A.F. Marx, một nhà xuất bản sách, sẽ phải làm việc rất vất vả, vì vậy, điều thứ ba bạn cần làm để việc tìm kiếm thành công là phải sắp xếp thông tin một cách chính xác.

    Nếu bạn cần chọn dữ liệu cụ thể từ một hoặc nhiều nguồn, bạn có thể sử dụng truy vấn chọn. Truy vấn kéo cho phép bạn chỉ nhận được thông tin bạn cần và cũng giúp bạn kết hợp thông tin từ nhiều nguồn. Bạn có thể sử dụng bảng và các truy vấn tương tự khác làm nguồn dữ liệu cho các truy vấn lựa chọn. Phần này xem xét ngắn gọn các truy vấn chọn lọc và cung cấp hướng dẫn từng bước để tạo chúng bằng Trình hướng dẫn truy vấn hoặc Trình thiết kế.

    Nếu bạn muốn tìm hiểu thêm về cách hoạt động của truy vấn bằng cách sử dụng cơ sở dữ liệu Northwind làm ví dụ, hãy xem bài viết Tìm hiểu về Truy vấn.

    Trong bài viết này

    Thông tin chung

    Khi có nhu cầu về một số dữ liệu, hiếm khi cần đến tất cả nội dung của một bảng. Ví dụ: nếu bạn cần thông tin từ bảng liên hệ, thông tin đó thường là về một mục nhập cụ thể hoặc chỉ một số điện thoại. Đôi khi cần kết hợp dữ liệu từ nhiều bảng cùng một lúc, chẳng hạn như kết hợp thông tin về khách hàng với thông tin về khách hàng. Truy vấn chọn được sử dụng để chọn dữ liệu cần thiết.

    Truy vấn chọn là một đối tượng cơ sở dữ liệu hiển thị thông tin trong chế độ xem bảng. Truy vấn không lưu trữ dữ liệu nhưng chứa dữ liệu được lưu trữ trong bảng. Truy vấn có thể hiển thị dữ liệu từ một hoặc nhiều bảng, từ các truy vấn khác hoặc kết hợp cả hai.

    Lợi ích của truy vấn

    Yêu cầu cho phép bạn thực hiện các tác vụ sau:

      Chỉ xem giá trị từ các trường mà bạn quan tâm. Khi bạn mở một bảng, tất cả các trường sẽ được hiển thị. Bạn có thể lưu truy vấn chỉ trả về một vài truy vấn trong số đó.

      Ghi chú: Truy vấn chỉ trả về dữ liệu chứ không lưu trữ dữ liệu đó. Khi bạn lưu yêu cầu, bạn sẽ không lưu bản sao của dữ liệu liên quan.

      Kết hợp dữ liệu từ nhiều nguồn. Trong một bảng, bạn thường chỉ có thể xem thông tin được lưu trữ trong đó. Truy vấn cho phép bạn chọn các trường từ các nguồn khác nhau và chỉ định chính xác cách bạn muốn kết hợp thông tin.

      Sử dụng biểu thức làm trường. Ví dụ: một trường có thể là một hàm trả về ngày và bằng cách sử dụng hàm định dạng, bạn có thể kiểm soát định dạng của các giá trị từ các trường trong kết quả truy vấn.

      Xem các bài đăng đáp ứng tiêu chí bạn chỉ định. Khi bạn mở một bảng, tất cả các bản ghi sẽ được hiển thị. Bạn có thể lưu truy vấn chỉ trả về một vài truy vấn trong số đó.

    Các bước cơ bản để tạo truy vấn chọn

    Bạn có thể tạo một truy vấn chọn bằng trình hướng dẫn hoặc trình thiết kế truy vấn. Một số thành phần không có sẵn trong trình hướng dẫn nhưng có thể được nhà thiết kế thêm vào sau. Mặc dù đây là những phương pháp khác nhau nhưng các bước cơ bản đều giống nhau.

      Chọn các bảng hoặc truy vấn bạn muốn sử dụng làm nguồn dữ liệu.

      Chỉ định các trường từ nguồn dữ liệu mà bạn muốn đưa vào kết quả của mình.

      Bạn cũng có thể đặt các điều kiện giới hạn tập hợp các yêu cầu bản ghi được trả về.

    Khi bạn đã tạo một truy vấn chọn, hãy chạy truy vấn đó để xem kết quả. Để chạy truy vấn chọn, hãy mở truy vấn đó trong dạng xem Biểu dữ liệu. Sau khi lưu truy vấn, bạn có thể sử dụng truy vấn đó sau (ví dụ: làm nguồn dữ liệu cho biểu mẫu, báo cáo hoặc truy vấn khác).

    Tạo truy vấn chọn bằng Trình hướng dẫn truy vấn

    Trình hướng dẫn cho phép bạn tự động tạo yêu cầu lựa chọn. Khi sử dụng trình hướng dẫn, bạn không có toàn quyền kiểm soát tất cả chi tiết của quy trình nhưng yêu cầu thường được tạo nhanh hơn theo cách này. Ngoài ra, trình hướng dẫn đôi khi phát hiện các lỗi đơn giản trong yêu cầu và nhắc bạn chọn một hành động khác.

    Sự chuẩn bị

    Nếu bạn sử dụng các trường từ các nguồn dữ liệu không liên quan, Trình hướng dẫn Truy vấn sẽ nhắc bạn tạo mối quan hệ giữa chúng. Anh ấy sẽ mở cửa sổ quan hệ, tuy nhiên, nếu thực hiện bất kỳ thay đổi nào, bạn sẽ cần phải khởi động lại trình hướng dẫn. Do đó, trước khi chạy trình hướng dẫn, bạn nên tạo ngay tất cả các mối quan hệ mà truy vấn của bạn yêu cầu.

    Để biết thêm thông tin về cách tạo mối quan hệ giữa các bảng, hãy xem Hướng dẫn về mối quan hệ bảng.

    Sử dụng Trình hướng dẫn truy vấn

      Trên tab Sự sáng tạo trong nhóm Yêu cầu nhấn vào nút Thuật sĩ truy vấn.

      Trong hộp thoại Yêu cầu mới chọn mục Yêu cầu đơn giản và nhấn nút ĐƯỢC RỒI.

      Bây giờ thêm các trường. Bạn có thể thêm tối đa 255 trường từ 32 bảng hoặc truy vấn.

      Đối với mỗi trường, hãy thực hiện hai bước sau:


    1. Nếu bạn chưa thêm bất kỳ trường số nào (các trường chứa dữ liệu số), hãy chuyển sang bước 9. Khi thêm trường số, bạn cần phải chọn xem truy vấn sẽ trả về chi tiết hay tổng.

      Làm một điều trong số sau đây:


    2. Trong hộp thoại Kết quả chỉ định các trường bắt buộc và loại dữ liệu tóm tắt. Chỉ có các trường số sẽ có sẵn trong danh sách.

      Đối với mỗi trường số, hãy chọn một trong các tùy chọn sau:

      1. Tổng- truy vấn sẽ trả về tổng của tất cả các giá trị được chỉ định trong trường.

        Trung bình- truy vấn sẽ trả về giá trị trung bình của trường.

        tối thiểu- yêu cầu sẽ trả về giá trị tối thiểu được chỉ định trong trường.

        Tối đa- yêu cầu sẽ trả về giá trị tối đa được chỉ định trong trường.


    3. Nếu muốn kết quả truy vấn hiển thị số lượng bản ghi trong nguồn dữ liệu thì chọn hộp kiểm tương ứng Đếm số lượng bản ghi trong (tên nguồn dữ liệu).

      Nhấp chuột ĐƯỢC RỒIđể đóng hộp thoại Kết quả.

      Nếu bạn không thêm bất kỳ trường ngày và giờ nào vào truy vấn của mình, hãy chuyển sang bước 9. Nếu bạn đã thêm các trường ngày và giờ vào truy vấn của mình, Trình hướng dẫn Truy vấn sẽ nhắc bạn chọn cách nhóm các giá trị ngày. Giả sử bạn đã thêm trường số ("Giá") và trường ngày và giờ ("Transaction_Time") vào truy vấn, sau đó vào hộp thoại Kết quả cho biết rằng bạn muốn hiển thị giá trị trung bình cho trường số "Giá". Vì bạn đã thêm trường ngày và giờ nên bạn có thể tính tổng cho từng giá trị ngày và giờ duy nhất, chẳng hạn như mỗi tháng, quý hoặc năm.


      Chọn khoảng thời gian bạn muốn sử dụng để nhóm các giá trị ngày và giờ, sau đó bấm vào Hơn nữa.

      Trên trang cuối cùng của trình hướng dẫn, nhập tên cho yêu cầu, cho biết bạn muốn mở hay chỉnh sửa nó và nhấp vào Sẵn sàng.

      Nếu bạn chọn mở một truy vấn, nó sẽ hiển thị dữ liệu đã chọn trong dạng xem Biểu dữ liệu. Nếu bạn quyết định chỉnh sửa truy vấn, truy vấn sẽ mở ở dạng xem Thiết kế.

    Tạo truy vấn trong dạng xem thiết kế

    Trong dạng xem Thiết kế, bạn có thể tạo truy vấn chọn theo cách thủ công. Ở chế độ này, bạn có nhiều quyền kiểm soát hơn đối với quá trình tạo truy vấn, nhưng sẽ dễ mắc lỗi hơn và mất nhiều thời gian hơn so với trong trình hướng dẫn.

    Tạo một yêu cầu

    Bước 1: Thêm nguồn dữ liệu

    Trong chế độ thiết kế, nguồn dữ liệu và trường được thêm vào ở các giai đoạn khác nhau vì hộp thoại được dùng để thêm nguồn Thêm một bảng. Tuy nhiên, bạn luôn có thể thêm các nguồn bổ sung sau.

    Kết nối tự động

    Nếu mối quan hệ đã được xác định giữa các nguồn dữ liệu bạn thêm thì chúng sẽ tự động được thêm vào truy vấn dưới dạng kết nối. Các phép nối xác định cách kết hợp dữ liệu từ các nguồn liên quan. Access cũng tự động tạo liên kết giữa hai bảng nếu chúng chứa các trường có kiểu dữ liệu tương thích và một trong số đó là khóa chính.

    Bạn có thể tùy chỉnh các kết nối được Access thêm vào. Access chọn loại kết nối cần tạo dựa trên mối quan hệ phù hợp với nó. Nếu Access tạo một đường nối nhưng không xác định mối quan hệ cho nó thì Access sẽ thêm một đường nối bên trong.

    Sử dụng lại một nguồn dữ liệu

    Trong một số trường hợp, bạn có thể nối hai bản sao của cùng một bảng hoặc truy vấn, được gọi là tự nối và sẽ nối các bản ghi từ cùng một bảng nếu có các giá trị trùng khớp trong các trường đã nối. Ví dụ: giả sử bạn có bảng Nhân viên trong đó trường "báo cáo cho" cho bản ghi của mỗi nhân viên hiển thị ID người quản lý thay vì tên của họ. Bạn có thể sử dụng tính năng tự tham gia để hiển thị tên người quản lý trên hồ sơ của mỗi nhân viên.

    Khi bạn thêm nguồn dữ liệu lần thứ hai, Access sẽ kết thúc tên của phiên bản thứ hai bằng "_1". Ví dụ: nếu bạn thêm lại bảng Nhân viên, phiên bản thứ hai của nó sẽ được đặt tên là Nhân viên_1.

    Bước 2: Kết nối các nguồn dữ liệu liên quan

    Nếu nguồn dữ liệu bạn thêm vào truy vấn đã có mối quan hệ thì Access sẽ tự động tạo một kết nối bên trong cho từng mối quan hệ. Nếu tính toàn vẹn dữ liệu được sử dụng, Access cũng hiển thị số "1" phía trên đường nối để hiển thị bảng nào nằm ở phía "một" của thành phần trong mối quan hệ một-nhiều và ký hiệu vô cực ( ) để hiển thị bảng nào ở phía "nhiều".

    Nếu bạn đã thêm các truy vấn khác vào truy vấn và chưa tạo mối quan hệ giữa chúng, Access sẽ không tự động tạo các kết nối giữa chúng hoặc giữa các truy vấn và bảng không liên quan. Nếu Access không tạo kết nối khi bạn thêm nguồn dữ liệu thì thông thường bạn cần tạo chúng theo cách thủ công. Nguồn dữ liệu không được kết nối với các nguồn khác có thể gây ra sự cố trong kết quả truy vấn.

    Bạn cũng có thể thay đổi kiểu nối từ nối trong thành nối ngoài để truy vấn bao gồm nhiều bản ghi hơn.

    Thêm kết nối

    Thay đổi kết nối

    Sau khi kết nối được tạo, bạn có thể thêm các trường đầu ra: những trường này sẽ chứa dữ liệu bạn muốn hiển thị trong kết quả.

    Bước 3: Thêm trường hiển thị

    Bạn có thể dễ dàng thêm trường từ bất kỳ nguồn dữ liệu nào bạn đã thêm ở bước 1.

      Để thực hiện việc này, hãy kéo trường từ nguồn ở khu vực trên cùng của cửa sổ trình thiết kế truy vấn xuống hàng Cánh đồng mẫu yêu cầu (ở cuối cửa sổ thiết kế).

      Khi bạn thêm trường theo cách này, Access sẽ tự động điền vào hàng Bàn trong bảng thiết kế theo nguồn dữ liệu của trường.

      Khuyên bảo:Để nhanh chóng thêm tất cả các trường vào hàng Trường của biểu mẫu truy vấn, hãy bấm đúp vào bảng hoặc tên truy vấn ở ngăn trên cùng để chọn tất cả các trường trong đó, sau đó kéo tất cả chúng xuống biểu mẫu cùng một lúc.

    Sử dụng biểu thức làm trường đầu ra

    Bạn có thể sử dụng biểu thức làm trường đầu ra để tính toán hoặc tạo kết quả truy vấn bằng hàm. Biểu thức có thể sử dụng dữ liệu từ bất kỳ nguồn truy vấn nào cũng như các hàm như Định dạng hoặc InStr, hằng số và toán tử số học.

    Bước 4: Chỉ định điều kiện

    Nó không bắt buộc.

    Bằng cách sử dụng các điều kiện, bạn có thể giới hạn số lượng bản ghi mà truy vấn trả về, chỉ chọn những bản ghi có giá trị trường đáp ứng tiêu chí đã chỉ định.

    Xác định điều kiện cho trường hiển thị

    Điều kiện cho nhiều trường

    Điều kiện có thể được đặt cho nhiều trường. Trong trường hợp này, tất cả các điều kiện trong hàng tương ứng phải được đáp ứng để mục nhập được đưa vào kết quả Điều kiện lựa chọn hoặc Hoặc.

    Đặt điều kiện dựa trên trường không có trong đầu ra

    Bạn có thể thêm trường vào truy vấn nhưng không đưa giá trị của trường đó vào kết quả được hiển thị. Điều này cho phép bạn sử dụng nội dung của một trường để giới hạn kết quả nhưng không hiển thị nó.

      Thêm một trường vào bảng truy vấn.

      Bỏ chọn nó trong dòng Trình diễn.

      Đặt các điều kiện như cho trường đầu ra.

    Bước 5: Tính tổng

    Bước này là tùy chọn.

    Bạn cũng có thể tính tổng cho dữ liệu số. Ví dụ: bạn có thể muốn xem giá trung bình hoặc tổng doanh số.

    Để tính tổng giá trị, truy vấn sử dụng chuỗi Tổng cộng. Chuỗi mặc định Tổng cộng không xuất hiện trong chế độ thiết kế.

    Để xem kết quả của truy vấn, trên tab Thiết kế, bấm vào Hành hình. Access hiển thị kết quả truy vấn ở dạng xem Biểu dữ liệu.

    Để quay lại chế độ thiết kế và thực hiện các thay đổi đối với truy vấn, hãy bấm vào trang chủ > Xem > Người xây dựng.

    Tùy chỉnh các trường, biểu thức hoặc điều kiện và chạy lại truy vấn cho đến khi nó trả về dữ liệu bạn muốn.

    Tạo truy vấn chọn trong ứng dụng web Access

    Để cung cấp kết quả truy vấn trong trình duyệt, bạn cần thêm chế độ xem truy vấn vào màn hình chọn bảng. Để thêm chế độ xem mới vào tiêu đề trên màn hình chọn bảng, hãy làm theo các bước sau:


    Truy vấn là một trong những loại tài liệu được sử dụng trong Access DBMS, được thiết kế để xử lý dữ liệu được lưu trữ trong bảng

    Truy vấn có thể được tạo ở chế độ nhà thiết kế và với sự giúp đỡ bậc thầy. Trình thiết kế cho phép bạn tự tạo bất kỳ loại truy vấn nào nhưng chế độ này được khuyến nghị cho những người dùng đã có một số kinh nghiệm tạo truy vấn.

    Trình hướng dẫn yêu cầu trong một số bước, nó thu thập thông tin cần thiết để hình thành một yêu cầu và sau đó tự động soạn yêu cầu đó tùy thuộc vào câu trả lời của người dùng cho các câu hỏi được đặt ra.

    Bằng cách sử dụng trình hướng dẫn trong Access, bạn có thể tạo các loại truy vấn sau:

    § Yêu cầu đơn giản.

    § Yêu cầu chéo.

    § Các mục trùng lặp.

    § Hồ sơ không có cấp dưới.

    Để tạo bất kỳ đối tượng nào trong số chúng, hãy chọn đối tượng Truy vấn trong cửa sổ cơ sở dữ liệu và nhấp vào nút Tạo. Cửa sổ Truy vấn Mới sẽ mở ra, giao diện của cửa sổ này được hiển thị trong Hình. 1.

    Hình 1 Cửa sổ cơ sở dữ liệu trạng thái và cửa sổ chọn loại truy vấn

    Yêu cầu đơn giản cho phép bạn tạo bằng cách sử dụng Thạc sĩ yêu cầu mẫu dữ liệu từ các trường bảng hoặc truy vấn nhất định, điều này thuận tiện nhất cho người dùng mới làm quen. Khi bạn chọn nó, Trình hướng dẫn sẽ bắt đầu, trong cửa sổ đầu tiên (Hình 2), bạn cần chọn một bảng trong danh sách Bảng và truy vấn, ví dụ: Nhân viên giáo viên, chọn từ danh sách các trường có sẵn của nó. phải có trong truy vấn và dịch từng truy vấn bằng cách nhấn [> ]. Tương tự, các trường từ các bảng khác trong cùng cơ sở dữ liệu sẽ được thêm vào truy vấn.

    Ghi chú. Truy vấn chỉ có thể được thực hiện trên các bảng hoặc chỉ trên các truy vấn cơ sở dữ liệu. Không được phép kết hợp các trường từ bảng và truy vấn trong truy vấn.

    Hình 2 Chọn các trường cho một yêu cầu.

    Yêu cầu chéo trông giống như một cái bàn , trong đó tối đa ba trường (cột) của bảng gốc được hiển thị, các ô của một trong các ô còn lại được chuyển đổi thành các cột mới và tại giao điểm của chúng, một trong các giá trị do người dùng chỉ định được hiển thị - Phương sai, Tối thiểu, Tối đa, Trung bình, Độ lệch, Số, Đầu tiên, Cuối cùng, v.v. Ví dụ: yêu cầu trong Hình. 4 là truy vấn chéo của bảng 1 trong Hình. 3, trong đó các giá trị khoảng cách trở thành tên các cột:

    Lựa chọn Mục trùng lặp tạo một truy vấn để tìm kiếm các bản ghi (hàng) trùng lặp trong một bảng hoặc truy vấn cho bảng trong Hình. 3, với các trường Khoảng cách và Giá vé đã cho, nó trông như thế này (Hình 5)

    MS Access cho phép bạn tạo một truy vấn như vậy chỉ cho một bảng hoặc truy vấn (không dành cho một số bảng cơ sở dữ liệu) và bạn cần chỉ định trong đó

    Hình 3 Bảng 1 để tạo truy vấn chéo


    Hình 4 Truy vấn chéo bảng. 1

    chỉ những trường trong đó có sự trùng khớp hoàn toàn đồng thời của dữ liệu từ các bản ghi (ví dụ: trường Vận chuyển không thể được đưa vào yêu cầu này). Ngoài ra, để nhận dạng, bạn có thể bao gồm trường không lặp lại (Thành phố).

    Hồ sơ không có cấp dưới truy vấn để tìm các bản ghi không khớp với bất kỳ bản ghi nào trong bảng đang được so sánh. Truy vấn này được sử dụng cho nhiều cơ sở dữ liệu dạng bảng.

    Hình 6 Bảng chính 1

    Truy vấn không có cấp dưới để so sánh các bảng Hình. 3 và hình. 6 sẽ hiển thị một dòng không khớp (Hình 7):

    Các truy vấn này là cơ sở để tạo các truy vấn phức tạp hơn sử dụng chế độ Thiết kế.

    Trong 8.3.5 giờ đây chúng tôi có khả năng làm việc theo chương trình với văn bản yêu cầu.
    Tin tức về điều này có thể được đọc trên trang web 1C "Mô hình đối tượng lược đồ truy vấn và trình thiết kế truy vấn được quản lý".
    Để phân tích một yêu cầu cụ thể, tôi khuyên bạn nên

    Chúng ta hãy cố gắng tìm hiểu xem yêu cầu thực sự là gì. Nó được trình bày ở định dạng nào ở 1C và trên máy chủ bảo mật thông tin?

    Nói một cách đơn giản, có thể phân biệt các cấp độ làm việc với yêu cầu sau:
    1. Truy vấn bằng ngôn ngữ DBMS.Ở cấp độ này, truy vấn là một chuỗi văn bản theo cú pháp của một DBMS cụ thể.
    Ví dụ: "CHỌN trường1 TỪ bảng1 WHERE bảng1.field2 > 100".
    2. Trình điều khiển cho một DBMS cụ thể.Đây là tiện ích đóng vai trò là cầu nối giữa chương trình và máy chủ. Nó nhận được yêu cầu từ chương trình và truyền nó đến DBMS.
    Ở cấp độ này, 1C hoạt động với các nguồn dữ liệu bên ngoài.
    3. Giao diện phần mềm phổ quát.Đây là một thành phần phổ quát cho phép chương trình truy cập dữ liệu trong các hệ thống bảo mật thông tin khác nhau. Nó cũng có thể được gọi là trình quản lý trình điều khiển. Trình điều khiển DBMS cụ thể được sử dụng trên máy tính được kết nối với nó dưới dạng DSN. Tùy thuộc vào hệ thống được sử dụng, có thể có ODBC, OLE DB, JDBC, ADO.NET hoặc bất kỳ thành phần tiêu chuẩn nào khác. Đánh giá theo http://its.1c.ru/db/metod8dev#content:2926:1, 1C hiện sử dụng OLE DB. Nền tảng 7.7 đã sử dụng ODBC.
    4. Đối tượng trên máy chủ 1C.Ở cấp độ này, máy chủ ứng dụng xử lý yêu cầu.
    Theo như tôi hiểu, nền tảng C mô tả một đối tượng yêu cầu cho các phương thức tạo văn bản SQL được chỉ định. Các đối tượng nền tảng (trình thiết kế truy vấn, trình tạo, v.v.) hoạt động với đối tượng yêu cầu này.
    5. Yêu cầu bằng ngôn ngữ 1C.Ở cấp độ này, truy vấn là một văn bản được viết bằng ngôn ngữ pseudo-SQL có dạng “SELECT Directory.DirectoryName.FieldName FROM Directory.DirectoryName”

    Theo như tôi hiểu, với sự ra đời của đối tượng “Lược đồ truy vấn”, không có gì mới được phát minh trên nền tảng.
    Trước đây, chúng tôi chỉ có thể làm việc với phần trình bày văn bản của yêu cầu (cấp 5). Đây là phương pháp đơn giản và dễ hiểu nhất, mặc dù không phải lúc nào cũng thuận tiện.
    Bây giờ chúng ta đã được cấp quyền truy cập vào một đối tượng (cấp 4), trước đây chỉ hoạt động với các cơ chế nền tảng.
    Nếu bạn phân tích đối tượng Lược đồ truy vấn, các thuộc tính của nó sẽ trùng lặp rất rõ ràng với trình thiết kế truy vấn.
    Mỗi phần tử và thuộc tính có thể được tìm thấy bằng hình ảnh tương tự trong trình thiết kế truy vấn.
    Đối với mỗi lần nhấp vào hàm tạo, bạn có thể chọn một lệnh tương tự.
    Ví dụ:
    Tab "Gói truy vấn" =RequestScheme.QueryPackage;
    Tab "Bảng và trường" = QueryScheme.QueryPackage.AvailableTables;
    Bấm vào bảng "Thư mục" - "Danh pháp" = Yêu cầu Schema.Query Package.Operators.Sources.Add("Directory.Nomenclature");

    Bằng cách này, chúng ta có thể tạo ra hầu hết mọi yêu cầu mà chúng ta có thể thực hiện bằng một hàm tạo theo chương trình.
    Tất nhiên, việc tạo theo chương trình phức tạp và tốn thời gian hơn nhiều so với việc chỉ làm việc với hàm tạo hoặc thậm chí viết văn bản truy vấn theo cách thủ công.
    Đối với các truy vấn tĩnh có văn bản không thay đổi, việc sử dụng lược đồ sẽ không có ý nghĩa gì.
    Công việc lập trình đòi hỏi sự hiểu biết sâu sắc hơn về cách làm việc với các truy vấn.
    Sẽ thuận tiện nếu chúng ta cần thay đổi văn bản yêu cầu một cách linh hoạt tùy thuộc vào tham số hệ thống, lựa chọn của người dùng và kết quả của yêu cầu trước đó.

    Để sửa đổi văn bản của yêu cầu hiện có, văn bản này phải được đặt cho lược đồ và được nhận lại sau khi sửa đổi. Để thực hiện việc này, hãy sử dụng mã như:

    requestScheme = Sơ đồ yêu cầu mới; RequestScheme.SetRequestText(Request.Text); //Dưới đây là các lệnh sửa đổi yêu cầu của chúng tôi.Request.Text =RequestScheme.GetRequestText();

    Mô hình đối tượng truy vấn bao gồm đối tượng chính "Lược đồ truy vấn" và khoảng 50 đối tượng phụ, bộ sưu tập và kiểu dữ liệu cụ thể có liên quan.Lúc đầu, việc điều hướng nhóm đối tượng này khá khó khăn.

    Để hiểu cấu trúc chung của sơ đồ yêu cầu, hãy mở phần bắt buộc của SP và nhập tất cả các kết nối giữa các đối tượng vào máy vẽ.
    Hóa ra đây là biểu đồ.
    Tôi không thể nói rằng nó rất rõ ràng, nhưng nó phản ánh ý tưởng chung. Thật thuận tiện để xem qua khi phân tích một yêu cầu.
    Cột cho biết:
    Màu vàng - thực thể đối tượng của sơ đồ yêu cầu;
    Màu đỏ - bộ sưu tập đồ vật;
    Màu xanh lá cây - loại 1C tiêu chuẩn (chuỗi, số, boolean);
    Ngọc lam - loại nguyên thủy cụ thể cho sơ đồ yêu cầu;

    Lược đồ truy vấn thuận tiện nhất cho việc sửa đổi truy vấn được tạo sẵn; nó cũng cho phép bạn tạo văn bản truy vấn từ đầu.

    Ví dụ: hãy xem xét việc tạo gói yêu cầu từ đầu, tương tự như yêu cầu từ

    CHỌN Sản phẩm ĐƯỢC PHÉP.Liên kết NHƯ Danh pháp, Số lần mua.Thời gian NHƯ Khoảng thời gian, ISNULL(Mua hàng.Số lượngDoanh thu, 0) NHƯ Số tiềnMua hàng, 0 NHƯ Số lượngBán hàng VỊ TRÍ BảngDoanh thu TỪ Thư mục.Danh sách NHƯ Sản phẩm TRÁI THAM GIA Đăng ký Tích lũy.Mua hàng.Doanh thu(&Bắt đầu, &Kết thúc , tháng ) CÁCH Mua phần mềm Purchase.Nomenclature = Products.Link WHERE NOT Products.ThisGroup KẾT HỢP TẤT CẢ CHỌN KHÁC NHAU ĐẦU TIÊN 100 Products.Link, Sales.Period, 0, ISNULL(Sales.AmountTurnover, 0) TỪ Directory.Nomenclature NHƯ Sản phẩm TRÁI THAM GIA Đăng ký Tích lũy .Doanh số .Doanh thu(&Bắt đầu, &Kết thúc, Tháng) NHƯ Doanh số bán hàng THEO Doanh số bán hàng.Danh sách = Sản phẩm.Liên kết WHERE KHÔNG Sản phẩm.Nhóm này CHỈ SỐ THEO Danh mục, Kỳ; //////////////////////////////////////////////////////////////// // ////////////////////////// CHỌN TableTurnover.Nomenclature AS Danh pháp, TableTurnover.Period AS Period, SUM(TableTurnover.AmountPurchases) AS moneyPurchases, SUM( TableTurnover.AmountSales) NHƯ Số tiềnDoanh thu TỪ BảngDoanh thu NHƯ BảngDoanh thu NHÓM THEO TableTurnover.Nomenclature, TableTurnover.Period HAVING SUM(TableTurnover.AmountPurchases) > 0 ORDER BY TableTurnover.Nomenclature.Name, Period TOTAL VÀ SUM(Số tiền mua), SUM(Số lượng mua hàng) Bán hàng ) Nói chung, CHỈ CÓ Danh pháp phân cấp; //////////////////////////////////////////////////////////////// // /////////////////////////// PHÁ HỦY TableTurnover

    Hãy phân tích gói yêu cầu.

    Một gói là một bộ ba yêu cầu.
    Trong yêu cầu đầu tiên, dữ liệu được chọn từ IS bởi hai toán tử (yêu cầu mua và bán), mỗi toán tử sử dụng hai nguồn (thư mục "Danh pháp" và sổ đăng ký tích lũy tương ứng). Dữ liệu sẽ được kết hợp từ hai câu lệnh và được đặt trong một bảng tạm thời trên máy chủ.
    Trong yêu cầu thứ hai, chúng tôi nhận dữ liệu từ một bảng tạm thời, nhóm nó lại và nhận kết quả để xử lý trên máy chủ 1C.
    Truy vấn thứ ba được sử dụng để hủy bảng tạm thời được tạo bởi truy vấn đầu tiên.

    Hãy bắt đầu tạo một gói yêu cầu theo chương trình.

    Để phát triển mã, chúng ta sẽ sử dụng cây truy vấn. Thật tiện lợi xác định đường dẫn đến dữ liệu. Nên kiểm tra định kỳ văn bản yêu cầu kết quả sau khi sửa đổi mã.

    Đầu tiên, hãy tạo một đối tượng "Lược đồ yêu cầu".

    requestScheme = Sơ đồ yêu cầu mới;

    Lược đồ truy vấn được tạo đã chứa một gói và một câu lệnh chọn.
    Để dễ sử dụng, hãy lưu chúng thành các biến riêng biệt.

    SelectionRequestFromIB =RequestScheme.RequestPackage; PurchaseSelectionOperator = SelectionRequestFromIS.Operators;

    Thêm nguồn vào câu lệnh chọn đầu tiên.
    Để thực hiện việc này, chúng tôi sử dụng phương thức thu thập nguồn “Add()”. Trong các tham số của phương thức, chúng tôi chỉ ra tên của bảng sẽ được thêm vào, bí danh của nó, bằng đó chúng tôi sẽ đề cập đến nó trong tương lai.
    Khi thêm bảng, bạn có thể sử dụng tên của bảng hoặc liên kết tới bảng đó trong bộ sưu tập các bảng có sẵn.

    SourceNomenclature = PurchaseSelectionOperator.Sources.Add("Directory.Nomenclature","Products"); SourcePurchases = PurchaseSelection Operator.Sources.Add("Đăng ký tích lũy.Purchases.Turnover","Mua hàng");

    Theo mặc định, nguồn thứ hai được thêm bằng kết nối bên trái vào nguồn thứ nhất.

    Chúng ta cần một kết nối ngược. Thay đổi kiểu kết nối.

    SourcePurchase.Connections.ConnectionType =RequestSchemeConnectionType.RightExternal;

    Tùy chọn bảng:
    Đối với mỗi bảng được thêm dưới dạng nguồn, chúng ta có thể đặt các tham số bổ sung.
    Bộ sưu tập cài đặt được tự động điền khi bạn thêm bảng, tùy thuộc vào loại bảng.
    Bạn không thể thêm tham số vào nó theo cách thủ công; bạn chỉ có thể đặt giá trị của tham số hiện có.
    Bảng "Directory.Nomenclature" là một bảng thư mục đơn giản. Nó không có tham số.
    Bảng “Đăng ký tích lũy.Mua hàng.Doanh thu” là bảng doanh thu của sổ đăng ký tích lũy.
    Theo SP, nó có 4 tham số: đầu kỳ, cuối kỳ, tính tuần hoàn và điều kiện.
    Chúng ta cần đặt 3 tham số đầu tiên:

    SourcePurchasing.Source.Parameters.Expression = QuerySchemaExpression("&Start") mới; SourcePurchasing.Source.Parameters.Expression = NewRequestSchemaExpression("&End") ; SourcePurchases.Source.Parameters.Expression = QuerySchemaExpression("Tháng") mới;

    Hãy chỉ ra các cột, phải được chọn từ các bảng được liệt kê.
    Để thực hiện việc này, chúng tôi thêm các trường vào tập hợp các trường có thể chọn của toán tử lựa chọn.

    PurchaseSelectionOperator.SelectableFields.Add("Products.Link"); PurchaseSelectionOperator.SelectableFields.Add("Purchases.Period"); OperatorSelectingPurchases.SelectableFields.Add("ISNULL(Purchases.AmountTurnover, 0)"); MuaSelectionOperator.SelectableFields.Add("0");

    Chúng tôi chỉ ra ở cấp độ yêu cầu nói chung bí danh cho các cột có thể chọn:
    Xin lưu ý rằng chúng tôi chọn các cột trong bảng cho mỗi truy vấn con nối; chúng tôi chỉ định toàn bộ tên cột cho bộ sưu tập “Cột” ở cấp truy vấn gói.

    requestSelectFromVT.Columns.Alias ​​​​= "Danh pháp"; QuerySelectFromVT.Columns.Alias ​​​​= "Thời gian"; SelectionRequestFromVT.Columns.Alias ​​​​= "PurchasesAmount"; Yêu cầuSelectFromVT.Columns.Alias ​​​= "SalesAmount";

    Hãy thêm một điều kiện để chọn dữ liệu

    SalesSelectionOperator.Selection.Add("KHÔNG phải sản phẩm. Đây là một nhóm");

    Chúng tôi thêm mọi thứ tương tự cho phần thứ hai của yêu cầu.

    Ánh xạ cột:
    Trong mỗi câu lệnh lựa chọn, chúng tôi chọn 4 trường (thành phần thư mục "Danh pháp", một trường ngày và hai trường số).
    Khi kết hợp các cột từ hai toán tử chọn một cột từ thư mục và ngày, hệ thống sẽ tự so sánh cột đó.
    Có hai cột số. Bản thân lược đồ có thể ánh xạ chúng không chính xác tới các cột của truy vấn đầu tiên.
    Chúng tôi chỉ ra cột nào của bảng kết quả tương ứng với biểu thức nào.

    SelectionRequestFromISB.Columns.Fields.Set(1,PurchaseExpression); Yêu cầuSelectFromIB.Columns.Fields.Set(1,SalesExpression);

    Chúng tôi lặp lại mọi thứ tương tự cho yêu cầu thứ hai của gói.

    Trong số những điểm khác biệt, ở đây chúng tôi sử dụng lựa chọn dựa trên các giá trị cuối cùng của loại “HAVING”.
    Điều kiện này được thêm vào tương tự như lựa chọn thông thường cho các bản ghi chi tiết.
    Bản thân lược đồ sẽ xác định phần nào của các điều kiện sẽ đặt điều kiện của chúng ta, tùy thuộc vào việc sử dụng các hàm nhóm.

    OperatorSelect.Selection.Add("SUM(TableTurnover.AmountPurchases) > 0");

    Bước cuối cùng là thêm yêu cầu hủy bảng dữ liệu

    DestructionRequestVT = QuerySchema.QueryPackage.Add(Type("DestroyTableRequestSchemaQuery")); DestructionRequestVT.TableName = "TableTurnover";

    Chúng tôi cũng đặt các thuộc tính yêu cầu bổ sung:

    QuerySelectFromIB.TableForRoom = "TableTurnover"; Yêu cầuSelectFromIB.SelectAllowed = Đúng;

    Phiên bản hoàn chỉnh cuối cùng của yêu cầu:

    //Tạo một lược đồ yêu cầuRequestSchema = NewRequestScheme; SelectionRequestFromIB =RequestScheme.RequestPackage; //Thiết lập thuộc tính truy vấn QuerySelectionFromIB.TableForRoom = "TableTurnover"; Yêu cầuSelectFromIB.SelectAllowed = Đúng; //Thêm toán tử lựa chọn cho yêu cầu đầu tiên của gói PurchaseSelectionOperator = SelectionRequestFromIS.Operators; SourceNomenclature = PurchaseSelectionOperator.Sources.Add("Directory.Nomenclature","Products"); //Thêm yêu cầu lựa chọn từ sổ đăng ký mua sắm SourcePurchases = PurchaseSelection Operator.Sources.Add("Accumulation Register.Purchases.Turnover","Purchases"); SourcePurchasing.Source.Parameters.Expression = QuerySchemaExpression("&Start") mới; SourcePurchasing.Source.Parameters.Expression = NewRequestSchemaExpression("&End") ; SourcePurchases.Source.Parameters.Expression = QuerySchemaExpression("Tháng") mới; //Thay đổi kiểu kết nối Mua Source.Connection.ConnectionType =RequestSchemeConnectionType.RightExternal; // Chỉ định các trường có thể chọn PurchaseSelection Operator.SelectableFields.Add("Products.Link"); PurchaseSelectionOperator.SelectableFields.Add("Purchases.Period"); OperatorSelectingPurchases.SelectableFields.Add("ISNULL(Purchases.AmountTurnover, 0)"); MuaSelectionOperator.SelectableFields.Add("0"); // Chỉ định bí danh cho các trường đã chọn SelectionRequestFromIB.Columns.Alias ​​​​= "Nomenclature"; SelectionRequestFromIB.Columns.Alias ​​​​= "Thời gian"; SelectionRequestFromIB.Columns.Alias ​​​= "PurchasesAmount"; SelectionRequestFromIB.Columns.Alias ​​​= "SalesAmount"; //Thêm lựa chọn SelectionOperatorPurchases.Selection.Add("KHÔNG phải sản phẩm. Đây là một nhóm"); ///////////////////// //Chọn dữ liệu bán hàng SalesSelectionOperator = SelectionRequestFromIS.Operators.Add(); SourceNomenclature = SalesSelection Operator.Sources.Add("Directory.Nomenclature","Products"); SalesSelectionOperator.SelectableFields.Add("Products.Link"); //Thêm nguồn pH và đặt tham số Nguồn bán hàng =SalesSelectionOperator.Sources.Add("Accumulation Register.Sales.Turnover","Sales"); SalesSource.Source.Parameters.Expression = QuerySchemaExpression mới("&Start") ; SalesSource.Source.Parameters.Expression = QuerySchemaExpression("&End" mới); SalesSource.Source.Parameters.Expression = QuerySchemaExpression mới("Tháng") ; SourceSales.Connections.ConnectionType = requestSchemeConnectionType.RightExternal; // Chỉ định các trường sẽ được chọn và đặt các trường số tương ứng với các trường của Toán tử SalesSelection yêu cầu đầu tiên. SelectableFields.Add("Sales.Period"); ExpressionPurchases = SalesSelectionOperator.SelectableFields.Add("0"); SalesExpression = SalesSelectionOperator.SelectableFields.Add("ISNULL(Sales.AmountTurnover, 0)"); SelectionRequestFromISB.Columns.Fields.Set(1,PurchaseExpression); Yêu cầuSelectFromIB.Columns.Fields.Set(1,SalesExpression); //Thêm lựa chọn SalesSelection Operator.Selection.Add("KHÔNG phải sản phẩm. Đây là một nhóm"); // Lập chỉ mục dữ liệu Yêu cầu lựa chọn từ IB.Index.Add(Yêu cầu lựa chọn từ IB. Columns); RequestSelectFromIB.Index.Add(SelectRequestFromIB.Columns); //Đặt tham số chọn dữ liệu SalesSelectionOperator.SelectVarious = True; SalesSelectionOperator.NumberofRecordsReceived = 100; //////////////// //Gói yêu cầu thứ hai SelectionRequestFromVT = requestScheme.RequestPackage.Add(); OperatorSelect = QuerySelectFromVT.Operators; //Đặt bảng tạm thời được tạo trong yêu cầu trước đó làm nguồn Source = OperatorSelect.Sources.Add("TableTurnover","TableTurnover"); OperatorSelect.SelectableFields.Add("TableTurnover.Nomenclature"); OperatorSelect.SelectableFields.Add("TableTurnover.Period"); OperatorSelect.SelectableFields.Add("SUM(TableTurnover.AmountofPurchases)"); OperatorSelect.SelectableFields.Add("SUM(TableTurnover.AmountSales)"); //Điều kiện lựa chọn OperatorSelect.Selection.Add("SUM(TableTurnover.AmountPurchases) > 0"); //Đặt bí danh cột Lựa chọn QueryFromVT.Columns.Alias ​​​​= "Danh pháp"; QuerySelectFromVT.Columns.Alias ​​​​= "Thời gian"; SelectionRequestFromVT.Columns.Alias ​​​​= "PurchasesAmount"; Yêu cầuSelectFromVT.Columns.Alias ​​​= "SalesAmount"; //Thứ tự sắp xếp dữ liệu QuerySelectFromVT.Order.Add(QuerySelectFromVT.Operators.Sources.Source.AvailableFields.Fields); RequestSelectFromVT.Order.Add(SelectRequestFromVT.Columns); //Kết quả của yêu cầu TotalNomenclature = Yêu cầu lựa chọn từ VT. ControlPointsTotals.Add(Yêu cầu lựa chọn từ VT. Columns); ResultNomenclature.ControlPointType = requestSchemaControlPointType.HierarchyOnly; QuerySelectFromVT.GeneralTotals = Đúng; QuerySelectFromVT.ExpressionTotals.Add(QuerySelectFromVT.Columns); QuerySelectFromVT.ExpressionTotals.Add(QuerySelectFromVT.Columns); //////////////// //Yêu cầu cuối cùng của gói là xóa bảng tạm thời DestructionRequestVT =RequestSchema.RequestPackage.Add(Type("DeststructionRequestTableDestructionScheme")); DestructionRequestVT.TableName = "TableTurnover";

    Sau khi thực thi tập lệnh này, chúng tôi nhận được yêu cầu tương tự mà trước đây chúng tôi đã nhận được từ hàm tạo.

    Rõ ràng là việc tạo ra phần mềm khó hơn nhiều so với việc tạo ra văn bản.
    Câu hỏi đặt ra là có ích gì khi tạo ra phần mềm thay vì thiết kế tiện lợi.
    Nếu yêu cầu này không thay đổi nữa thì chẳng có ích gì.

    Buns chỉ xuất hiện nếu chúng tôi cần sửa đổi thêm yêu cầu này tùy thuộc vào cài đặt.
    Hãy xem một vài ví dụ về sửa đổi gói 3 yêu cầu của chúng tôi:

    Ví dụ 1.

    Giả sử chúng ta có các biến "Tổ chức" và "Kho". Và nếu chúng đã đầy, chúng ta cần thêm điều kiện cho các biến này vào vùng chọn dữ liệu.
    Khi làm việc với văn bản, chúng ta sẽ phải chen mình vào văn bản yêu cầu và viết các điều kiện phức tạp như “Nếu scaad đã đầy thì hãy thêm một điều kiện”. nó liên quan gì đến việc chia nhỏ ra nhiều nơi và kết hợp các phương án: cả kho và tổ chức đều đầy, chỉ có kho chứa, chỉ tổ chức được lấp đầy, không có gì được lấp đầy.
    Sau khi sửa đổi như vậy, người thiết kế sẽ không thể mở yêu cầu của mình và việc sửa đổi thêm sẽ rất khó khăn.

    Khi làm việc với dữ liệu theo chương trình, chúng ta chỉ cần thêm các lệnh:

    Nếu ValueFilled(Organization) ThenPurchaseSelectionOperator.Selection.Add("Purchases.Organization = &Organization"); OperatorSelectionSales.Selection.Add("Sales.Organization = &Organization"); endIf; Nếu ValueFilled(Warehouse) ThenPurchaseSelectionOperator.Selection.Add("Purchases.Warehouse = &Warehouse"); OperatorSelectionSales.Selection.Add("Sales.Warehouse = &Warehouse"); endIf;

    Ví dụ 2.

    Chúng ta cần chọn những sản phẩm có giá cuối cùng trên 1000 rúp.
    Những thứ kia. cần thiết
    1. Thêm vào văn bản yêu cầu một lựa chọn trong bảng tạm thời từ sổ đăng ký giá của mặt hàng có giá trên 1000 rúp.
    2. Khi chọn dữ liệu, hãy thêm điều kiện cho bảng tạm thời này vào cả truy vấn chọn dữ liệu (mua hàng và bán hàng).
    Bạn có thể tìm ra cách chèn chính mình vào yêu cầu văn bản để thực hiện những hành động này.
    Theo lập trình, chúng tôi chỉ cần thêm dòng mã:

    //Thêm bảng tạm thời QueryFromPriceRegister = QueryScheme.QueryPackage.Add(); //Thiết lập bảng tạm thờiRequestFromPriceRegister.TableForRoom = "VT_PricesItems"; OperatorSelect = AskFromPriceRegister.Operators; Nguồn = OperatorSelect.Sources.Add("Đăng ký thông tin.Giá mặt hàng.Lát cuối cùng","Giá mặt hàng cuối cùng"); OperatorSelect.SelectableFields.Add("Giá vật phẩmSliceLast.Item"); OperatorSelect.Selection.Add("ItemPricesSliceLast.Price > &Price"); // Di chuyển tấm mới trước khi yêu cầu lựa chọn dữ liệu QueryScheme.QueryBatch.Shift(RequestSchema.QueryBatch.Index(QueryFromPriceRegister),0); //Thêm điều kiện vào các truy vấn ban đầu Toán tử lựa chọn mua sắm.Selection.Add("Purchases.Nomenclature IN (SELECT VT_PricesNomenclature.Nomenclature FROM VT_PricesNomenclature AS VT_PricesNomenclature)"); OperatorSelectionSales.Selection.Add("Sales.Nomenclature IN (SELECT VT_PricesItems.Items FROM VT_PricesNomenclature AS VT_PricesItems)");

    IMHO, ngay cả đối với những ví dụ này, làm việc với truy vấn theo chương trình sẽ thuận tiện hơn làm việc trực tiếp với văn bản.
    Đồng thời, chúng ta hãy lưu ý rằng các tùy chọn sửa đổi này vẫn khá đơn giản.
    Với sự phức tạp của các tùy chọn sửa đổi, sự gia tăng số lượng yêu cầu trong gói, việc lựa chọn các sửa đổi khác nhau tùy thuộc vào các điều kiện (ví dụ: thêm điều kiện theo bảng giá, theo loại mặt hàng hoặc theo kế hoạch sản xuất), Công việc lập trình ngày càng thuận tiện hơn so với làm việc với dòng văn bản.

    Bạn có thể thực hành với các truy vấn bằng cách xử lý, thuận tiện cho việc phát triển các lệnh để sửa đổi một truy vấn hiện có. Nó cũng chứa một số ví dụ về sửa đổi mã yêu cầu và biểu đồ của sơ đồ loại yêu cầu.

    z.y. Tất cả mọi thứ được viết ở trên chỉ là sự hiểu biết cá nhân của tôi về chủ đề này. Có lẽ tôi sai ở đâu đó. Bình luận và làm rõ đều được chào đón.

    cập nhật: Một ví dụ nhỏ khác về việc sử dụng sơ đồ truy vấn. Hình thành truy vấn tìm kiếm các giá trị trùng lặp của dữ liệu được xác định trước. Không cần truy cập siêu dữ liệu, nó sẽ tạo ra một yêu cầu chung tới tất cả các thư mục, biểu đồ tài khoản, PVC, PVR nói chung theo cấu hình. Dùng trong chế biến

    requestScheme = Sơ đồ yêu cầu mới; CollectionOperators = requestSchema.RequestBatch.Operators; Đối với mỗi nhóm bảng từ lược đồ truy vấn. Gói truy vấn. Chu kỳ các bảng có sẵn nếu nhóm bảng. Xem = "Thư mục" HOẶC Nhóm bảng. Trình bày = "Biểu đồ tài khoản" HOẶC Nhóm bảng. Xem = "Kế hoạch loại tính toán" HOẶC Nhóm bảng. Xem = "Các kế hoạch loại đặc trưng" Sau đó, đối với mỗi bảng từ nhóm bảng. Chu kỳ thành phần cho mỗi TableField từ Table.Fields Cycle Nếu TableField.Name = "PreDefinDataName" thì NewOperator = CollectionOperators.Add(); NewSource = NewOperator.Sources.Add(Bảng,"Tên thư mục"); NewOperator.SelectableFields.Add(""""+Table.Name+""""); NewOperator.SelectableFields.Add ("SỐ LƯỢNG (Tên thư mục KHÁC.Tên dữ liệu được xác định trước)"); NewOperator.Grouping.Add ("Tên thư mục.Tên của dữ liệu được xác định trước"); NewOperator.Selection.Add ("Tên thư mục.Được xác định trước"); NewOperator.Selection.Add("SỐ LƯỢNG (Tên thư mục KHÁC.Liên kết) > 1"); Tiếp tục; endIf; Chu kỳ cuối; Chu kỳ cuối; endIf; Chu kỳ cuối;

    Chủ đề 2.3. Phần mềm thuyết trình và lập trình văn phòng cơ bản

    Chủ đề 2.4. Hệ thống quản lý cơ sở dữ liệu và hệ thống chuyên gia

    2.4.11. Cơ sở dữ liệu đào tạo với nút chính dạng "Training_students" - Tải về


    DBMS và hệ thống chuyên gia

    2.4. Hệ thống quản lý cơ sở dữ liệu và hệ thống chuyên gia

    2.4.4. Tạo (hình thành) các yêu cầu

    Truy vấn là một phương tiện để lựa chọn các thông tin cần thiết từ cơ sở dữ liệu. Một câu hỏi được tạo ra liên quan đến cơ sở dữ liệu là một truy vấn. Hai loại truy vấn được sử dụng: by example (QBE - Truy vấn bằng ví dụ) và ngôn ngữ truy vấn có cấu trúc (SQL - Ngôn ngữ truy vấn có cấu trúc).

    QBE - truy vấn mẫu– một công cụ để tìm kiếm thông tin cần thiết trong cơ sở dữ liệu. Nó được tạo không phải bằng ngôn ngữ đặc biệt mà bằng cách điền vào biểu mẫu yêu cầu trong cửa sổ Trình tạo truy vấn.

    truy vấn SQL– đây là những truy vấn được biên dịch (bởi các lập trình viên) từ một chuỗi lệnh SQL. Các hướng dẫn này chỉ định những gì phải được thực hiện với tập dữ liệu đầu vào để tạo tập dữ liệu đầu ra. Tất cả truy vấn Access đều dựa trên truy vấn SQL; để xem chúng, bạn cần chạy lệnh Xem/SQL trong cửa sổ thiết kế truy vấn hiện hoạt.

    Có một số loại truy vấn: chọn, cập nhật, thêm, xóa, truy vấn chéo, tạo bảng. Phổ biến nhất là yêu cầu mẫu. Truy vấn lựa chọn được sử dụng để chọn thông tin có trong bảng mà người dùng cần. Chúng chỉ được tạo cho các bảng liên quan.

    2.4.4.1. Tạo truy vấn chọn bằng Wizard

    Khi tạo truy vấn, bạn cần xác định:

    • các trường trong cơ sở dữ liệu sẽ được sử dụng để tìm kiếm thông tin;
    • đối tượng tìm kiếm trong cơ sở dữ liệu;
    • danh sách các trường sau khi thực hiện yêu cầu.

    Trong cửa sổ cơ sở dữ liệu, chọn tab Truy vấn và nhấp đúp vào biểu tượng Tạo truy vấn bằng trình hướng dẫn, cửa sổ Tạo truy vấn đơn giản sẽ xuất hiện.


    Cơm. 1.

    Trong cửa sổ trình hướng dẫn, chọn bảng được yêu cầu (bảng nguồn) từ tùy chọn Bảng và truy vấn rồi chọn trường dữ liệu. Nếu truy vấn được hình thành trên cơ sở một số bảng, bạn phải lặp lại các bước cho từng bảng nguồn.

    Sau đó, trong cửa sổ Wizard, bạn cần chọn báo cáo chi tiết hoặc tóm tắt và nhấp vào nút Tiếp theo. Sau đó, bạn cần chỉ định tên cho truy vấn và chọn một trong các tùy chọn cho hành động tiếp theo: Mở truy vấn để xem dữ liệu hoặc Thay đổi bố cục truy vấn và nhấp vào Kết thúc. Kết quả là bạn sẽ nhận được một truy vấn được tạo sẵn.

    2.4.4.2. Tạo truy vấn chọn bằng Trình thiết kế

    Sử dụng hàm tạo, bạn có thể tạo các loại truy vấn sau:

    1. Đơn giản.
    2. Theo điều kiện.
    3. Tham số.
    4. Cuối cùng.
    5. Với các trường được tính toán.

    Để gọi Trình tạo truy vấn, bạn cần vào cửa sổ cơ sở dữ liệu. Trong cửa sổ cơ sở dữ liệu, chọn tab Truy vấn và nhấp đúp vào biểu tượng Tạo truy vấn trong chế độ thiết kế. Cửa sổ Thêm bảng đang hoạt động xuất hiện trên nền của Cửa sổ truy vấn không hoạt động: Chọn cửa sổ Truy vấn.

    Trong cửa sổ Thêm bảng, chọn một bảng nguồn hoặc một số bảng từ danh sách các bảng được trình bày trên cơ sở dữ liệu nào sẽ được chọn và nhấp vào nút Thêm. Sau đó, đóng cửa sổ Thêm bảng, cửa sổ “Truy vấn: Chọn Truy vấn” sẽ hoạt động.

    Cửa sổ Designer bao gồm hai phần - trên và dưới. Ở đầu cửa sổ có một sơ đồ dữ liệu truy vấn, trong đó chứa danh sách các bảng nguồn và phản ánh mối quan hệ giữa chúng.

    Ở cuối cửa sổ có một biểu mẫu xây dựng truy vấn QBE (Truy vấn bằng ví dụ), trong đó mỗi dòng thực hiện một chức năng cụ thể:

    1. Trường – cho biết tên của các trường tham gia vào yêu cầu.
    2. Tên bảng – tên của bảng mà trường này được chọn.
    3. Sắp xếp - cho biết loại sắp xếp.
    4. Hiển thị trên màn hình – đặt hộp kiểm để xem trường trên màn hình.
    5. Điều kiện lựa chọn - tiêu chí tìm kiếm được đặt ra.
    6. Hoặc – tiêu chí lựa chọn bổ sung được chỉ định.



    Cơm. 2.

    Yêu cầu mẫu

    Trong cửa sổ “Truy vấn: yêu cầu mẫu”, hãy sử dụng các công cụ để tạo truy vấn:

    1. Chọn bảng - nguồn mà các bản ghi được chọn.
    2. Di chuyển tên trường từ nguồn sang Biểu mẫu yêu cầu. Ví dụ: từ bảng Nhóm Sinh viên, hãy kéo trường Tiêu đề vào trường đầu tiên của Biểu mẫu Yêu cầu, từ bảng Sinh viên, kéo trường Họ vào trường thứ hai của Biểu mẫu Yêu cầu và từ bảng Hiệu suất, hãy kéo Điểm trường này sang trường thứ ba và từ bảng Kỷ luật, hãy kéo trường Tiêu đề vào trường thứ tư của Biểu mẫu yêu cầu.
    3. Đặt nguyên tắc sắp xếp. Di chuyển con trỏ chuột đến dòng Sắp xếp cho bất kỳ trường nào, một nút sẽ xuất hiện để mở danh sách các chế độ sắp xếp: tăng dần và giảm dần. Ví dụ: đặt chế độ sắp xếp trong trường Họ thành tăng dần.
    4. Trong dòng hiển thị, hộp kiểm để xem thông tin tìm thấy trong trường sẽ tự động được chọn.
    5. Tại dòng lựa chọn “Điều kiện” và dòng “Hoặc”, bạn phải nhập điều kiện tìm kiếm giới hạn - tiêu chí tìm kiếm. Ví dụ: trong trường Điểm, hãy nhập “xuất sắc/A”, tức là. hiển thị tất cả tên của những học sinh đạt điểm xuất sắc/A.
    6. Sau khi hoàn tất việc tạo truy vấn, hãy đóng cửa sổ Chọn Yêu cầu. Hộp thoại Lưu sẽ mở ra - trả lời Có (nhập tên truy vấn đã tạo, ví dụ: Truy vấn mẫu ở chế độ Thiết kế) và nhấp vào OK và quay lại cửa sổ cơ sở dữ liệu.



    Cơm. 3.

    Để mở một truy vấn từ cửa sổ cơ sở dữ liệu, bạn cần chọn tên truy vấn và nhấp vào nút Mở; một cửa sổ truy vấn lựa chọn với tên được yêu cầu sẽ xuất hiện trên màn hình.



    Cơm. 4.

    Để thực hiện các thay đổi đối với một truy vấn, bạn cần chọn truy vấn đó bằng cách bấm vào cửa sổ cơ sở dữ liệu, bấm vào nút Trình xây dựng và thực hiện các thay đổi. Lưu yêu cầu và chạy lại.

    Truy vấn tham số

    Các truy vấn là các biến thể của một truy vấn cơ bản và hơi khác nhau một chút được gọi là tham số. Yêu cầu tham số chỉ định tiêu chí có thể thay đổi theo yêu cầu của người dùng.

    Trình tự tạo truy vấn tham số:

    1. Tạo truy vấn trong dạng xem Thiết kế hoặc mở truy vấn hiện có trong dạng xem Thiết kế, chẳng hạn như "Truy vấn mẫu trong dạng xem Thiết kế".
    2. Trong Biểu mẫu yêu cầu, ở dòng Điều kiện lựa chọn, hãy nhập điều kiện lựa chọn dưới dạng lời mời trong ngoặc vuông, ví dụ [Nhập họ].
    3. Đóng cửa sổ Yêu cầu chọn, trả lời câu hỏi về việc lưu thay đổi - Có. Quay lại cửa sổ cơ sở dữ liệu, nơi truy vấn đã tạo sẽ được tô sáng.
    4. Thực hiện truy vấn bằng cách nhấp vào nút: Mở. Trong hộp thoại “Nhập giá trị tham số” xuất hiện trên màn hình, bạn phải nhập, chẳng hạn như tên của học sinh có thông tin kết quả học tập mà bạn muốn lấy và nhấp vào nút OK.