2012-09-20 2 views
0

나는 내가 네 가지 tabs.But 문제를 얻을 탭 창을 사용한 직원 form.In가있는 것을 내가 데이터를 저장하는 경우 첫 번째 탭은 데이터베이스에 저장됩니다. 나는 데이터베이스에 전체 form.so 폐쇄 다른 탭에 데이터를 저장하기 전에 내가 첫 번째 탭에서 항목과 다른 탭의 저장 데이터가없는이 ... 그것은 더 절차 나에게 오류를 제공합니다. 나는 커밋에 대해 알고 있지만 어떻게 사용하지? 나는 데이터베이스에 양식의 모든 탭에서 모든 데이터를 저장할 및 양식 GET은 데이터가 저장되지 얻을해야 폐쇄 사이에 있다면 ... 제발 도와주세요해야합니다.모든 쿼리를 저장하는 커밋 사용하고 하나 개의 쿼리가 실패 할 경우 데이터가 저장되지 방법

나는 자바에서 원하는 programming.and 각 탭의 데이터는 내가 마지막에 있지 자신의 페이지에 저장합니다.

답변

0

데이터베이스에 따라 트랜잭션을 시작한 후 BEGIN 문을 실행 한 다음 쿼리를 실행해야합니다. 성공하면 COMMIT를 실행하거나 그렇지 않으면 ROLLBACK을 실행합니다. 세션 내에서 BEGIN 이후 발생한 모든 쿼리를 취소하십시오.

1

당신은, 첫 번째 탭에서 데이터를 저장하기 전에 롤백 지점을 설정해야 다른 탭 일도에 잘못되면, 당신은 당신에게 변경 사항을 취소하고 이전 상태로 데이터베이스를 가져 오는 마지막 트랜잭션을 롤백 할 수 있습니다. 여기

은 MYSQL을위한 샘플 코드입니다. 희망이 도움이 될 것입니다.

Drop table Books; 


CREATE TABLE Books 
(
    ID SMALLINT NOT NULL PRIMARY KEY, 
    Title VARCHAR(60) NOT NULL, 
    Copyright YEAR NOT NULL 
) 
ENGINE=INNODB; 


select * from Books; 

START TRANSACTION; 
INSERT INTO Books VALUES (103, 'Angels', 1966); 
INSERT INTO Books VALUES (104, 'Black', 1932); 

SAVEPOINT sp1; 

INSERT INTO Books VALUES (105, 'None', 1996); 
INSERT INTO Books VALUES (106, 'A', 1980); 

ROLLBACK TO SAVEPOINT sp1; 

INSERT INTO Books VALUES (107, 'Postcards', 1992); 
INSERT INTO Books VALUES (108, 'The', 1993); 

COMMIT; 

select * from Books; 
+0

+1 그는 mysql 태그를 사용했습니다. – alfasin

+0

사과드립니다. :) –