1/ WebServer.dll được thiết kế cho ai đó vận dụng viết máy chủ và máy khách trên bất cứ ngôn ngữ lập trình nào … hay trên VBA ta cũng sử dụng viết máy chủ máy khách tốt thông qua các hàm API dựng sẳn Áp dụng cho máy chủ sử dụng hàm API là: StartServer hay InitializeServer
2/ ServerServices.exe Tương tự như WebServer.dll nhưng nó hoàn toàn tư động chạy máy chủ theo dịch vụ Services của Windows thay thế cho 2 hàm StartServer hay InitializeServer
Hướng dẫn sử dụng ServerServices.exe
1/ Bạn phải có quyền Admin trên PC đó
2/ Copy File ServerServices.exe vào đâu đó trên PC thì tuỳ thích
3/ Chạy Run As chọn Yes xác nhận với Windows
4/ Khởi động lại PC và sử dụng ( nếu không khởi động thì vào dịch vụ Services của Windows khởi động lại nó lên là OK )
5/ sau khi đăng ký sử dụng thành công mà thay đổi Folder lưu nó thì thực hiện lại từ mục số 1
6/ trong một số trường hợp khi Windows Update thì dịch vụ ngừng hoạt động thì ta tiến hành thực hiện lại như ban đầu
7/ khi khởi chạy ServerServices.exe thì nó sẻ lưu vào cùng path là file Services.log ghi thông tin IP và Port
8/ Mặc định khi khởi chạy nó sẻ ping IP public trước nếu ta đã NAT Port và IP public nếu không thành công thì nó lắng nghe trên IP LAN
9/ Nếu ai đó muốn ổn định sử dụng trong mạng LAN thì nên Set IP LAN là IP tĩnh cho tiện kết nối các máy trong Mạng LAN
Nên Sử dụng hệ thống 64 bít:
1/ Máy tính và RAM nay quá bèo nên khuyên dùng Windows 64 bít
2/ Tôi thiết kế ServerServices.exe là 64 bít để tận dụng tối đa sử dụng bộ nhớ RAM cho 64 bít
khi máy chủ chạy nhiều luồng khác nhau từ phía các máy khách trên Internet truy xuất dữ liệu từ xa, Downloads, Uploads, Tìm kiếm File – Folder Qua Internet … 2 chiều qua lại liên tục nếu ta sử dụng hệ thống 32 bít thì bị giới hạn phân bổ bộ nhớ RAM rất ít vì vậy tốc độ truy xuất qua lại máy chủ qua máy khách và máy khách qua máy chủ sẻ hạn chế khi nhiều máy cùng truy xuất
Hướng dẫn phía máy khách
1/ Cách truy xuất dữ liệu từ xa, Downloads, Uploads, Tìm kiếm File – Folder Qua Internet thực hiện theo chỉ dẫn link mục số 1
2/ Trên VBA ta có thể sử dụng ADODB tự viết hàm sử dụng để đọc và ghi dữ liệu từ xa tốt nhưng Tôi không chỉ dẫn chi tiết lên đây … mà chỉ gợi ý ra đó nếu ai đó có khả năng dò là ra thôi ( không cần sử dụng API trong WebServer.dll)
3/ Nếu mục số 2 không dò ra thì sử dụng API trong hàm GetRs của WebServer.dll là hàm chính kết nối đọc và ghi dữ liệu từ xa
4/ Khi máy chủ kết nối tới các File liên tục để tăng tốc Tôi tạo cho nó 1 chuỗi kết nối duy nhất và liên tục nên các file đã kết nối phía máy chủ ta mở lên sẻ báo tình trạng file đang sử dụng VD như Access sẻ có hình sau
8243
Còn Excel sẻ báo tình trạng file đang sử dụng ( với mục đích tăng tốc duy trì kết nối không đóng và mở liên tục )
5/ Khi tắt máy tính hay dừng Services thì tự động giải phóng mọi kết nối trước đó
6/ Khi bạn đang mở File Excel hay file bất kỳ thì bạn vẫn có thể Downloads hay Uploads chính nó mà không tạo ra lỗi
( Tóm lại có thể Downloads hay Uploads file đang sử dụng từ máy chủ hay máy khách )
7/ để tăng tốc quá trình vận chuyển File Downloads hay Uploads … Tôi đã nén file lại trước khi vận chuyển qua Internet xong khi nhận sẻ tự động giải nén nó ra …
VD: 1 file khoãng 25 MB khi nén lại chỉ còn khoãng 2 MB Vì vậy tốc độ vận chuyển file qua Internet sẻ nhanh lên đáng kể
8/ File Downloads phía máy chủ mặc định lưu vào Folder [COLOR=rgb(0, 0, 0)]Downloads có trên PC ( nếu Folder [COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)]Downloads đã Move sang D:[COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)]Downloads thì nó tự hiểu lưu vào đó )
[COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)]8242
[COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)]9 / Services.exe sẻ chạy hoàn toàn tự động khi ta mở máy tính lên và dừng khi ta rút điện ra ( Tắt PC )
[COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(184, 49, 47)][COLOR=rgb(0, 0, 0)]Vì vậy mọi vấn đề mô tả phía trên sẽ chạy ngầm hoàn toàn tự động mà không ảnh hưởng tới các tác vụ khác đang sử dụng trên PC … Vì vậy Tôi khuyên sử dụng hệ thống 64 bít để nhận sự hổ trợ tốt nhất khi sử dụng bộ nhớ RAM được phân bổ cho ứng dụng chạy trên Windows 64 bít)
10 / đính kèm file ( Services.exe_ 64 bit sử dụng cho Windows 64 bit ) cho ai đó thích thì dùng và có mong muốn điều chỉnh gì cứ nêu nếu phù hợp tôi sẽ viết lại
ai quan tâm có thể tải trên github.com
https://github.com/KieuManh366377/WebServer-API
Remote Data Service – Dịch vụ dữ liệu từ xa
Cơ bản đã hoàn thiện và chuyển lên kho lưu trữ Github ai quan tâm có thể tải về sử dụng Free không giới hạn
quá trình sử dụng phát sinh lỗi hay có nhu cầu điều chỉnh thì cứ mô tả chi tiết tại chủ đề này … Tôi xem xét nếu xét thấy phù hợp và khả năng có thể
Tôi sẻ viết lại theo yêu cầu …
Lưu chủ đề sau vào đây khi nào rảnh Tôi mở NAT Port + IP public xong liên kết truy xuất dữ liệu từ Web Server vào Google Sheet Xem sao
Nguyên lý nó gần như nhau thôi
https://www.giaiphapexcel.com/diendan/threads/c%C3%A1ch-truy-v%E1%BA%A5n-sql-server-tr%C3%AAn-google-sheet.139608/
Lưu luôn mã bài số 2 vào đây luôn cho tiện khi cần tra cứu và tham khảo _)()(—=0–=0–=0
function onOpen() {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Lấy dữ liệu', functionName: 'readData'}
];
spreadsheet.addMenu('SQLServer', menuItems);
}
var address = '171.244.39.128'; //IP của bạn
var user = 'AnhDom';
var userPwd = '1234!@#$GPe';
var db = 'Test';
var dbUrl = 'jdbc:sqlserver://' + address + ';databaseName=' + db;
function readData() {
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT * FROM [dbo].[tblTest]');
var metaData=results.getMetaData();
var numCols = metaData.getColumnCount();
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clearContents();
var arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(metaData.getColumnName(col + 1));
}
sheet.appendRow(arr);
while (results.next()) {
arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(results.getString(col + 1));
}
sheet.appendRow(arr);
}
results.close();
stmt.close();
sheet.autoResizeColumns(1, numCols+1);
}
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học