query, datasource, dbgrid 를 사용하는데 update를 하려하는데 잘안되는데요..
query문은
begin
inherited;
with query1 do
begin
Close;
Sql.Clear;
Sql.Add(' select substring(sojae from 1 for 1) chk ,');
Sql.Add(' substring(sojae from 2 for 29)sojae, ');
Sql.Add(' myeon,gosi,gam,buga ');
Sql.Add(' from pilji ');
Sql.Add(' where substring(gojibun from 1 for 4) = ''' + edit1.Text + ''' ');
Sql.Add(' and substring(gojibun from 5 for 4) = ''' + edit2.Text + ''' ');
Sql.Add(' and substring(gojibun from 9 for 3) = ''' + edit3.Text + ''' ');
Sql.Add(' and substring(gojibun from 12 for 2) = ''' + edit4.Text + ''' ');
Prepare;
Open;
end;
end;
pilji테이블의 sojae 필드를 substring으로 dbgrid에 chk,sojae 두 필드로 나누어 표현하였는데..
dbgrid의 각필드는 chk,sojae,myeon,gosi,gam,buga 입니다.
저장 버튼으로 수정자료를 저장하려하는데 onclick events에 아래와 같이
기술하였읍니다.
begin
inherited;
with query1 do
begin
Close;
Sql.Clear;
Sql.Add(' update pilji ');
Sql.Add(' set sojae = :sojae, ');
Sql.Add(' myeon = :myeon, gosi = :gosi, ');
Sql.Add(' gam = :gam, buga = :buga ');
Sql.Add(' where substring(gojibun from 1 for 4) = ''' + edit1.Text + ''' ');
Sql.Add(' and substring(gojibun from 5 for 4) = ''' + edit2.Text + ''' ');
Sql.Add(' and substring(gojibun from 9 for 3) = ''' + edit3.Text + ''' ');
Sql.Add(' and substring(gojibun from 12 for 2) = ''' + edit4.Text + ''' ');
ExecSQL;
Open;
end;
end;
실행하면 'query1:field 'sojae'is of an unknown type'. error 메세지가 나타납니다.
dbgrid의 수정된 자료를 update하려하는데 어떤방법으로 해야할지 모르겠네요..
초보자가 부탁드립니다..
Sql.Add(' update pilji ');
Sql.Add(' set sojae = :sojae, ');
Sql.Add(' myeon = :myeon, gosi = :gosi, ');
Sql.Add(' gam = :gam, buga = :buga ');
이런 코드를 넣어 주셧으면
ExecSQL;하시기 전에 반드시 여기의 값들을 넣어 주셔야죠..
ParamByName('sojae').AsString := 어떤값;
ParamByName('myeon').AsString := 어떤값;
등등 5개 필드 모드다 이런식으로 넣어주세요...
그리고 where조건과 execSQL;을 하시면 됩니다.
그럼. 즐거운시간 되세요
- 하얀까마귀 -
초보1 wrote:
>
> query, datasource, dbgrid 를 사용하는데 update를 하려하는데 잘안되는데요..
>
> query문은
>
> begin
> inherited;
> with query1 do
> begin
> Close;
> Sql.Clear;
> Sql.Add(' select substring(sojae from 1 for 1) chk ,');
> Sql.Add(' substring(sojae from 2 for 29)sojae, ');
> Sql.Add(' myeon,gosi,gam,buga ');
> Sql.Add(' from pilji ');
> Sql.Add(' where substring(gojibun from 1 for 4) = ''' + edit1.Text + ''' ');
> Sql.Add(' and substring(gojibun from 5 for 4) = ''' + edit2.Text + ''' ');
> Sql.Add(' and substring(gojibun from 9 for 3) = ''' + edit3.Text + ''' ');
> Sql.Add(' and substring(gojibun from 12 for 2) = ''' + edit4.Text + ''' ');
> Prepare;
> Open;
> end;
> end;
>
> pilji테이블의 sojae 필드를 substring으로 dbgrid에 chk,sojae 두 필드로 나누어 표현하였는데..
> dbgrid의 각필드는 chk,sojae,myeon,gosi,gam,buga 입니다.
>
> 저장 버튼으로 수정자료를 저장하려하는데 onclick events에 아래와 같이
> 기술하였읍니다.
>
> begin
> inherited;
> with query1 do
> begin
> Close;
> Sql.Clear;
> Sql.Add(' update pilji ');
> Sql.Add(' set sojae = :sojae, ');
> Sql.Add(' myeon = :myeon, gosi = :gosi, ');
> Sql.Add(' gam = :gam, buga = :buga ');
> Sql.Add(' where substring(gojibun from 1 for 4) = ''' + edit1.Text + ''' ');
> Sql.Add(' and substring(gojibun from 5 for 4) = ''' + edit2.Text + ''' ');
> Sql.Add(' and substring(gojibun from 9 for 3) = ''' + edit3.Text + ''' ');
> Sql.Add(' and substring(gojibun from 12 for 2) = ''' + edit4.Text + ''' ');
> ExecSQL;
> Open;
> end;
> end;
>
> 실행하면 'query1:field 'sojae'is of an unknown type'. error 메세지가 나타납니다.
> dbgrid의 수정된 자료를 update하려하는데 어떤방법으로 해야할지 모르겠네요..
> 초보자가 부탁드립니다..
>
>
>