Chương trình chia sẻ CSDL qua Internet

Liên hệ QC
192.168.x.x cái IP là cái IP mạng nội bộ, không phải IP Publib, muốn dùng IP Publib phải mở port nha. Chưa có mở port mà đòi chia sẽ qua internet

Demo đó chủ yếu giới thiệu về cách thức sử dụng chương trình, kết nối và cách lập trình sử dụng cái tool này - đây là điều quan trọng nhất. Khi bạn down về tự khai báo IP tĩnh của bạn hoặc DDNS vô test nhé.
Đã kiểm tra các kiểu rồi mới đưa lên chứ không có kiểu "treo đầu dê bán thịt chó" ở đây nhé bạn.
 
Demo đó chủ yếu giới thiệu về cách thức sử dụng chương trình, kết nối và cách lập trình sử dụng cái tool này - đây là điều quan trọng nhất. Khi bạn down về tự khai báo IP tĩnh của bạn hoặc DDNS vô test nhé.
Đã kiểm tra các kiểu rồi mới đưa lên chứ không có kiểu "treo đầu dê bán thịt chó" ở đây nhé bạn.
Tôi lúc trước cũng viết một cái web form cho phép nạp SQL để truy vấn CSDL từ một máy khác thông qua giao thức http. Nếu nạp lệnh kiểu SELECT thì nó xuất kết quả dạng bảng, còn lại thì cho kết quả thực thi (ví dụ bao nhiêu dòng bị cập nhật, bị xóa). Phần lập trình mạng thì hầu như chẳng cần làm nhiều gì cả vì cái Browser (trình duyệt web) với Host nó tự giải quyết rồi, việc duy nhất của tôi là viết code chạy query với xuất kết quả query từ trên host. Ưu điểm của cái tôi viết là không cần cài đặt gì cả, thậm chí không cần dùng máy tính, chỉ cần cái điện thoại mở browser oánh địa chỉ nạp web form là thao tác được.

Theo ongke0711, cái tôi viết có được coi là công cụ hay chương trình kết nối, chia sẻ CSDL không nhỉ? Đang hy vọng được bác nói "Phải" để mở mày mở mặt --=0. Còn nếu "Không phải" thì cần đạt thêm tiêu chí gì nhỉ?
 
Tôi lúc trước cũng viết một cái web form cho phép nạp SQL để truy vấn CSDL từ một máy khác thông qua giao thức http. Nếu nạp lệnh kiểu SELECT thì nó xuất kết quả dạng bảng, còn lại thì cho kết quả thực thi (ví dụ bao nhiêu dòng bị cập nhật, bị xóa). Phần lập trình mạng thì hầu như chẳng cần làm nhiều gì cả vì cái Browser (trình duyệt web) với Host nó tự giải quyết rồi, việc duy nhất của tôi là viết code chạy query với xuất kết quả query từ trên host. Ưu điểm của cái tôi viết là không cần cài đặt gì cả, thậm chí không cần dùng máy tính, chỉ cần cái điện thoại mở browser oánh địa chỉ nạp web form là thao tác được.

Theo ongke0711, cái tôi viết có được coi là công cụ hay chương trình kết nối, chia sẻ CSDL không nhỉ? Đang hy vọng được bác nói "Phải" để mở mày mở mặt --=0. Còn nếu "Không phải" thì cần đạt thêm tiêu chí gì nhỉ?

Tôi thì chỉ biết mỗi VBA chứ không biết ngôn ngữ lập trình khác nhưng tôi biết các ngôn ngữ khác sẽ có thư viện hỗ trợ mạnh hơn, cụ thể là cho việc kết nối qua internet, thực hiện những tác vụ đơn giản mà đối với VBA phải viết một đống code.
Vấn đề kết nối còn liên quan đến CSDL mà bạn dùng. Nếu tôi dùng SQL Server + Ms Access làm front end thì cũng thao tác kết nối máy chủ qua internet như bình thường không cần cài đặt thêm tool này nọ vì bản thân SQL SV đã hỗ trợ rồi. Nếu không dùng Access làm front end (Desktop Application) thì dùng dùng ASP.net, PHP...để thiết kế theo dạng Web Application, chỉ cần có trình duyệt web là máy nào chạy cũng được như bạn đã viết.
Quay lại cái công cụ bạn thuyyeu9999 chia sẻ ở đây thì nên hiểu theo kiểu: là cái tool viết riêng để hỗ trợ các loại CSDL (Ms Access, tạm coi Excel cũng là CSDL vậy) mà bản thân nó không hỗ trợ để truy xuất, thao tác đến dữ liệu của nó qua Internet (không nói đến lập trình Windows Socket nhé).
Theo tôi cái ứng dụng bạn viết không phải là công cụ để hỗ trợ người lập trình mà là một ứng dụng cho người dùng cuối.
 
