아! 정말 델파이의 길은 멀고도 험하군요.
제가 하고자 하는것은 edit 박스의 내용을 DB에 담고자 하는 것입니다.
먼저 edit 박스의 내용을 검색(필드명:no2)해서 중복되는 데이타가 없을때
edit박스의 내용을 DB에 저장하는것 입니다.
edit박스는 총 2개입니다.
Mgiho.text , Mname.text
그리고 Mgu.text는 콤보박스입니다.
Mgu의 Item은 A,B,C 세가지인데 이것을 DB에 저장할때는
숫자 1,2,3으로 저장하고 싶고요.
아는건 없고, 머리는 복잡해지고 정말 답답하군요.
많은 조언 부탁드립니다.
소스가 좀 지저분해도 이해바랍니다.
procedure TFrmJohap.BtnSaveClick(Sender: TObject);
var
a1:string[10];
a2:string[4];
a3:string[30];
begin
with Query1 do
begin // 이름을 완벽하게 입력하였을 경우 SQL
Sql.BeginUpdate;
Sql.clear;
Sql.add('select no2,cont');
Sql.add('from result');
Sql.add('where no2 like :no2');
Sql.EndUpdate;
ParamByName('no2').AsString := Mgiho.Text + '%';
Open;
if RecordCount = 0 then // 찾아온 자료가 없으면 신규이다.
if IDYES = Application.MessageBox('저장하시겠습니까?','저장확인',
mb_YESNO + mb_ICONQUESTION) then //저장전 확인박스
begin
with query1 do
begin
sql.add('insert into result');
sql.add('(no2,no1,cont)');
sql.add('values');
Sql.add('(:mgiho.text,:mgu.text,:Mname.text)');
{Sql.add('(:a1,:a2,:a3)');
ParamByName('a1').AsString :=Mgiho.Text;
ParamByName('a2').AsString :=Mgu.Text;
ParamByName('a3').AsString :=Mname.Text;}
//ExecSql;
Close;
end;
end;
end;
end;
|