Tôi đang tìm cách xác định mức giao dịch tùy chỉnh trong DBX của Delphi bằng trình điều khiển Firebird. Tôi đang sử dụng Delphi XE.Mức giao dịch tùy chỉnh trong Firebug DBX của Delphi
Trong trình chỉnh sửa tham số của thành phần TSQLConnection tôi có thể đặt các giá trị TransIsolation khác nhau và tôi đang sử dụng giá trị mặc định là ReadCommited
. Thuộc tính WaitOnLocks
được đặt thành True
. Tôi hy vọng điều này sử dụng cấu hình giao dịch Firebird sau nhưng tôi không chắc chắn:
READ WRITE + WAIT + SNAPSHOT
(xem http://www.firebirdsql.org/refdocs/langrefupd20-set-trans.html)
Tôi muốn sử dụng LOCK TIMEOUT [seconds]
thay vì WAIT
. Nhưng tôi không thể tìm thấy cách hoặc nơi để xác định điều này. Tôi đã nhìn vào các tập tin nguồn DBX và có một số mã cho các mức giao dịch tùy chỉnh (tìm kiếm xilCUSTOM
) nhưng có vẻ như chưa hoàn thành/không sử dụng.
Lý do cho điều này là đôi khi chúng tôi gặp phải bế tắc trong ứng dụng dữ liệu đa người dùng của chúng tôi và tôi nghĩ đó là vì một giao dịch đang chờ giao dịch khác (có thể đã chết). Chúng tôi thà có thời gian nghỉ giao dịch sau một vài giây so với việc tạm ngưng toàn bộ khách hàng vô thời hạn.
Tài liệu sau đây 'Ngoài ra, TSQLConnection cho phép bạn chỉ định các mức cách ly tùy chỉnh cụ thể cho cơ sở dữ liệu. Các mức cách ly tùy chỉnh được xác định bởi trình điều khiển dbExpress. Xem tài liệu trình điều khiển của bạn để biết chi tiết.' – JustMe
Bạn có cân nhắc mua trình điều khiển nội bộ được ghi lại không? Hoặc sử dụng nhiều salution như IBDAC hoặc IB Objects (+ performance + compatibility + support)? – JustMe