Tôi lúc trước cũng viết một cái web form cho phép nạp SQL để truy vấn CSDL từ một máy khác thông qua giao thức http. Nếu nạp lệnh kiểu SELECT thì nó xuất kết quả dạng bảng, còn lại thì cho kết quả thực thi (ví dụ bao nhiêu dòng bị cập nhật, bị xóa). Phần lập trình mạng thì hầu như chẳng cần làm nhiều gì cả vì cái Browser (trình duyệt web) với Host nó tự giải quyết rồi, việc duy nhất của tôi là viết code chạy query với xuất kết quả query từ trên host. Ưu điểm của cái tôi viết là không cần cài đặt gì cả, thậm chí không cần dùng máy tính, chỉ cần cái điện thoại mở browser oánh địa chỉ nạp web form là thao tác được.

Theo ongke0711, cái tôi viết có được coi là công cụ hay chương trình kết nối, chia sẻ CSDL không nhỉ? Đang hy vọng được bác nói "Phải" để mở mày mở mặt --=0. Còn nếu "Không phải" thì cần đạt thêm tiêu chí gì nhỉ?
Hihi cám ơn bạn, :clap:
Lâu lam rồi mới có người comment
 
Lần chỉnh sửa cuối:
Vấn đề kết nối còn liên quan đến CSDL mà bạn dùng. Nếu tôi dùng SQL Server + Ms Access làm front end thì cũng thao tác kết nối máy chủ qua internet như bình thường không cần cài đặt thêm tool này nọ vì bản thân SQL SV đã hỗ trợ rồi. Nếu không dùng Access làm front end (Desktop Application) thì dùng dùng ASP.net, PHP...để thiết kế theo dạng Web Application, chỉ cần có trình duyệt web là máy nào chạy cũng được như bạn đã viết.
Quay lại cái công cụ bạn thuyyeu9999 chia sẻ ở đây thì nên hiểu theo kiểu: là cái tool viết riêng để hỗ trợ các loại CSDL (Ms Access, tạm coi Excel cũng là CSDL vậy) mà bản thân nó không hỗ trợ để truy xuất, thao tác đến dữ liệu của nó qua Internet (không nói đến lập trình Windows Socket nhé).
Theo tôi cái ứng dụng bạn viết không phải là công cụ để hỗ trợ người lập trình mà là một ứng dụng cho người dùng cuối.
Có thể bác chưa lập trình web bao giờ nên mới nhận định như vậy. Web form là do mã trên server sinh ra cho browser, mã tương tác với CSDL cũng nằm trên server. Tôi lợi dụng giao thức HTTP dựa trên nền tảng TCP/IP để tránh việc phải viết lại cái phần TCP/IP khá đau đầu.

Mã của tôi nối với một CSDL cụ thể nhưng tôi hoàn toàn có thể chỉnh sửa để nó có thể nối với bất cứ CSDL được phép trên server. Về phía client, mọi ngôn ngữ lập trình đều có thể truy vấn CSDL thông qua giao thức HTTP. Chẳng hạn với VBA thì có thể dùng MSXML2.DOMDocument truy cập đường dẫn "http://linkluutru?query=SELECT... FROM" mà không cần phải dùng thư viện ngoài nào cả.

Nhưng ngay cả khi tôi có viết ra như thế thì tôi cũng không nghĩ là mình đã tạo chương trình "kết nối, chia sẻ CSDL". Đây là khái niệm rất bao quát, phức tạp cỡ trình độ như tôi là không bao giờ dám nghĩ đến.
 
Thế mục đích anh hỏi là gì ???....
 
Hihi dạo này mình nhiều việc phải xử lý quá, chưa có thời gian rảnh để làm cái Permission
 
Có thể bác chưa lập trình web bao giờ nên mới nhận định như vậy. Web form là do mã trên server sinh ra cho browser, mã tương tác với CSDL cũng nằm trên server. Tôi lợi dụng giao thức HTTP dựa trên nền tảng TCP/IP để tránh việc phải viết lại cái phần TCP/IP khá đau đầu.

