2012-02-29 26 views
13

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.

+1

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

+0

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

Trả lời

0

Chỉ vài xu của tôi - Theo kinh nghiệm của tôi, các đối tượng IBO được đề cập bởi JustME là một thư viện rất phong nha. Ở một điểm khác - tôi cho rằng bạn đã cố gắng xác định kịch bản dẫn đến bế tắc của bạn? Đó là một tình huống rất khó lường? Chỉ cần tự hỏi nếu bạn có các tình huống khác mà WAIT thực sự cho phép ứng dụng di chuyển về phía trước và sẽ bị ảnh hưởng bất lợi nếu bạn sử dụng thời gian chờ khóa. Quay trở lại bình luận đầu tiên của tôi - với firebird, tốt hơn là sử dụng một thư viện chuyên dụng, đó là. Hy vọng bạn sẽ được sắp xếp!

Các vấn đề liên quan