Hỏi về kết nối và đóng database liên tục

Liên hệ QC
Tôi không lập trình việc này, nhưng ở công ty cũ lập trình ERP nhiều người dùng (ít nhất là 50, nhiều là 200), thì có tình trạng như bên trên nói: Đồng thời 2 hoặc nhiều máy update hoặc insert vào database cùng lúc sinh ra trùng khoá và/ hoặc treo server.
Biện pháp tôi đưa ra là có 1 bảng chứa NextID của tất cả các bảng (cả mấy trăm hoặc lên đến cả ngàn), câu lệnh kề trên của câu lệnh insert phải đọc số hiện tại của NextID, rồi tăng NextID của bảng cần insert lên. Client khác đọc NextID sẽ thấy số mới
Đặc biệt là trường hợp import dữ liệu hàng loạt, thì phải book trước 1 số lượng ID bằng với số lượng record chuẩn bị import (n reccords), nghĩa là tăng NextID lên n chứ không phải lên 1.
 
Cảm ơn các bác ở trên nhé, em cũng có cùng vấn đề luôn! :yahoo:
 
Tôi không lập trình việc này, nhưng ở công ty cũ lập trình ERP nhiều người dùng (ít nhất là 50, nhiều là 200), thì có tình trạng như bên trên nói: Đồng thời 2 hoặc nhiều máy update hoặc insert vào database cùng lúc sinh ra trùng khoá và/ hoặc treo server.
Biện pháp tôi đưa ra là có 1 bảng chứa NextID của tất cả các bảng (cả mấy trăm hoặc lên đến cả ngàn), câu lệnh kề trên của câu lệnh insert phải đọc số hiện tại của NextID, rồi tăng NextID của bảng cần insert lên. Client khác đọc NextID sẽ thấy số mới
Đặc biệt là trường hợp import dữ liệu hàng loạt, thì phải book trước 1 số lượng ID bằng với số lượng record chuẩn bị import (n reccords), nghĩa là tăng NextID lên n chứ không phải lên 1.
Kỹ thuật này hay đấy ... Anh nói sao biết vậy chứ nghe vậy Em cũng tịt toàn tập luôn :p
nếu được Mong Anh trình bày 1 code cơ bản nhất xem
Xin cảm Ơn
 
Kỹ thuật này hay đấy ... Anh nói sao biết vậy chứ nghe vậy Em cũng tịt toàn tập luôn :p
nếu được Mong Anh trình bày 1 code cơ bản nhất xem
Xin cảm Ơn
Mình có lập trình đâu (Java không biết chữ nào). Chỉ định hướng và đưa ra thuật toán.
Code toàn bộ dùng các câu SQL, và câu SQL Insert dù cho nhiều người chạy cùng lúc và nhấn nút Save cùng lúc cũng chênh nhau vài phần trăm giây, đủ cho câu lệnh Update chạy
Nói thêm là có 1 bảng lưu tên tất cả bảng (AD_Table) và mỗi bảng có 1 AD_TableID. Giả sử muốn ghi 1 record vào bảng Sales có AD_TableID là 100
ID của record tất cả các bảng là số tự nhiên tăng 1
NextID nằm trong bảng AD_Sequence với các cột AD_SequenceID, NextID, AD_TableID
JavaScript:
CurrentID= Select NextID from AD_Sequence where AD_TableID = 100 --Example 7800
Update AD_Sequence set NextID = CurrentID + 1 where AD_TableID = 100 -- NextID trở thành 7801
Insert to Sales bla bla (trong đó có set Sales_ID = CurrentID = 7800)
 
Trên VB6 Server + Client khi Client Gửi cái SQL thì Server nó lấy lên xong gửi lại client theo từng dòng 1 = Gói một cho tới khi gửi hết
và Client nhận lần lượt hết từng gói 1 thì gán dữ liệu xuống Sheet vvv

vậy giả thiết quá trình kết nối và gửi liên tục đó ===> điều gì sẻ xảy ra + đường truyền In tét nét vv + mây mây ....

Còn 1 cách gửi và Nhận nữa là 1 Array = thấy Google nói thế chứ chưa biết xài ra sao cả -0-0-0-

Có lẻ tất cả thua cách HLMT chỉ Sharing Folder qua Internet xong thiết lập cấm xóa là ok Nhất .... còn lại cũng chỉ cho vui à
cái dòng tô đậm kia mới nói ngày 11/10/2020 thì đến ngày 14/10/2020 = 3 ngày đã biết rồi .... thông qua bạn x cho xem
Mã:
DataTable o = getdata();                        // lấy dữ liệu vào Array Gửi Client
connectionSocket.Send(SerializeData(o));
SentOrReceivedData sentOrReceivedData2 = default(SentOrReceivedData);
sentOrReceivedData2.ConnectionId = connectionId;
vây là biết xong 2 cách ........... Còn 1 cách cuối nữa ... cách đó gần như hoàn hảo nhất mà chưa mò ra .............. biết đâu 1 ngày đẹp trời nào đó nó sẻ ra thôi -0-0-0-
 
Để kiểm soát tốt kết nối trước khi chạy lệnh truy vấn, tôi chọn đóng mở liên tục. vì nhìn chung thao tác trên Excel có tính độc lập cho mỗi lệnh (trong ứng dụng của tôi).
Kinh nghiệm thực hiện của tôi là vậy.

(Tôi đổi chuyên mục cho phù hợp với nội dung đề tài)
OT đang làm theo cách này nghĩa là mỗi lần thực thi câu lệnh lấy dữ liệu từ DB về thì phải mở kết nối, lấy xong và đóng luôn cho khỏe.
Có thể trong cùng một thời điểm nhiều máy tính thực hiện các câu lệnh lấy dữ liệu tùy theo nhu cầu của mỗi người.
Nay thấy anh Bình cũng lựa chọn theo cách này thì OT thấy yên tâm lắm rồi.
hé hé hé
:yahoo:
 
Web KT
Back
Top Bottom