Sau mấy ngày chạy thử Code anh viết cho em ạ, em thấy chỗ Code xóa tất cả các File đính kèm nó chạy khá chậm ạ, nhiều khi máy em bị treo luôn ạ.
Anh có thể sửa lại giúp em nếu dòng nào trong Table1 đã có File đính kèm rồi thì không cần Attachment file nữa được không ạ.
Sao bạn biết đoạn code xóa file gây chậm? hay do trong thực tế phải xử lý số lượng file lớn nên tổng thể code nó sẽ mất thời gian để xử lý lại toàn bộ file đính kèm?
Bạn đọc kỹ lại bài trước của tôi, đã có đề cập: giải thuật xử lý của bạn nó không hợp lý. Mỗi khi có sự thay đổi phải làm lại toàn bộ một cách không cần thiết. Bạn phải phân tích cho thật kỹ, tính toán lâu dài, tính mọi khía cạnh, sau này qua một năm thì khối dữ liệu nó phình lên như thế nào???
Bạn phải tự đặt các câu hỏi tình huống ví dụ như bên dưới, rồi sau đó lên cái qui trình thao tác, xử lý rồi mới code cho nó.
- Như bạn muốn: Nếu dòng nào trong Table 1 đã có file đính kèm rồi thì không cần đính kèm file. Vậy nếu như dòng Hợp đồng (HD) đó đã có file nhưng bạn cần sửa nội dung, cần cập nhật lại thì code sẽ bỏ qua, không đính kèm file đó, bạn sẽ xử lý như thế nào?
- Khi bạn thêm 1 dòng (HD) mới, bạn copy file đính kèm vào Folder Att -> phải chạy code duyệt hết từng dòng HD đối chiếu với 1 vòng lặp duyệt file đính kèm bên Folder Att rồi tìm xem file đính kèm nào chưa được thêm --> attach vào Table. Bạn tính xem nếu chạy 300 dòng HD, mỗi dòng duyệt cái Folder Att 1 lần thì tốn bao nhiêu tài nguyên máy, thời gian???
- Người dùng chỉ sửa hoặc thêm có 1, 2 file đính kèm --> lại phải chạy code duyệt từng dòng của Table 1 cho đến hết để đối chiếu, tìm file trùng, chỉ để đính kèm 1, 2 file --> Bạn không nghĩ nó quá tốn kém à??
- ...
Nếu là tôi thiết kế cái tool này, tôi chỉ cho phép người dùng khi sửa hay tạo mới một dòng trong Table1, sẽ tự thủ công chọn đường dẫn đến file(s) cần đính kèm rồi bấm nút lệnh đính kèm. Làm theo cách đơn giản nhất nhưng hiệu quả nhất (theo tôi nghĩ). Tuyệt đối không thêm tính năng tự động tìm kiếm trong Folder rồi đính kèm hàng loạt. Tự động mà không kiểm soát được thì không nên làm. (Thường tôi chỉ tạo thêm cái tool riêng tự động làm hàng loạt ở giai đoạn đầu tiên khi đưa dữ liệu vào hệ thống mới rồi thôi).
Nói túm lại là cái yêu cầu trên của bạn tôi không hỗ trợ code được vì theo quan điểm, sự phân tích cá nhân của tôi, nó không thực tế, code xong rồi chắc chắn phải sửa dài dài...
Nếu bạn cần code dã chiến để xử lý vấn đề trên, theo giải pháp mà bạn nghĩ là hợp lý thì nhờ các thành viên khác code giùm nhé.