Lấy dữ liệu Foxpro

Liên hệ QC
mới làm lại chút cho nó thân thiện nhất có thể
chỉ bấm button và chọn file .... mọi cái đã có code lo rồi
chạy tốt trên Excel 32 bít và 64 bít

Liên kết: https://youtu.be/mVBBoIxv-tk
 
Vậy đoán thêm tí nữa
Hàm trong Atools là hàm mở rộng dùng ADODB lấy dữ liệu ... muốn lấy CSDL nào thì thêm cái Driver của nó + cái chuỗi kết nối là lấy khi SQLbuilder tạo và lưu nó ở đâu đó ...

trong trường hợp này FoxPro nó là 32 bít nên ko xử lý được là chính xác
....
Mạnh xử lý bài số 11 = ok kèm Video chạy tốt cho Excel 64 bít

Bạn viết ActiveX EXE trong trường hợp làm việc với driver, ole db 32-bit là ok. Tôi cũng viết nhanh một service phục vụ cho kết nối tới loại driver 32 bit này.
 
Lần chỉnh sửa cuối:
mới làm lại chút cho nó thân thiện nhất có thể
chỉ bấm button và chọn file .... mọi cái đã có code lo rồi
chạy tốt trên Excel 32 bít và 64 bít
Cũng mới cài cái VB6 bảng Portable để test thử vụ đi đường vòng, tạo ActiveX EXE.
Tôi thấy thư viện FireDAC đọc tốt nhiều loại CSDL sao bạn KM không lấy nó tạo tool nhỉ.
 
Cũng mới cài cái VB6 bảng Portable để test thử vụ đi đường vòng, tạo ActiveX EXE.
Tôi thấy thư viện FireDAC đọc tốt nhiều loại CSDL sao bạn KM không lấy nó tạo tool nhỉ.
có hết rồi mấy cái DLL úp trên này là thuần FireDAC đấy ... giờ thích CSDL nào nó hổ trợ là thêm cái chuỗi kết nối là xong thôi

Thuần FireDAC nè
 
Cũng mới cài cái VB6 bảng Portable để test thử vụ đi đường vòng, tạo ActiveX EXE.
Tôi thấy thư viện FireDAC đọc tốt nhiều loại CSDL sao bạn KM không lấy nó tạo tool nhỉ.
hỏi thăm chút .... thế bạn thử trên VB6 sao rùi ???
 
Rảnh vọc mấy ngày chốt lại 2 mục sau

1/ Viết SQLbuilder cho Foxpro = ok
2/ Thích nhích thêm 1 chút lấy Qua Internet cũng ok .... kiểu SQLTCP/IP cho FoxPro
.....
Cất kho lưu trữ thôi .................. ai cần thì có thể la nhỏ thôi nha :D

Cảm ơn chủ thớt đã mở chủ đề này ... cho Tôi có cảm hứng code két khi rảnh chơi cho vui là chính
 
Lần chỉnh sửa cuối:
hỏi thăm chút .... thế bạn thử trên VB6 sao rùi ???

À..chưa thành công vụ tạo Dll, rồi ActiveX EXE để chạy trên 64 bit. Tôi chưa biết cách tích hợp dll bên ngoài vô nên chạy vẫn báo lỗi thiếu component. Để rảnh ngâm cứu tài liệu tiếp.
 
lỡ chơi rồi thì chơi tới bến luôn ...
Xin giới thiệu với các tình yêu .... Tôi đang tiến hành phục chế tái hiện lại món đồ cổ mà Ms bỏ đi lâu rồi
để chạy nó trong thời đại số 4.0 .... mọi cái chỉ nhấn nút .... rất đơn giản ... vì thấy tây nó làm cái DBF View .... nên ghét tôi cũng bắt trước làm thôi ...

xong cái này tôi sẻ cho nó thành cái SQLTCP/IP cho Visual Fox Pro luôn ... cảm giác sẻ máu lửa hơn tây 1 chút thôi :D

