Q&A

  • DBGrid의 첫 행을 선택하는 방법?
폼이 뜰 때 DBGrid의 첫 행이 선택되고

선택된 행의 데이타가 에디트에 뿌려지도록

하고 싶습니다.

Database-Query-DataSource-DBGrid

이렇게 연결되고 있구요.

비베에서는 Grid의 이벤트를 호출하기만

하면 되었던 것으로 알고 있습니다.

참고로 저는 델파이 왕초보입니다.

고수님들의 조언을 부탁합니다.

5  COMMENTS
  • Profile
    최은석 2000.12.09 01:00
    query.first <--처음으로 이동

    이동한후에......

    edit.text := query.fieldbyname(필드명).필드타입; <--이러면 됩니다...

    ex) edit.text := query.fieldbyname('aaa').asstring;





    최광욱 wrote:

    > 폼이 뜰 때 DBGrid의 첫 행이 선택되고

    > 선택된 행의 데이타가 에디트에 뿌려지도록

    > 하고 싶습니다.

    > Database-Query-DataSource-DBGrid

    > 이렇게 연결되고 있구요.

    > 비베에서는 Grid의 이벤트를 호출하기만

    > 하면 되었던 것으로 알고 있습니다.

    > 참고로 저는 델파이 왕초보입니다.

    > 고수님들의 조언을 부탁합니다.

  • Profile
    coolling 2000.12.08 19:26
    쿼리문에서 First 를 사용하면 됩니다.

    With Query1 do begin

    Close;

    Sql.Clear;

    Sql.Add('SELECT * ');

    Sql.Add(' FROM TABLE1');

    Open;

    FetchAll;

    First; //이겁니다.

    End;



    선택된 행을 에디터에 뿌리는 건...

    Query1.First;

    Edit1.text := Query1.FieldByName('Name').AsString; //Name,Age는 필드명입니다

    Edit2.text := Query2.FieldByName('Age').AsInteger;

    .

    .

    .

    이렇게 하면 될것 같은데요...

    그리고, 폼을 닫거나 쿼리의 데이터가 필요 없어질때는 쿼리를 닫아줘야 됩니다.

    예) Query1.Close;



    이정도... 실제로 확인해보지는 않았지만, 예전에 이렇게 한 기억이 나네요..

    도움이 되었으면 좋겠습니다..



    최광욱 wrote:

    > 폼이 뜰 때 DBGrid의 첫 행이 선택되고

    > 선택된 행의 데이타가 에디트에 뿌려지도록

    > 하고 싶습니다.

    > Database-Query-DataSource-DBGrid

    > 이렇게 연결되고 있구요.

    > 비베에서는 Grid의 이벤트를 호출하기만

    > 하면 되었던 것으로 알고 있습니다.

    > 참고로 저는 델파이 왕초보입니다.

    > 고수님들의 조언을 부탁합니다.

  • Profile
    최광욱 2000.12.08 19:45
    답변감사합니다.

    많은 도움이 되었습니다.



    그런데 한가지 더 궁금한 것이 있는데요.



    Query를 닫는다는 것이 무슨 의미이며,

    어느 시점(위치)에서 닫아야 하는지...

    ISAPI에서 Query를 써서 DLL을 만들었을 때

    닫지 않으면 디비와 어떤 문제를 일으킬 수 있는지,

    좀 가르쳐 주셨으면 합니다.

    왜냐하면 제가 dll을 만들어서 서버에 올려놓았는데,

    가끔식 dll이 제대로 작동을 하지 않아

    Unload를 해야했습니다.



    coolling wrote:

    > 쿼리문에서 First 를 사용하면 됩니다.

    > With Query1 do begin

    > Close;

    > Sql.Clear;

    > Sql.Add('SELECT * ');

    > Sql.Add(' FROM TABLE1');

    > Open;

    > FetchAll;

    > First; //이겁니다.

    > End;

    >

    > 선택된 행을 에디터에 뿌리는 건...

    > Query1.First;

    > Edit1.text := Query1.FieldByName('Name').AsString; //Name,Age는 필드명입니다

    > Edit2.text := Query2.FieldByName('Age').AsInteger;

    > .

    > .

    > .

    > 이렇게 하면 될것 같은데요...

    > 그리고, 폼을 닫거나 쿼리의 데이터가 필요 없어질때는 쿼리를 닫아줘야 됩니다.

    > 예) Query1.Close;

    >

    > 이정도... 실제로 확인해보지는 않았지만, 예전에 이렇게 한 기억이 나네요..

    > 도움이 되었으면 좋겠습니다..

    >

    > 최광욱 wrote:

    > > 폼이 뜰 때 DBGrid의 첫 행이 선택되고

    > > 선택된 행의 데이타가 에디트에 뿌려지도록

    > > 하고 싶습니다.

    > > Database-Query-DataSource-DBGrid

    > > 이렇게 연결되고 있구요.

    > > 비베에서는 Grid의 이벤트를 호출하기만

    > > 하면 되었던 것으로 알고 있습니다.

    > > 참고로 저는 델파이 왕초보입니다.

    > > 고수님들의 조언을 부탁합니다.

  • Profile
    coolling 2000.12.09 01:31
    Query를 닫는다는 것은 말그대로 내가 open 시켰으니까 닫아야 겠죠..

    만약 쿼리 컴포넌트에서 Actvie속성을 True로 설정시켜서 컴파일했다면 이 쿼리는

    계속해서 디비와 연결된 상태가 되죠..혼자사용하는 local디비라면 별상관이 없겠지만.

    리모트 디비라면, select한 결과를 가지고 있고, 데이터 헨드링이 끝난 상황에서

    계속해서 디비와 연결시킬 필요가 있을까요..??

    이건 디비와의 문제라기 보다는 네트웍의 부하문제라고 생각되는데.. 뭐 그게그거지만.



    어느 시점에서 닫아야 하는건 플그램마다 다르고, 프그래머의 판단이지만, 원하는 데이터를 얻고 핸드링에 끝나면 닫아 줘야 될것 같은데...

    그리고 DLL은 잘 쓰지 않아서 모르겠지만, 뭐 같은 원리가 않일까 하는데..



    쩝 별 도움도 되지 못하고 횡설수설했네요...저도 이제 막 시작하는 단계라

    뭐라 확실한 답은 못하겠습니다.



    그럼 즐프하세요.









    최광욱 wrote:

    > 답변감사합니다.

    > 많은 도움이 되었습니다.

    >

    > 그런데 한가지 더 궁금한 것이 있는데요.

    >

    > Query를 닫는다는 것이 무슨 의미이며,

    > 어느 시점(위치)에서 닫아야 하는지...

    > ISAPI에서 Query를 써서 DLL을 만들었을 때

    > 닫지 않으면 디비와 어떤 문제를 일으킬 수 있는지,

    > 좀 가르쳐 주셨으면 합니다.

    > 왜냐하면 제가 dll을 만들어서 서버에 올려놓았는데,

    > 가끔식 dll이 제대로 작동을 하지 않아

    > Unload를 해야했습니다.

    >

    > coolling wrote:

    > > 쿼리문에서 First 를 사용하면 됩니다.

    > > With Query1 do begin

    > > Close;

    > > Sql.Clear;

    > > Sql.Add('SELECT * ');

    > > Sql.Add(' FROM TABLE1');

    > > Open;

    > > FetchAll;

    > > First; //이겁니다.

    > > End;

    > >

    > > 선택된 행을 에디터에 뿌리는 건...

    > > Query1.First;

    > > Edit1.text := Query1.FieldByName('Name').AsString; //Name,Age는 필드명입니다

    > > Edit2.text := Query2.FieldByName('Age').AsInteger;

    > > .

    > > .

    > > .

    > > 이렇게 하면 될것 같은데요...

    > > 그리고, 폼을 닫거나 쿼리의 데이터가 필요 없어질때는 쿼리를 닫아줘야 됩니다.

    > > 예) Query1.Close;

    > >

    > > 이정도... 실제로 확인해보지는 않았지만, 예전에 이렇게 한 기억이 나네요..

    > > 도움이 되었으면 좋겠습니다..

    > >

    > > 최광욱 wrote:

    > > > 폼이 뜰 때 DBGrid의 첫 행이 선택되고

    > > > 선택된 행의 데이타가 에디트에 뿌려지도록

    > > > 하고 싶습니다.

    > > > Database-Query-DataSource-DBGrid

    > > > 이렇게 연결되고 있구요.

    > > > 비베에서는 Grid의 이벤트를 호출하기만

    > > > 하면 되었던 것으로 알고 있습니다.

    > > > 참고로 저는 델파이 왕초보입니다.

    > > > 고수님들의 조언을 부탁합니다.

  • Profile
    양용민 2000.12.08 19:17
    최광욱 wrote:

    > 폼이 뜰 때 DBGrid의 첫 행이 선택되고

    > 선택된 행의 데이타가 에디트에 뿌려지도록

    > 하고 싶습니다.

    > Database-Query-DataSource-DBGrid

    > 이렇게 연결되고 있구요.

    > 비베에서는 Grid의 이벤트를 호출하기만

    > 하면 되었던 것으로 알고 있습니다.

    > 참고로 저는 델파이 왕초보입니다.

    > 고수님들의 조언을 부탁합니다.



    폼의 Show 이벤트에서

    Query.first; //하시고

    Edit1.Text:=Query1.fieldByName('샘플').AsString;



    이렇게 해 보세요.