자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi sqlite DB에 POST하면 에러(database is locked)가 발생합니다.
2018.06.14 12:10
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. DB 공부를 이제서야 하고 있습니다.
sqlite로 DB를 만들어서 dbGrid에 보여주고
해당 레코드를 dbEidt 에서 수정한 후 [저장] 버튼을 누르면 POST하도록 프로그램을 했습니다.
procedure TfrmSurvey.btn_DetailSaveClick(Sender: TObject);
begin
r := StrToInt(db00_edID.Text);
with dmDB.qrySurvey do begin
if State <> dsEdit then Edit;
FieldByName('CodeCity').AsInteger := StrToInt(BufData[0]);
FieldByName('Dist1').AsFloat := StrToFloat(BufData[1]);
FieldByName('Dist2').AsFloat := StrToFloat(BufData[2]);
FieldByName('Code1').AsFloat := StrToFloat(BufData[3]);
FieldByName('Code2').AsFloat := StrToFloat(BufData[4]);
Post;
Refresh;
end;
temp := db00_edID.Text + ')' + db08_edName.Text;
ShowMessage(temp + ' 조사자료가 수정되었습니다.');
end;
여기서, BufData는 계산으로 변경하고자 데이터 내용입니다.
그런데 실행을 하면 POST에서 아래와 같은 에러 메시지가 발생합니다.
-----
[FireDAC][Phys][SQLite] ERROR: database is locked
-----
인터넷에서 찾아보면 해당 테이블을 닫지 않아서 생기는 문제라고 하지만
DBGrid에 DataSource를 통해 DB에 자동 접근할 뿐 이외는 해당 쿼리를 접근하고 있지 않습니다..
해결방법은 있을까요....
댓글 2
번호 제목 글쓴이 날짜 조회 수
공지
[프로그래밍 강의] 2021.6~2021.12
관리자 2015.01.22 15381
공지
유용한 관련 사이트
관리자2 2014.03.20 54207
공지
본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다.
관리자 2012.01.10 97415
8
firedac에서 alias사용한 쿼리를 edit하면 에러가 나네요.
[1] fraha 2019.09.25 195
7
델파이로 만든 DLL 내부에 FireDAC 콤퍼넌트의 동작
[2] 막스뮐러 2019.08.08 508
6
SQL query에 변수 사용의 문제
[1] 뎅현 2019.04.03 369
5
델파이 Query.Reflesh와 DataSource.DataSet.ReFlesh의 차이점은?
[1] 스카이 2018.07.31 694
»
sqlite DB에 POST하면 에러(database is locked)가 발생합니다.
[2] 스카이 2018.06.14 1743
3
[자답]Delphi XE 10.2.1 버전 설치후 FireDAC Consol 모드에서 MySql 에러발생
[1]
별땅땅쫑 2017.09.08 213
2
델파이 IBLite 안드로이드 실행시문제
[1] 스카이 2017.02.22 215
1
F1027 에러메시지가 뜨는데 조치방법을 가르쳐 주세요
박병일 2012.01.27 10299
Delphi sqlite DB에 POST하면 에러(database is locked)가 발생합니다.
2018.06.14 12:10
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요. DB 공부를 이제서야 하고 있습니다.
sqlite로 DB를 만들어서 dbGrid에 보여주고
해당 레코드를 dbEidt 에서 수정한 후 [저장] 버튼을 누르면 POST하도록 프로그램을 했습니다.
procedure TfrmSurvey.btn_DetailSaveClick(Sender: TObject);
begin
r := StrToInt(db00_edID.Text);
with dmDB.qrySurvey do begin
if State <> dsEdit then Edit;
FieldByName('CodeCity').AsInteger := StrToInt(BufData[0]);
FieldByName('Dist1').AsFloat := StrToFloat(BufData[1]);
FieldByName('Dist2').AsFloat := StrToFloat(BufData[2]);
FieldByName('Code1').AsFloat := StrToFloat(BufData[3]);
FieldByName('Code2').AsFloat := StrToFloat(BufData[4]);
Post;
Refresh;
end;
temp := db00_edID.Text + ')' + db08_edName.Text;
ShowMessage(temp + ' 조사자료가 수정되었습니다.');
end;
여기서, BufData는 계산으로 변경하고자 데이터 내용입니다.
그런데 실행을 하면 POST에서 아래와 같은 에러 메시지가 발생합니다.
-----
[FireDAC][Phys][SQLite] ERROR: database is locked
-----
인터넷에서 찾아보면 해당 테이블을 닫지 않아서 생기는 문제라고 하지만
DBGrid에 DataSource를 통해 DB에 자동 접근할 뿐 이외는 해당 쿼리를 접근하고 있지 않습니다..
해결방법은 있을까요....
댓글 2
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [프로그래밍 강의] 2021.6~2021.12 | 관리자 | 2015.01.22 | 15381 |
공지 | 유용한 관련 사이트 | 관리자2 | 2014.03.20 | 54207 |
공지 | 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. | 관리자 | 2012.01.10 | 97415 |
8 | firedac에서 alias사용한 쿼리를 edit하면 에러가 나네요. [1] | fraha | 2019.09.25 | 195 |
7 | 델파이로 만든 DLL 내부에 FireDAC 콤퍼넌트의 동작 [2] | 막스뮐러 | 2019.08.08 | 508 |
6 | SQL query에 변수 사용의 문제 [1] | 뎅현 | 2019.04.03 | 369 |
5 | 델파이 Query.Reflesh와 DataSource.DataSet.ReFlesh의 차이점은? [1] | 스카이 | 2018.07.31 | 694 |
» | sqlite DB에 POST하면 에러(database is locked)가 발생합니다. [2] | 스카이 | 2018.06.14 | 1743 |
3 |
[자답]Delphi XE 10.2.1 버전 설치후 FireDAC Consol 모드에서 MySql 에러발생
[1] ![]() | 별땅땅쫑 | 2017.09.08 | 213 |
2 | 델파이 IBLite 안드로이드 실행시문제 [1] | 스카이 | 2017.02.22 | 215 |
1 |
F1027 에러메시지가 뜨는데 조치방법을 가르쳐 주세요
![]() | 박병일 | 2012.01.27 | 10299 |
SQLite에는 LockingMode가 있습니다.
Connection Option에서 LockingMode를 Normal로 변경 후 연결해보세요.
다음 링크를 참고해 보세요.
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_SQLite_database_(FireDAC)