Liên kết: https://youtu.be/_-2k5kaB008
 
hỏi thăm chút .... thế bạn thử trên VB6 sao rùi ???
Cách tôi làm cho Office 64bit là:
- Đăng ký driver vfpoled.dll vào C:\SysWOW64
- Tạo ActiveX Exe trên VB6 để kết nối lấy dữ liệu từ Foxpro.
- Trong Excel, khai báo Reference tới cái file Exe mới tạo. Vì ActiveX Exe sẽ tạo một phiên làm việc riêng trên nền 32bit của nó rồi lấy kết quả đưa vào Excel.


Screen Shot 2022-02-24 at 15.13.23.png

Screen Shot 2022-02-24 at 15.14.50.png
 
Lần chỉnh sửa cuối:
có hết rồi mấy cái DLL úp trên này là thuần FireDAC đấy ... giờ thích CSDL nào nó hổ trợ là thêm cái chuỗi kết nối là xong thôi

Thuần FireDAC nè
Mình chỉ biết Excel thuần túy thôi
Bài đã được tự động gộp:

CẢM ƠN CÁC ANH CHỊ ĐÃ HỖ TRỢ TÍCH CỰC
 
Mình chỉ biết Excel thuần túy thôi
Bài đã được tự động gộp:

CẢM ƠN CÁC ANH CHỊ ĐÃ HỖ TRỢ TÍCH CỰC

Vậy tại sao bạn không cài Office 32-bit rồi dùng công cụ để làm bình thường. Lập trình không phải ai cũng làm được tốt, mà nếu làm tốt phải có nhiều năm tháng học liên tục đấy.

Các bạn tạo xxxEXE 32 bit rồi nhúng trong Office 64-bit có để ý tốc độ bị chậm hơn rất nhiều không? Tôi làm thấy chậm gấp ít nhất 4 lần. Nếu dữ liệu nhiều chắc còn có thể hơn nữa.
 
Các bạn tạo xxxEXE 32 bit rồi nhúng trong Office 64-bit có để ý tốc độ bị chậm hơn rất nhiều không? Tôi làm thấy chậm gấp ít nhất 4 lần. Nếu dữ liệu nhiều chắc còn có thể hơn nữa.
Tốc độ chắn chắn là bị chậm hơn so với dùng DLL trực tiếp rồi đó bác Tuân, chưa cần đo cũng có thể suy ra được. Khi chương trình chính chạy, gọi ActiveX EXE thì nó phải chạy riêng một tiến trình (process) khác chương trình chính, rồi còn phải truyền, biên dịch tham số từ chương trình chính sang xxEXE, sau đó lại phải làm ngược chuyển kết quả từ xxEXE sang chương trình chính. Đây chỉ là giải pháp dã chiến, tình thế thôi. :)
 
Tốc độ chắn chắn là bị chậm hơn so với dùng DLL trực tiếp rồi đó bác Tuân, chưa cần đo cũng có thể suy ra được. Khi chương trình chính chạy, gọi ActiveX EXE thì nó phải chạy riêng một tiến trình (process) khác chương trình chính, rồi còn phải truyền, biên dịch tham số từ chương trình chính sang xxEXE, sau đó lại phải làm ngược chuyển kết quả từ xxEXE sang chương trình chính. Đây chỉ là giải pháp dã chiến, tình thế thôi. :)
Thử vậy xem có khác hơn không
1/ Viết 1 ActiveX DLL chỉ hàm kết nối cho Foxpro thôi
2/ còn lại từ ActiveX EXE load kết nối DLL xong xử lý nó

1645709071692.png
 
Lần chỉnh sửa cuối:
Thử vậy xem có khác hơn không
1/ Viết 1 ActiveX DLL chỉ hàm kết nối cho Foxpro thôi
2/ còn lại từ ActiveX EXE load kết nối DLL xong xử lý nó
Đây là cái cách đầu tiên tôi thử, sau đó thấy không cần thiết phải qua một cái Dll rồi mới tới EXE nên bỏ luôn bước 1.
 
