안녕하세요 하다가 하다가 안되는게 있어서 질문 합니다..
먼저 gun_me와 code1 이라는 두개의 DB화일이 있습니다.. paradox 구여..
gun_me에서는
시코드, 구코드, 동코드 등이 있구요
(s_siid)(s_guid) (s_doid)
code1에서는
시코드, 구코드, 동코드, 이름이 있습니다..
(siid) (guid) (dogid) (s_name)
제가 하고 싶은건 두 테이블에서 시,구,동을 조인시켜서 에디트칸에 이름을 넣고 싶습니다.
그래서 쿼리(Qry_Coord)의 SQL란에는
Select B.s_name as si_name, A.s_siid,
C.s_name as gu_name, A.s_guid,
D.s_name as dong_name, A.s_doid
From gun_me A, code1 B, code1 C, code1 D
Where (A.s_siid = B.siid and B.guid = '00' and B.dogid = '00') and
(A.s_guid = C.guid and A.s_siid = C.siid and C.dogid = '00') and
(A.s_siid = D.siid and A.s_guid = D.guid and A.s_doid = D.dogid)
이렇게 했구요
소스내용의 일부는....
//========================================================
// 정보를 select한다
//========================================================
Procedure TCoordFrm.Selectinfo;
begin
with Qry_Coord do begin
Close;
SQL.Clear;
SQL.Add('Select s_no, s_sp1, s_sp2, s_sp3, s_name, s_siid, s_guid, s_doid, s_bungi, ');
SQL.Add(' s_bungi1, s_phone, s_x, s_y ');
SQL.Add(' from gun_me ');
Open;
end; // with..
end;
//========================================================
// 바뀔때마다 데이터값을 화면에 보여준다...
//========================================================
procedure TCoordFrm.DataSource1DataChange(Sender: TObject; Field: TField);
begin
with Qry_Coord do begin
edt_me.text := FieldByName('s_no').AsString;
edt_name.text := FieldByName('s_name').AsString;
edt_gubncode1.text := FieldByName('s_sp1').AsString;
edt_gubncode2.text := FieldByName('s_sp2').AsString;
edt_gubncode3.text := FieldByName('s_sp3').AsString;
edt_sido.Text := FieldByName('si_name').AsString;
edt_gubn.Text := FieldByName('gu_name').AsString;
edt_dong.Text := FieldByName('dong_name').AsString;
edt_bungi1.text := FieldByName('s_bungi').AsString;
edt_bungi2.text := FieldByName('s_bungi1').AsString;
edt_phone.text := FieldByName('s_phone').AsString;
edt_coordX.text := InttoStr(FieldByName('s_x').AsInteger);
edt_coordY.text := InttoStr(FieldByName('s_y').AsInteger);
end;
end;
이렇게 했습니다.
근데 문제는
EDatabaseError with message 'Qry_Coord:Field 'si_name' not found.
라는 문구나 뜨네요..
그렇다고 DataSource1DataChange에 있는
si_name, gu_name, dong_name을 위에 select처럼 s_siid, s_guid, s_doid라고 하니깐
그냥 코드번호가 나오네요...
어떻게 해야할지 막막합니다...
아시는분 답변 부탁드려요.. 꼭... ㅜ.ㅜ;;
이에러의 원인은
-> edt_sido.Text := FieldByName('si_name').AsString;
이줄에 si_name이라는 칼럼이 기술되어 있는데
실제 쿼리의 SELECT절에는 해당칼럼이 없다보니 발생하는 에러입니다.
edt_sido.Text := FieldByName('s_name').AsString;
으로 고쳐보세요
허접초보 wrote:
> 안녕하세요 하다가 하다가 안되는게 있어서 질문 합니다..
>
> 먼저 gun_me와 code1 이라는 두개의 DB화일이 있습니다.. paradox 구여..
>
> gun_me에서는
> 시코드, 구코드, 동코드 등이 있구요
> (s_siid)(s_guid) (s_doid)
>
> code1에서는
> 시코드, 구코드, 동코드, 이름이 있습니다..
> (siid) (guid) (dogid) (s_name)
>
> 제가 하고 싶은건 두 테이블에서 시,구,동을 조인시켜서 에디트칸에 이름을 넣고 싶습니다.
>
> 그래서 쿼리(Qry_Coord)의 SQL란에는
> Select B.s_name as si_name, A.s_siid,
> C.s_name as gu_name, A.s_guid,
> D.s_name as dong_name, A.s_doid
> From gun_me A, code1 B, code1 C, code1 D
> Where (A.s_siid = B.siid and B.guid = '00' and B.dogid = '00') and
> (A.s_guid = C.guid and A.s_siid = C.siid and C.dogid = '00') and
> (A.s_siid = D.siid and A.s_guid = D.guid and A.s_doid = D.dogid)
> 이렇게 했구요
>
>
> 소스내용의 일부는....
>
> //========================================================
> // 정보를 select한다
> //========================================================
> Procedure TCoordFrm.Selectinfo;
> begin
>
> with Qry_Coord do begin
> Close;
> SQL.Clear;
>
> SQL.Add('Select s_no, s_sp1, s_sp2, s_sp3, s_name, s_siid, s_guid, s_doid, s_bungi, ');
> SQL.Add(' s_bungi1, s_phone, s_x, s_y ');
> SQL.Add(' from gun_me ');
>
> Open;
> end; // with..
> end;
>
> //========================================================
> // 바뀔때마다 데이터값을 화면에 보여준다...
> //========================================================
> procedure TCoordFrm.DataSource1DataChange(Sender: TObject; Field: TField);
> begin
> with Qry_Coord do begin
> edt_me.text := FieldByName('s_no').AsString;
> edt_name.text := FieldByName('s_name').AsString;
> edt_gubncode1.text := FieldByName('s_sp1').AsString;
> edt_gubncode2.text := FieldByName('s_sp2').AsString;
> edt_gubncode3.text := FieldByName('s_sp3').AsString;
> edt_sido.Text := FieldByName('si_name').AsString;
> edt_gubn.Text := FieldByName('gu_name').AsString;
> edt_dong.Text := FieldByName('dong_name').AsString;
> edt_bungi1.text := FieldByName('s_bungi').AsString;
> edt_bungi2.text := FieldByName('s_bungi1').AsString;
> edt_phone.text := FieldByName('s_phone').AsString;
> edt_coordX.text := InttoStr(FieldByName('s_x').AsInteger);
> edt_coordY.text := InttoStr(FieldByName('s_y').AsInteger);
> end;
> end;
> 이렇게 했습니다.
>
> 근데 문제는
> EDatabaseError with message 'Qry_Coord:Field 'si_name' not found.
> 라는 문구나 뜨네요..
>
> 그렇다고 DataSource1DataChange에 있는
> si_name, gu_name, dong_name을 위에 select처럼 s_siid, s_guid, s_doid라고 하니깐
> 그냥 코드번호가 나오네요...
>
> 어떻게 해야할지 막막합니다...
>
> 아시는분 답변 부탁드려요.. 꼭... ㅜ.ㅜ;;