Có phải bằng cách nào đó có thể tạo một thủ tục được lưu trữ, khi sử dụng SQLite?
Có phải bằng cách nào đó có thể tạo một thủ tục được lưu trữ, khi sử dụng SQLite?
Câu trả lời:
SQLite đã phải hy sinh các đặc điểm khác mà một số người thấy hữu ích, chẳng hạn như đồng thời cao, kiểm soát truy cập chi tiết, một bộ hàm tích hợp phong phú, các thủ tục được lưu trữ , các tính năng ngôn ngữ SQL bí mật, các phần mở rộng XML và / hoặc Java, tera- hoặc khả năng mở rộng peta-byte, v.v.
Nguồn: Sử dụng phù hợp cho SQLite
Trả lời : KHÔNG
Đây là lý do tại sao ... Tôi nghĩ một lý do chính cho việc lưu trữ procs trong cơ sở dữ liệu là bạn đang thực thi mã SP trong cùng quy trình với công cụ SQL. Điều này có ý nghĩa đối với các công cụ cơ sở dữ liệu được thiết kế để hoạt động như một dịch vụ được kết nối mạng, nhưng điều bắt buộc đối với SQLite ít được đưa ra là nó chạy như một DLL trong quy trình ứng dụng của bạn chứ không phải trong một quy trình công cụ SQL riêng biệt. Vì vậy, sẽ hợp lý hơn khi triển khai tất cả logic nghiệp vụ của bạn, bao gồm cả mã SP trong ngôn ngữ máy chủ.
Tuy nhiên, bạn có thể mở rộng SQLite bằng các hàm do người dùng xác định bằng ngôn ngữ máy chủ (PHP, Python, Perl, C #, Javascript , Ruby , v.v.). Sau đó, bạn có thể sử dụng các hàm tùy chỉnh này như một phần của bất kỳ lựa chọn / cập nhật / chèn / xóa SQLite nào. Tôi đã thực hiện điều này trong C # bằng cách sử dụng SQLite của DevArt để thực hiện băm mật khẩu.
Nếu bạn vẫn quan tâm, Chris Wolf đã thực hiện nguyên mẫu triển khai SQLite với Thủ tục lưu trữ. Bạn có thể tìm thấy các chi tiết tại bài đăng trên blog của mình: Thêm các thủ tục được lưu trữ vào SQLite
Tuy nhiên, có thể giả mạo nó bằng cách sử dụng một bảng chuyên dụng, được đặt tên cho sp giả của bạn, với trình kích hoạt SAU. Các hàng của bảng chuyên dụng chứa các tham số cho sp giả của bạn và nếu nó cần trả về kết quả, bạn có thể có bảng thứ hai (sở hữu temp) (có tên liên quan đến fake-sp) để chứa các kết quả đó. Nó sẽ yêu cầu hai truy vấn: đầu tiên là CHỌN dữ liệu vào bảng kích hoạt giả-sp và lần thứ hai để CHỌN từ bảng kết quả giả-sp, có thể để trống hoặc có trường thông báo nếu có sự cố .