Mã của tôi nối với một CSDL cụ thể nhưng tôi hoàn toàn có thể chỉnh sửa để nó có thể nối với bất cứ CSDL được phép trên server. Về phía client, mọi ngôn ngữ lập trình đều có thể truy vấn CSDL thông qua giao thức HTTP. Chẳng hạn với VBA thì có thể dùng MSXML2.DOMDocument truy cập đường dẫn "http://linkluutru?query=SELECT... FROM" mà không cần phải dùng thư viện ngoài nào cả.

Nhưng ngay cả khi tôi có viết ra như thế thì tôi cũng không nghĩ là mình đã tạo chương trình "kết nối, chia sẻ CSDL". Đây là khái niệm rất bao quát, phức tạp cỡ trình độ như tôi là không bao giờ dám nghĩ đến.
hihihi ;) về ngữ nghĩa theo mình không hề sai, còn bạn nghĩ bao quát là ý kiến cá nhân của bạn, hehe mà mình cũng không đi sâu vào vấn đề ngữ nghĩa đâu.
Còn cái mình hỏi Conect ảnh hưởng đến hiệu suất là vấn đề khác mà đã phát hiện ra rồi ;).
Bạn vô nhà người khác và người ta mời uống nước thì mới có nước mà uống, còn không mời thì bắt buộc phải tự đem nước theo mà uống chứ

Ah mà quên còn cái OCX mình đã Share lên mạng thì chắc chắc đã có người Dowload về thử nghiệm mà nói thẳng là mình có check connect và khi thực hiện lấy dữ liệu xong là ngắt kết nối luôn.
Kỳ này là cho người dùng tự chọn xem cấu hình sever mình đủ mạnh thì cứ cho connect hay disconect thì tuỳ mọi người.
 
Lần chỉnh sửa cuối:
Do máy yếu nên chắc có dùng 1 chúc tiểu sảo, anh Vô Danh Tiểu Tốt có soi ra nói em biết nhé


Sau bao nhiêu mệt mỏi, niềm vui tinh thần là đây

data.png
 
Có thể bác chưa lập trình web bao giờ ... Tôi lợi dụng giao thức HTTP dựa trên nền tảng TCP/IP để tránh việc phải viết lại cái phần TCP/IP khá đau đầu.
...
Nhưng ngay cả khi tôi có viết ra như thế thì tôi cũng không nghĩ là mình đã tạo chương trình "kết nối, chia sẻ CSDL". Đây là khái niệm rất bao quát, phức tạp cỡ trình độ như tôi là không bao giờ dám nghĩ đến.

Thấy bạn nhắc lại sẳn tôi phản hồi luôn.
Bạn đang so sánh khập khiễng rồi.
- Bạn viết trên nền web, web form để kết nối tới CSDL và Tool của bạn thuyyeu99 thì không dùng ngôn ngữ lập trình web.
- Bạn không cần dùng thư viện ngoài nào cả vậy để chạy Web server bạn không cần cài phần mềm gì sao? không cài HTTP server? Apache, xampp gì gì đó?
- Tool nói rõ dùng cho Access và Excel. Dùng chính ứng dụng Access và Excel + Tool để lập trình. Vậy nếu tôi dùng cách của bạn có thể lập trình trong Access để kết nối tới Access không hoặc mở file Excel lên tạo kết nối với file khác trong một folder nào đó qua internet?
- Bạn có đề cập đến thư viện MSXML2.DOMDocument có trong VBA, đúng là tôi chưa dùng nhiều thư viện này chỉ lấy dữ liệu từ web xuống vì nó là WebServices. Vậy bạn có thể dùng nó để kết nối và lấy dữ liệu từ một file Excel, Access từ một máy khác (máy chủ cũng được) qua internet? Tôi cũng muốn học hỏi cái này.
Theo tôi hiểu thì bạn (developer) chỉ ứng dụng các thư viện người ta viết sẳn để xây dựng ứng dụng mô hình Client - Server, còn cái tool bạn thuyyeu cũng như tool của bác Tuân là họ tự viết nên cái thư viện để cho developer áp dụng vô phầm mềm của họ. Chỉ vậy thôi.
 