Đây là cái cách đầu tiên tôi thử, sau đó thấy không cần thiết phải qua một cái Dll rồi mới tới EXE nên bỏ luôn bước 1.
Nhiều code trong Exe sẽ báo đầy virus mà exe chỉ viết 1 dòng code thôi xong nó load hết hàm trong dll Check viết gõ y trang đang load hàm trong dll
 
Nói về tốc độ thực thi và ứng dụng giữa DLL và EXE:

Screen Shot 2022-02-25 at 06.12.00.png

Screen Shot 2022-02-25 at 06.15.42.png

Cho google dịch:

An ActiveX EXE's code is run in a separate process. When the main program calls an ActiveX EXE's method, the system marshalls the call to translate the parameters into the ActiveX EXE's address space, calls the method, translates the results back into the main program's address space, and returns the result. This is slower than running an ActiveX DLL's method inside the main program's address space.
Because of the difference in speed, an ActiveX DLL is almost always preferable. The reason ActiveX EXEs are useful is they can run on a different computer than the main program while an ActiveX DLL must run on the same computer as the main program.
f you want a centralized server library, use an ActiveX EXE. The EXE can sit on a central computer and work directly with that computer's resources. If you need to frequently change how the code works, you can easily change it in one place.
 
Lần chỉnh sửa cuối:
úp dùm chữ lên thì Google mới dịch dịch ... còn chụp anh úp = thua:p
Đã thêm ở bài trên. Lưu ý là google dịch nó cũng trời thần lắm nhé. Tôi không giỏi tiếng Anh lắm nhưng đôi khi đọc các từ chuyên ngành của nó trực tiếp có thể sẽ hiểu đúng hơn là đọc bản dịch của Google.
 
1/ ActiveX DLL chạy nhanh hơn ActiveX EXE
2/ Vì vậy tôi code hết vào ActiveX DLL .... còn ActiveX EXE chỉ viết 1 dòng code duy nhất load nó thôi
nếu 32 bít thì sử dụng trực tiếp DLL còn 64 bit thì sử dụng ActiveX EXE

trong ActiveX EXE Viết 1 dòng code đại ý như sau ... xong từ Excel check nó gõ chấm ... nó có list của Hàm trong DLL

Mã:
Function GetCOM()
 1 dòng code viết vào đây nha .... thong thả tìm hiểu xem nếu kẹt lắm thì la tôi he
End Function
 
1/ ActiveX DLL chạy nhanh hơn ActiveX EXE
2/ Vì vậy tôi code hết vào ActiveX DLL .... còn ActiveX EXE chỉ viết 1 dòng code duy nhất load nó thôi
nếu 32 bít thì sử dụng trực tiếp DLL còn 64 bit thì sử dụng ActiveX EXE

trong ActiveX EXE Viết 1 dòng code đại ý như sau ... xong từ Excel check nó gõ chấm ... nó có list của Hàm trong DLL

Mã:
Function GetCOM()
 1 dòng code viết vào đây nha .... thong thả tìm hiểu xem nếu kẹt lắm thì la tôi he
End Function
:) vấn đề chính là nằm ở việc gọi EXE từ chương trình chính (Excel) để thực thi mà không phải là gọi trực tiếp từ DLL. Còn việc file EXE lại gọi hàm xử lý từ file DLL khác nó càng đi đường vòng nữa chứ không cải thiện tốc độ gì cả. Đối với ví dụ trên là kết nối với Foxpro database thì nó code đơn giản, nên tôi viết trực tiếp trong EXE luôn chứ không cần phải qua một DLL cho nó rườm rà.

Screen Shot 2022-02-25 at 09.55.34.png
 
Web KT
Back
Top Bottom