• Quá trình thực hiện một lệnh với CSDL
  • Quá trình thực hiện một lệnh với CSDL

    dinh_trong_hoa > 02-08-16, 11:56 AM

    Dear all,

    Mình có một thắc mắc:

    Ví dụ mình viết một lệnh đồng bộ dữ liệu giữa 02 bảng, khi thực hiện đến dòng thứ 03 thì phát sinh lỗi, vậy 02 dòng trước đó không bị lỗi đã được cập nhật hay chưa ?

    Hay nó tạm lưu đâu đó chờ chạy qua hết các dòng nếu không có lỗi gì thì mới chính thức cập nhậtL, còn khi phát sinh lỗi thì trả về mặc định ban đầu ?

    => Nếu trường nó chạy đến đâu thì thực thi đến đó thì có cách nào để khi nó phát sinh lỗi thì trả nó về mặc định ban đầu hay không

    Thanks
  • RE: Quá trình thực hiện một lệnh với CSDL

    ongke0711 > 02-08-16, 04:06 PM

    - Theo tôi biết nếu bạn thực thi một lệnh nào đó bằng code VBA thì sẽ có 2 trường hợp:
    Vd: dùng lệnh "CurrentDb.Execute strSQL, dbFailOnError" thì nó sẽ tự động Roll back (trả về hiện trạng ban đầu) khi có phát sinh lỗi. Cũng câu lệnh trên, nếu bạn không thêm "dbFailOnError" thì chương trình sẽ chạy những reocrds nào thỏa điều kiện đến khi gặp lỗi sẽ ngưng lại.
    - Nếu chạy bằng Query chương trình sẽ hiện thông báo lỗi hỏi bạn "có phát sinh lỗi, bạn có muốn cố thực thi tiếp hay không? Nếu chọn OK thì nó sẽ update nhưng record nào thỏa đk, gặp lỗi thì ngưng. Nêu chọn NO, nó sẽ ngưng thực thi ngay.