Lần chỉnh sửa cuối:
Bạn đang so sánh khập khiễng rồi.
- Bạn viết trên nền web, web form để kết nối tới CSDL và Tool của bạn thuyyeu99 thì không dùng ngôn ngữ lập trình web.
- Tool nói rõ dùng cho Access và Excel. Dùng chính ứng dụng Access và Excel + Tool để lập trình. Vậy nếu tôi dùng cách của bạn có thể lập trình trong Access để kết nối tới Access không hoặc mở file Excel lên tạo kết nối với file khác trong một folder nào đó qua internet?
- Bạn có đề cập đến thư viện MSXML2.DOMDocument có trong VBA, đúng là tôi chưa dùng nhiều thư viện này chỉ lấy dữ liệu từ web xuống vì nó là WebServices. Vậy bạn có thể dùng nó để kết nối và lấy dữ liệu từ một file Excel, Access từ một máy khác (máy chủ cũng được) qua internet? Tôi cũng muốn học hỏi cái này.
Anh có vẻ dùng mấy thông tin cũ nên không hiểu ý tôi thì phải. Hiểu đơn giản là tôi tạo ra một dịch vụ nhỏ để trả về dữ liệu có thể ở nhiều định dạng chẳng hạn CSV, XML, JSON, PLAIN-TEXT... hay bất cứ định dạng nào mà anh muốn dùng. Để khai thác dữ liệu từ ứng dụng của tôi thì cũng cần biết đường dẫn (ở dạng URL hay IP+Port). Chỉ khác là cách tôi tận dụng dịch vụ HTTP trên server, còn phương án chị Thủy thì tự tạo một cái dịch vụ riêng trên server.

Thông qua HTTP thì tôi dễ dàng kiểm tra, thử nghiệm chỉ bằng trình duyệt Chrome, IE, Firefox... Hay tuyệt vời hơn là nạp đường dẫn vào chính Excel để nó tự load dữ liệu về đúng triết lý chả cần lập trình Excel gì mà vẫn có dữ liệu }}}}}. Còn với các ngôn ngữ lập trình khác thì việc khai thác nguồn dữ liệu này quá dễ dàng.

Giao thức HTTP cũng chỉ là khai thác TCP/IP, mà cái dịch vụ cho HTTP này tích hợp sẵn trong Windows, chỉ cần biết bật nó lên là dùng được. Cách đây hơn 10-20 năm trước, nhiều văn phòng các sở ngành, công ty, đại học... đã tận dụng dịch vụ trên HTTP để tạo ra các ứng dụng dạng web trong mạng nội bộ thay vì dùng đến công nghệ TCP/IP thuộc loại siêu khó (ở thời điểm đó).

Để tạo ra cách dịch vụ dữ liệu thông qua HTTP thì hiển nhiên là phải dùng ngôn ngữ lập trình web. Nhiều vị sẽ ngạc nhiên nếu biết rằng khá nhiều ngôn ngữ lập trình web bây giờ dùng còn dễ hơn cả VBA. Chẳng qua do tâm lý đụng đến đến server, host nghe nó cao siêu nên ai cũng nghĩ là nó khó nhất là lập trình web thời điểm trước phức tạp ngang ngửa với lập trình windows. Tôi có cái may mắn vớ được tài liệu MS dành cho MCV 4.0 ra đời vào năm 2012. Xét về độ đơn giản, ngắn gọn thì nó có thể chỉ bằng 1/3 so với công nghệ Webform của MS ra đời trước đây. Chỉ cần mỗi một cái biến DATA_VDTT kết nối database thì tôi đã có thể khai thác bất cứ dữ liệu từ bảng nào thông qua DATA_VDTT["tên bảng"] hay thực hiện bất cứ SQL với lệnh DATA_VDTT.Query("lệnh..."). Nó có vài nét tương đồng với connection của ADO nhưng độ linh hoạt, tháo vát thì tuyệt vời hơn rất nhiều.
 
Mạnh hỏi 1 chút bài Số 52
đọc qua mà cứ như vịt nghe sấm vậy .... thui bỏ hết chỉ hỏi tẹo sau thôi :p

VD: đưa cái Database.accdb lên HTTP Web Server .... thì từ bất cứ máy nào lấy dữ liệu nó thì sao ???
cái máy chứa cái Database.accdb lên HTTP Web Server đó có cần NAT Port modem hay ko ???? để cho máy khác lấy dữ liệu .... chỉ hỏi cái này thôi
 
Mạnh hỏi 1 chút bài Số 52
đọc qua mà cứ như vịt nghe sấm vậy .... thui bỏ hết chỉ hỏi tẹo sau thôi :p

