Q&A

  • DBGrid 에 대해서..
안녕하세요

Query 콤포넌트하구 UpdateSql 을 써서 DBGrid 에 직접 데이터를

입력하는 작업을 하고 있습니다

한라인씩 입력은 잘 되는데여...

여러줄에 걸쳐 입력할때는 커서를 위쪽에있는 레코드로 옮기면 저장이

안되는군여

( DataSetState 가 Insert 가 아니라는 메세지가 뜹니다 )

DataSetState 가 Insert 에서 Edit 나 다른걸로 바뀌어버리는거 같은데

이거 어떻게 해결할수 있는 방법이 없을까여

조언부탁드립니다 (__)

2  COMMENTS
  • Profile
    홍성락 2002.10.26 04:18
    제가 잘 이해는 못하는건지 모르지만
    마우스로 클릭시는 커서가 셀에서 깜빡거리므로 Edit모드이고
    커서로 다른 셀에 가면 선택모드이고 그래서 인가요?
    상황을 잘 모르겠군요

    2가지로
    첫번째는 옵션에서 에티팅은 TRUE로하고 로우선택등은 False로해서 무조건 셀에 가면 편집모드로하거나
    두째로 DrawColumnCell 또는 다른 이벤트에
    TDBGrid(Sender).DataSource.DataSet.Edit;
    를 추가 해보세요.

    이런 에러는 저도 자료실에 '디비그리드에 체크박스넣기_예제' 올릴때
    있었던건데 상황이 틀린지라....
    hsr/////////////////////////////
  • Profile
    김영철 2002.10.26 06:03
    안녕하세요 (__)

    우선 답변 감사드리구여..

    Help 를 뒤져서 DBGrid 의 DataSet 상태를 계속 찍어봤습니다

    노가다짓을 했지여 ^^;

    Grid 에 아무것도 없는 초기상태의 status 가 dsBrowse 구여

    입력상태로 들어가면 dsInsert ..

    그리고 입력이 된 상태에서 수정이 들어가면 dsEdit 상태가 되는군여

    dsInsert 하고 dsEdit 상태에서만 DB 에 저장이 되는거 같은데 맞습니까?

    문제점을 찾은거 같은데여..

    첫라인을 입력하고 두번째 라인으로 넘어왔다가 다시 첫번째 라인으로

    옮겨가면 status 가 dsBrowse 로 바뀌어버리는데 있는거 같습니다

    물론 이 상태에서 기존에 입력한걸 수정하면 dsEdit 로 바뀌니깐 상관이

    없는데 커서만 옮긴 상태에서 바로 저장을 눌러버리면 dsBrowse 상태니까

    에러가 발생하는거구여..

    음..

    DataSet 의 status 를 수동으로 설정할수 있으면 좋겠는데

    강제로 세팅하면 에러가 나는군여..

    이걸 어떻게 해결할수 있을까여..

    혹시나해서 status 상태를 모두 올려봅니다.

    dsInactive            Dataset is closed, so its data is unavailable.

    dsBrowse            Data can be viewed, but not changed. This is the default state of an open dataset.

    dsEdit                Active record can be modified.

    dsInsert            The active record is a newly inserted buffer that has not been posted. This record can be modified and then either posted or discarded.

    dsSetKey            TTable and TClientDataSet only. Record searching is enabled, or a SetRange operation is under way. A restricted set of data can be viewed, and no data can be edited or inserted.

    dsCalcFields        An OnCalcFields event is in progress. Noncalculated fields cannot be edited, and new records cannot be inserted.

    dsFilter            An OnFilterRecord event is in progress. A restricted set of data can be viewed. No data can edited or inserted.

    dsNewValue            Temporary state used internally when a field component뭩 NewValue property is accessed.

    dsOldValue            Temporary state used internally when a field component뭩 OldValue property is accessed.

    dsCurValue            Temporary state used internally when a field component뭩 CurValue property is accessed.

    dsBlockRead            Data-aware controls are not updated and events are not triggered when moving to the next record.

    dsInternalCalc        Temporary state used internally when values need to be calculated for a field that has a FieldKind of fkInternalCalc.

    dsOpening            DataSet is in the process of opening but has not finished. This state occurs when the dataset is opened for asynchronous fetching.

    다시한번 조언 부탁드리겠습니다

    감사합니다 (__)



    • 박정근
    • 2002.10.27 06:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 비앙기
      2002.10.28 01:14
      저도 다른분께 들은 거라서어.. 아시겠지만, 먼저 소스 백업 받으신 이후에 해보세요오... 그리고 VC...
    • 윤여훈
    • 2002.10.27 06:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2002.10.28 20:21
      클래스도 배열에 넣어 이용할수 있습니다. 님처럼 하면 되는뎅... TClassArray = Class(TObject) &nbs...
    • 조장선
    • 2002.10.26 23:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조장선
      2002.10.27 00:09
      select name,sum(sukum+greatest(misu,0)) from abc order by name 이런 함수가 있을 줄이야.... 역...
    • 이재진
    • 2002.10.26 22:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강정구
      2002.10.29 18:59
      INI파일을 암호화 해서 저장하는것이 아니라 ini의 내용을 암호화 해서 저장해야 하는것이 아닐까요.....? ...
    • 비앙기
      2002.10.26 22:42
      암호화 함수는 팁이나 강의실에 뒤져보시면 많습니다. http://www.delphi.co.kr/zboard/view.php?id=ti...
    • 하병준
      2002.10.28 19:48
      쩝 그리 원하시는 대답은 아니지만 AdvHttp 컴포넌트 를 써보세여.. 상용이라 올리지는 못하지만 제가...
    • 2002.10.26 20:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 샤리
    • 2002.10.26 19:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이영동
      2002.10.26 20:22
      procedure TForm7.Button1Click(Sender: TObject); var   the_cost : integer;   s...
    • 이영동
    • 2002.10.26 19:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 델사랑
    • 2002.10.26 19:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2002.10.27 08:11
      안녕하세요. 질의는 데이타베이스마다 다 틀립니다. 만약 MS-SQL 을 쓰신다면 질의는 틀린부분이 없거든...
    • 윤여훈
    • 2002.10.26 07:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 비앙기
      2002.10.26 22:49
      데이타의 호환성를 위해서 DXF 파일 포맷를 사용하시구요오 (거의 99% 호환되는 파일포맷입니다) 그리...
    • 머슴
      2002.10.26 19:34
        그냥 어설픈 지식을 몇자 풀어봅니다.. GIS에서는 건물 개체와 같은 것을 레이어라는 표현...
    • 김수경
      2002.10.26 06:23
      스페이스 = 공백 안닌가요 ? ㅡㅡ; 아마도 Tab 기능을 말씀하시는 것 같은데..... Tools/Editor Option...
    • 홍성락
      2002.10.26 04:41
      메인 메뉴에서 search/Replace를 선택해서 해보세요. 여백과 스페이스라...용어를... 문자 뒤에 여백을 ...
    • 안대현
      2002.10.26 06:41
      예...님의 말씀대로 라인 어디든 커서가 가는 걸 없애고 싶습니다. 그게 여간 불편한게 아니예요. 한 라...
    • 이광수
      2002.10.26 09:35
      Editor 옵션에 보시면 Cursor Throught Tab -> uncheck Use tab character -> Check smart tab...
    • 김영철
    • 2002.10.26 01:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.10.26 04:18
      제가 잘 이해는 못하는건지 모르지만 마우스로 클릭시는 커서가 셀에서 깜빡거리므로 Edit모드이고 커서...
    • 김영철
      2002.10.26 06:03
      안녕하세요 (__) 우선 답변 감사드리구여.. Help 를 뒤져서 DBGrid 의 DataSet 상태를 계속 찍어봤습...
    • 2002.10.26 01:28
      filename을 잘못 지정한것 같군요. 즐코하세요
    • 허진석
      2002.10.26 01:51
      filename지정은 맞는데요
    • 홍성락
      2002.10.26 03:15
      스트링그리드의 셀 오브젝트에 이미지를 생성해서 넣으시는건가요? 예제입니다. jpg파일을 읽을땐 유닛에...
    • 정정호
      2002.10.26 03:57
      IntToStr(Round(EMart_Price - HS_Price / Emart_Price * 100);       &nb...
    • 2002.10.26 01:25
      IntToStr은 Integer를 받아들이니까 Integer로 해줘야지요... 간단하게는 Round(EMart_Price - HS_Price...
    • 초델
      2002.10.26 19:57
      냉무...
    • 나옹이
    • 2002.10.26 01:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김호규
      2002.10.26 18:13
      ms-sql서버를 쓰고 있는 경우엔 DATEDIFF(datepart,date1,date2) DATEDIFF란 함수를 사용하며 date1과 ...
    • [ROOKIE]
      2002.10.26 01:47
      원하는 답일지 모르겠지만... TDateTime <-- 이게 실수인디, 정수부분은 날짜, 소수점 이하는 시간, ...
    • 나옹이
      2002.10.26 03:21
      진정 원하는건.... 두 날짜의 개월 차 인데요.... 누구 아시는분 없으신지용?
    • 홍성락
      2002.10.26 04:06
      개월수라 그냥 가감승제로 하면 좀 그럴라나요... var     D1,D2 : string;  ...