Em có phần mềm ghi dữ liệu vào database, dữ liệu không lớn nhưng ghi vào database liên tục,
Cho em hỏi Excel có thể kết nối lấy dữ liệu từ database ra mỗi khi có sự kiện ghi vào hoặc xóa đi trong database được không với điều kiện hạn chế tối đa độ trể, tốc độ mạng là mạng nội bộ 1 Gbps
Em có phần mềm ghi dữ liệu vào database, dữ liệu không lớn nhưng ghi vào database liên tục,
Cho em hỏi Excel có thể kết nối lấy dữ liệu từ database ra mỗi khi có sự kiện ghi vào hoặc xóa đi trong database được không với điều kiện hạn chế tối đa độ trể, tốc độ mạng là mạng nội bộ 1 Gbps
duy trì kết nối liên tục và không đóng mở file liên tục cũng góp phần tăng tốc truy xuất dữ liệu
VD:
có 1 Data.accdb để ở \\192.168.1.168\MyData\Data.accdb ...
nếu biết cách chỉ cần tạo 1 kết nối liên tục thì các máy trong hệ thống mạng LAN truy xuất lại càng nhanh hơn
Chi phí để sử dụng ADODB mở và đóng kết nối nó mất khoãng thời gian là xxx ...
vậy mở 1 lần duy nhất sử dụng cho nhiều kết nối các máy trong hệ thống mạng LAN vào 1 file sẻ nhanh lên đáng kể
sẻ có tay vào vặn vẹo 2 dòng trên ... hãy suy nghĩ trước khi hỏi ... kiểu chất vấn tào lao lại dính gạch đấy
còn hỏi tử tế sẻ giải thích cho he
Em có phần mềm ghi dữ liệu vào database, dữ liệu không lớn nhưng ghi vào database liên tục,
Cho em hỏi Excel có thể kết nối lấy dữ liệu từ database ra mỗi khi có sự kiện ghi vào hoặc xóa đi trong database được không với điều kiện hạn chế tối đa độ trể, tốc độ mạng là mạng nội bộ 1 Gbps
duy trì kết nối liên tục và không đóng mở file liên tục cũng góp phần tăng tốc truy xuất dữ liệu
VD:
có 1 Data.accdb để ở \\192.168.1.168\MyData\Data.accdb ...
nếu biết cách chỉ cần tạo 1 kết nối liên tục thì các máy trong hệ thống mạng LAN truy xuất lại càng nhanh hơn
Chi phí để sử dụng ADODB mở và đóng kết nối nó mất khoãng thời gian là xxx ...
vậy mở 1 lần duy nhất sử dụng cho nhiều kết nối các máy trong hệ thống mạng LAN vào 1 file sẻ nhanh lên đáng kể
sẻ có tay vào vặn vẹo 2 dòng trên ... hãy suy nghĩ trước khi hỏi ... kiểu chất vấn tào lao lại dính gạch đấy
còn hỏi tử tế sẻ giải thích cho he
Không dùng kết nối liên tục vì sẽ làm excel bị đơ, có cách nào kiểm tra biến đổi trên database, nếu có thay đổi trên database thì sẽ cập nhật phần thay đổi đó về ko anh,
ví dụ: trên Database có ghi thêm 1 dữ liệu A, thì ngay lập tức excel kết nối tới Database đó lấy đúng A về, chứ ko phải lấy về kể cả những dữ liệu trứic đó
Không dùng kết nối liên tục vì sẽ làm excel bị đơ, có cách nào kiểm tra biến đổi trên database, nếu có thay đổi trên database thì sẽ cập nhật phần thay đổi đó về ko anh,
ví dụ: trên Database có ghi thêm 1 dữ liệu A, thì ngay lập tức excel kết nối tới Database đó lấy đúng A về, chứ ko phải lấy về kể cả những dữ liệu trứic đó
Theo theo dõi vài thớt và cách hỏi nhỏ giọt thông tin + mờ mờ ....
Tôi gọi ý kiểu nhỏ giọt và mờ mờ vậy
1/ Viết cho Nó 1 Services.Exe hay Exe tray gì đó là tuỳ thích trong đó bao gồm:
- Tạo 1 Timer cho nó cứ vài giây chi đó kiểm tra File Database 1 lần nếu File đó có thay đổi thì lập tức kết nối lấy dữ liệu
- Tiện là nó chạy mặc định khi windows khởi động và dừng khi ta rút điện ra
- bằng cách gì đó nhanh nhất có thể ... kiểm tra file đó xem có gì thay đổi nếu thay đổi lập tức kết nối lấy dữ liệu
2/ Cách kiểm tra File có thay đổi hay không trên VBA đầy cách nhưng nó chạy không nhanh lắm
còn kết nối xem dữ liệu có thay đổi hay không thì đó là hết cách mới dùng tới nó
3/ trên Delphi dùng cách check GetStreamToHashSHA256Hex hay CalculateFileHash của file là nhanh nhất xong xem nó thay đổi với mã gốc trước đó lập tức tự động chạy kết nối
Không dùng kết nối liên tục vì sẽ làm excel bị đơ, có cách nào kiểm tra biến đổi trên database, nếu có thay đổi trên database thì sẽ cập nhật phần thay đổi đó về ko anh,
ví dụ: trên Database có ghi thêm 1 dữ liệu A, thì ngay lập tức excel kết nối tới Database đó lấy đúng A về, chứ ko phải lấy về kể cả những dữ liệu trứic đó
Hôm nay đọc lại Tôi nghi ngờ dòng Tôi phóng to ra là File Database để trong mạng LAN có nhiều máy kết nối liên tục .... tức là có nhiều kết nối từ nhiều máy trong LAN tới 1 file chứ không phải 1 kết nối duy nhất cho nhiều máy cùng sử dụng ... Vì trên VBA chưa ai viết được 1 kết nối duy nhất sử dụng chung cho nhiều máy cùng truy xuất dữ liệu cả
nếu làm tốt duy trì 1 kết nối duy nhất cho nhiều máy thì loại bỏ VBA ra làm nhẹ như cái kim ... Nên bài số 2 tôi nói rất rõ và phóng to ra màu đỏ
kẻo não cá vàng chưa suy nghĩ hết nhảy vào cà kịa dính gạch à
Database ở đây là cái gì?
Mỗi loại cấu trúc có cách kết nối khác. Và nếu Database nằm trong Server riêng của nó thì 90% là nó có phần mềm quản lý nó.
Người quản lý đặt cho Database số kết nối, và giới hạn sử dụng cũng như thời gian cho mỗi kết nối.
Loại Database này, mỗi kết nối tự động biết cập nhật dữ liệu. Nếu người dùng sợ rằng dữ liệu thay đổi vào giữa lúc mình đang tính toán thì có thể dùng cách khóa record/bảng trong lúc đang tính toán.
Nếu là Mysql thì khi table trong mysql được ghi thì có cách nào thông báo về máy chỉ định, máy dc chỉ định sẽ kết nối lên mysql lấy về và CHỈ cập nhật đúng dữ liệu thay đổi, và ghi vào excel dữ liệu mới ( ko ghi đè tất cả dữ liệu 1 lần nửa )
Nếu là Mysql thì khi table trong mysql được ghi thì có cách nào thông báo về máy chỉ định, máy dc chỉ định sẽ kết nối lên mysql lấy về và CHỈ cập nhật đúng dữ liệu thay đổi, và ghi vào excel dữ liệu mới ( ko ghi đè tất cả dữ liệu 1 lần nửa )
Nếu là Mysql thì khi table trong mysql được ghi thì có cách nào thông báo về máy chỉ định, máy dc chỉ định sẽ kết nối lên mysql lấy về và CHỈ cập nhật đúng dữ liệu thay đổi, và ghi vào excel dữ liệu mới ( ko ghi đè tất cả dữ liệu 1 lần nửa )
Bạn có thể dùng các công nghệ WebSocket hoặc Message Queue để lưu trữ event (sự kiện) insert/update của database.
Sau đó tại UI, lắng nghe các sự kiện ở trên.
--------
Mình không dùng excel nhiều lắm, không biết có hỗ trợ các công nghệ WebSocket hay Message Queue chưa. Nếu không thì phải viết thêm plugin cho nó.
Tò mò dò 1 buổi chiều xem nó là cái gì ... thì nó cũng là mô hình Server và Client thôi ... nhưng nó có khả năng cập nhật thời gian thực và duy trì kết nối 2 chiều liên tục theo như nó mô tả ... còn ta có khả năng làm tốt như nó mô tả hay không thì là chuyện xxx
Bạn có thể dùng các công nghệ WebSocket hoặc Message Queue để lưu trữ event (sự kiện) insert/update của database.
Sau đó tại UI, lắng nghe các sự kiện ở trên.
--------
Mình không dùng excel nhiều lắm, không biết có hỗ trợ các công nghệ WebSocket hay Message Queue chưa. Nếu không thì phải viết thêm plugin cho nó.
Bạn có thể dùng các công nghệ WebSocket hoặc Message Queue để lưu trữ event (sự kiện) insert/update của database.
Sau đó tại UI, lắng nghe các sự kiện ở trên.
--------
Mình không dùng excel nhiều lắm, không biết có hỗ trợ các công nghệ WebSocket hay Message Queue chưa. Nếu không thì phải viết thêm plugin cho nó.
Bạn có thể dùng các công nghệ WebSocket hoặc Message Queue để lưu trữ event (sự kiện) insert/update của database.
Sau đó tại UI, lắng nghe các sự kiện ở trên.
--------
Mình không dùng excel nhiều lắm, không biết có hỗ trợ các công nghệ WebSocket hay Message Queue chưa. Nếu không thì phải viết thêm plugin cho nó.
Bạn có thể dùng các công nghệ WebSocket hoặc Message Queue để lưu trữ event (sự kiện) insert/update của database.
Sau đó tại UI, lắng nghe các sự kiện ở trên.
--------
Mình không dùng excel nhiều lắm, không biết có hỗ trợ các công nghệ WebSocket hay Message Queue chưa. Nếu không thì phải viết thêm plugin cho nó.
Cái khúc này hiện tại trên thế giới chưa có đâu nhé. Trừ Google Sheets thì chỉ có Microsoft làm với Excel 2021/365 khi bảng tính được chia sẻ với các tài khoản khác.
lướt qua các tài liệu Web Socket 1 chút thì nó mô tả có khả năng thời gian thực khắc phục thời gian trễ của HTTP không có
và nó duy trì kết nối 2 chiều liên tục nhưng lại có nhược điểm nếu nhiều máy kết nối qua WebSocket thì chiếm nhiều tài nguyên băng thông dẫn tới chậm hoặc đơ vvv...
thấy đa số sử dụng WebServer (HTTP) hơn là WebSocket... còn tại sao thì không biết
nguyên lý hoạt động và tuần tự hoá của HTTP và WebSocket có nhiều cái gần giống nhau vì nó cũng là mô hình máy chủ và máy khách kết nối thông qua giao diện Web
Cái WebServer.dll là một cách thực hiện truy xuất dữ liệu qua Internet WebServer ( HTTP ) ... thay vì có giao diện Web ( HTML ) thì loại bỏ không sử dụng nó thôi
Mấy năm trước anh Tây phán chính xác là ẩn chứa đàng sau cái xx của Ms là 1 WebServer .....