VD: đưa cái Database.accdb lên HTTP Web Server .... thì từ bất cứ máy nào lấy dữ liệu nó thì sao ???
cái máy chứa cái Database.accdb lên HTTP Web Server đó có cần NAT Port modem hay ko ???? để cho máy khác lấy dữ liệu .... chỉ hỏi cái này thôi
Ví dụ tôi tạo ra một cái kênh cấp dữ liệu theo địa chỉ
Mã:
"http://myservices.com?db=ten_db&query=SELECT.."
với tham số db chỉ database, query là câu truy vấn dữ liệu thì chỉ cần dán cái địa chỉ kèm truy vấn vô Firefox, Chrome... hay là Excel là nó trả về dữ liệu thôi. Giả sử anh muốn hình thức dữ liệu trả về thì bổ sung thêm tham số type lúc này link truy vấn dữ liệu sẽ là "http://myservices.com?db=ten_db&query=...&type=XML" với yêu cầu dữ liệu là XML. Cái này phụ thuộc vào script anh viết trên web-server. Nói chung anh Mạnh đã lập trình đến mức độ này rồi thì mấy cái yêu cầu trên chỉ là muỗi thôi.
 
Lần chỉnh sửa cuối:
Hihi kiến thức anh về HTTP thì chắc khỏi bàn cải rồi.
Nói tóm lại 2 cái có cái tương đồng vá có cái khác, mà khác cái gì quện rồi.
Mọi người thích gì hơn là tùy thuộc ở mỗi người. Còn không anh rảnh thì mở Toppic hướng dẫn thêm cho phong phú
 
Ví dụ tôi tạo ra một cái kênh cấp dữ liệu theo địa chỉ
Mã:
"http://myservices.com?db=ten_db&query=SELECT.."
với tham số db chỉ database, query là câu truy vấn dữ liệu thì chỉ cần dán cái địa chỉ kèm truy vấn vô Firefox, Chrome... hay là Excel là nó trả về dữ liệu thôi. Giả sử anh muốn hình thức dữ liệu trả về thì bổ sung thêm tham số type lúc này link truy vấn dữ liệu sẽ là "http://myservices.com?db=ten_db&query=...&type=XML" với yêu cầu dữ liệu là XML. Cái này phụ thuộc vào script anh viết trên web-server. Nói chung anh Mạnh đã lập trình đến mức độ này rồi thì mấy cái yêu cầu trên chỉ là muỗi thôi.
còn cái dòng sau thì sao ???

NAT Port modem hay ko ????

Bài số 53 ấy :D
 
Ví dụ tôi tạo ra một cái kênh cấp dữ liệu theo địa chỉ
Mã:
"http://myservices.com?db=ten_db&query=SELECT.."
với tham số db chỉ database, query là câu truy vấn dữ liệu thì chỉ cần dán cái địa chỉ kèm truy vấn vô Firefox, Chrome... hay là Excel là nó trả về dữ liệu thôi. Giả sử anh muốn hình thức dữ liệu trả về thì bổ sung thêm tham số type lúc này link truy vấn dữ liệu sẽ là "http://myservices.com?db=ten_db&query=...&type=XML" với yêu cầu dữ liệu là XML. Cái này phụ thuộc vào script anh viết trên web-server. Nói chung anh Mạnh đã lập trình đến mức độ này rồi thì mấy cái yêu cầu trên chỉ là muỗi thôi.
máy khách sẽ nhận được kết quả dưới dạng nào á bạn?
 
máy khách sẽ nhận được kết quả dưới dạng nào á bạn?
Mặc định là dạng html nhưng nó có thể trả về dữ liệu bất kỳ như text(html, txt, xml, json, csv...), image (gif, jpg, bmp...).. Tùy theo nhu cầu và kỹ năng lập trình của bạn. Với dữ liệu kiểu text là dễ nhất.
 
Thi thoảng rờ tới web cũng lâu lắm rồi nhưng tôi chưa bao giờ phải xử lý những vấn đề này (NAT là gì tôi còn chả biết đây --=0) . Với port thì tôi dùng link kiểu http://123.123.123:999 (port nằm sau 2 chấm) Chắc là do tôi upload lên các server được người ta cài đặt sẵn nên không phải lo mấy cái chuyên môn cao siêu thế này. Bác Mạnh đừng hỏi mấy cái sâu với khó quá trình độ của tôi là không trả lời được đâu. :boredom:
 
Lần chỉnh sửa cuối:
Có ai đọc được thì đọc nhé
Cái nét work gì gì đó là cả 1 Cái class cũng là một mớ mấm, muối, nước tương trong đó chứ không đơn giản đâu.
Còn cái connect của tôi cũng là một mớ mấm, muối, nước tương trong đó chứ không có chuyện 1 phát ăn ngay đâu.
mà cũng biết đâu chừng " giống Dương Quá, buồn vì mười mấy năm không gặp cô Long nên đã luyện thành tuyệt kỷ Ám Nhiên Tiêu Hồn Chưởng " ra được món mới :D
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom