거래처 테이블을 입력한뒤 저장 버튼을 누를 때 동시에 다른 부품단가 테이블에서 그 거래처코드명을 필드명으로 하는 필드를 동적으로 생성시킬려고 하는데, 아래의 소스처럼 코딩을 하였는데, 처음에는 에러 없이 거래처에도 모든 내용이 저장이 되고 거래처코드명을 가지는 필드도 다른 테이블에 아무 이상없이 생성이 되었는데, 다른 부분 여기저기를 바꾸고 코드를 추가를 한 뒤 컴파일하여 실행을 하니
//
'webcome' 시스템에서 'admin' 사용자에 의해 사용 중이므로 'price' 테이블을 잠글 수 없습니다.' General SQL error.
//
라는 에러 메세지가 뜨면서 프로그램이 죽어 버립니다.
무엇땜에 이럴까요?
제발 좀 고수님들 갈켜 주세요.
그럼 답변 기달기고 있겠슴다.
* 소스코드 *
procedure TregForm.postbtn4Click(Sender: TObject);
var
sqlstr, para : string;
begin
if (dbedit22.Field.Value = Null) or (dbedit23.Field.Value = NULL) then
begin
messagedlg('모든 필드에 데이터를 입력한 후 저장하십시요!', mterror, [mbOK], 0);
dm.TTable.Cancel;
end
else
begin
dm.tTable.Post;
para := dbedit22.Text;
sqlstr := format('Alter TABLE price ADD COLUMN %s integer', [para]);
with dm.pricequery do
begin
close;
sql.clear;
sql.add(sqlstr);
execsql;
end;
messagedlg('레코드가 저장되었습니다.', mtinformation, [mbOk], 0);
dbnavigator4.Enabled := true;
postbtn4.Enabled := false;
deletebtn4.Enabled := true;
end;
appendbtn4.Enabled := true;
regform.appendbtn4.Click;
end;