PDA

View Full Version : Record set và vb



TV_THINH
17-04-2004, 20:20
ôi giúp mình với : mình đã làm như cách của bạn chỉ là dùng lưới nhưng lỡ mình đang ghi từ lưới vào database mà bị cúp điện (như : đang ghi nữa lưới mà cúp điện , thì nữa lưới còn lại không kịp ghi thì mất ) .... thì làm sao ????
Giúp với.

phatnq2003
18-04-2004, 15:42
ôi giúp mình với : mình đã làm như cách của bạn chỉ là dùng lưới nhưng lỡ mình đang ghi từ lưới vào database mà bị cúp điện (như : đang ghi nữa lưới mà cúp điện , thì nữa lưới còn lại không kịp ghi thì mất ) .... thì làm sao ????
Giúp với.

Cái này chỉ có trời kíu mà thui!
Tuy nhiên cũng có chiu xài đỡ. Bạn tạo một table temp để lưu trực tiếp dữ liệu khi có mỗi dòng trong lưới được update.
Khi thực sự tiến trình lưu đã hòan tất thì bạn xóa data trong temp đi, còn nếu không thì khi mở máy lại bạn cho load data trong temp lên (tương tự như recovered trong Word, Excel vậy đó).
:yes:

ghienvb
19-04-2004, 17:20
Sao bạn không dùm kỹ thuật rollback dữ liệu , như vậy nếu có cúp điện nữa chừng củng đâu có trăng.

phatnq2003
20-04-2004, 00:00
Sao bạn không dùm kỹ thuật rollback dữ liệu , như vậy nếu có cúp điện nữa chừng củng đâu có trăng.

Bạn TV_THINH muốn là cái nào có trong lưới thì lưu lại trong database, nếu có cúp điện thì lần sau mở ra vẫn còn. Do đó tui chơi cái trò này.

Dùng kỹ thuật Rollback để dùng trong trường hợp Transaction một batch dữ liệu trong đóp phải bảo đảm là dữ liệu được đến trọn batch, nếu có fail giữa chừng thì coi như xù, không có cái nào được gửi đi. Cái này thì hình như không đúng ý bạn TV_THINH lắm nên tui không đề cập. Cám ơn chiến hữu góp ý. :yes:

TV_THINH
20-04-2004, 01:43
cám ơn các bạn mình định sử dụng cả hai cách để nhập dữ liệu : trước hết mình chứa dữ liệu người dùng nhập vào table tạm. Khi ghi thì mình sẽ ghi từ table tạm vào csdl và sau khi ghi xong mình sẽ xóa table tạm. Mình sẽ dùng rollback. Nhưng không biết rollback có sử dụng được với csdl access được không ? Có thể cho mình biết ít thông tin về kỹ thuật này ?

TV_THINH
20-04-2004, 01:47
cho mình hỏi các bạn làm sao để nhập và hiệu chỉnh lại dữ liệu kiểu 1-n.
như một hóa đơn có n dòng chi tiết làm sao để nhập và sau khi đã nhập xong thì làm sao để hiệu chỉnh hóa đơn : phải xóa tất cả chi tiết hóa đơn rồi nhập lại mới ????

coldsteel
22-04-2004, 04:57
Các bạn có thể nói rõ hơn về kĩ thuật roll back không? Thanks.

phatnq2003
25-04-2004, 00:55
cho mình hỏi các bạn làm sao để nhập và hiệu chỉnh lại dữ liệu kiểu 1-n.
như một hóa đơn có n dòng chi tiết làm sao để nhập và sau khi đã nhập xong thì làm sao để hiệu chỉnh hóa đơn : phải xóa tất cả chi tiết hóa đơn rồi nhập lại mới ????

Nếu bạn thiết kế ứng dụng bằng Access thì đâu cogì phức tạp đâu, bạn chỉ cần thiết lập một form Main/Sub (Master/Detail) là được chứ gì.

Nếu bạn thiết kế bằng Basic, bạn nên sử dụng ADO để kết nối. Sau đó dùng các method của ADODB để update dữ liệu (Update hoặc UpdateBatch)
:)

phatnq2003
25-04-2004, 01:02
Các bạn có thể nói rõ hơn về kĩ thuật roll back không? Thanks.

Nếu bạn dùng SQL Server thì chắn bạn sẽ hiểu kỹ thuật Rollback là gì. Tôi chỉ có thể túm lại như thế này:

Đây là một phần của tác vụ Transaction trong SQL, người ta thường gọi là chuyển tác: là một tác vụ chuyển giao hoặc thực thi những bó lệnh làm thay đổi dữ liệu của database.
Rollback là chỉ thị hoàn nguyên tình trạng dữ liệu hay là hủy bỏ một chuyển tác. Khi một Roolback được triệu gọi, toàn bộ những thay đổi dữ liệu sẽ bị hủy. Dữ liệu sẽ lấy lại giá trị trước khi cập nhật.

Mô hình cơ bản như sau:

Begin Transaction
Các lệnh SQL
Nếu có lỗi xảy ra thì Rollback
Commit Transaction

Bạn có thể tham khảo các tài liệu về SQL để biết thêm
:yes:

ntk80
26-04-2004, 16:22
Bạn hiểu rõ như vậy thì bạn có thể nói thêm về kỹ thuật Rollback hay Transaction của Microsoft Transaction Server hay Com+ được không mình biếtkhông rành lắm. Mong bạn chỉ giáo thêm đợưc không