//델파이 초보자 입니다.
근데 자꾸 에러가 나는데 잘 모르겠어요..
아래 Query3 을 실행시킨뒤 그결과값(코드, 코드명)을 UPDATE 하려하는데.. 자꾸 에러가 납니다.
sql.add('Query3.fields[0].asstring = :r1 ,');
sql.add('Query3.fields[1].asstring = :r2 ');
Query3결과의 두번째 필드를 표현할때 어떻게 표현하나요?
procedure Tcode_mng.save_btnClick(Sender: TObject);
var
rc :integer;
ok_btn :integer;
begin
rc := 0;
add_btn.Enabled := true;
cancel_btn.Enabled := False;
if edit1.text = '' then
begin
ok_btn := Application.MessageBox('코드를 반드시 입력해 주십시오.','알림',
MB_OK+MB_ICONINFORMATION);
if ok_btn = IDOK then
edit1.SetFocus ;
end
else
with Query3 do
begin
close;
sql.clear;
// 참고로 '+param_tbl +' 은 조건에 따라 코드값과 테이블이 틀리다..
sql.add('SELECT * FROM '+ param_tbl +' WHERE '+ param_tbl + ' LIKE :fine_code ');
parambyname('fine_code').AsString := edit1.text;
open;
rc := recordcount ;
end;
if rc = 0 then //데이타가 업으면 저장
begin
save_rtn;
end
else // 데이타가 있으니까 UPDATE
if Query3.fields[1].asstring = '' then
begin
ShowMessage('이미 코드가 존재합니다.');
end
else
with Query5 do
begin
close;
sql.clear;
sql.add('UPDATE '+param_tbl+' SET ');
* sql.add('Query3.fields[0].asstring = :r1 ,');
* sql.add('Query3.fields[1].asstring = :r2 ');
parambyname('r1').Asstring := edit1.text;
parambyname('r2').Asstring := edit2.text;
ExecSQL;
ShowMessage('데이타가 수정되었습니다..');
end;
end;
> //델파이 초보자 입니다.
> 근데 자꾸 에러가 나는데 잘 모르겠어요..
> 아래 Query3 을 실행시킨뒤 그결과값(코드, 코드명)을 UPDATE 하려하는데.. 자꾸 에러가 납니다.
>
> sql.add('Query3.fields[0].asstring = :r1 ,');
> sql.add('Query3.fields[1].asstring = :r2 ');
>
> Query3결과의 두번째 필드를 표현할때 어떻게 표현하나요?
>
>
최은정님 저도 위와 같은경우가 있었는데..
sql 문장에서 문자열은 '로 둘러싸여져 있어야 해요
1) sql.add('query3.fields[0].asstring = '':r1'', ') ;
2) sql.add('query3.fields[0].asstring = '':r2''' ) ;
1)과2)에서 ''는 '를 포함시키기 위한것이고
2)에서 '''는 앞의 ''는 '을 표시하기위해서이고 세번째'는 sql.add('에 대한값입니다