Q&A

  • DBGRID 에서 맨마지막행..(1급). 먼저감사
DBGRID 에서 마지막행의 처음열을 가지고와서 그 값(문자형)을 숫자형으로 바꾸어

그다음 행에 INDEX로 사용할려고 하는데

어떻게 해야하는지를 알고 싶습니다

혹 시간나시는 고수님들에게 부탁

3  COMMENTS
  • Profile
    장은석 2000.03.19 12:34
    델LOVE wrote:

    > DBGRID 에서 마지막행의 처음열을 가지고와서 그 값(문자형)을 숫자형으로 바꾸어

    > 그다음 행에 INDEX로 사용할려고 하는데

    > 어떻게 해야하는지를 알고 싶습니다

    > 혹 시간나시는 고수님들에게 부탁



    ------------------------------------------------------------------------



    질문을 좀 더 자세히 해주셨으면 고맙겠습니다.



    일단 제가 이해하기엔 추출된 레코드셋의 제일 마지막 번째 행의 특정열 값을

    취해서 숫자형으로 바꿔주면 되는거지요? 저장도 순서대로 저장하셨을테고..

    일단 쿼리에 레코드묶음을 select 해주고요 특정필드의 마지막 값을 가져오는 함수를 만듭니다.

    그런 후 그 리턴값을 지지고 볶으시면 될겁니다.



    function MaxCode() : integer;

    var str : string;

    begin

    query1.Close;

    query1.SQL.Clear;

    query1.SQL.add('select max(field1) as maxcode from table1');

    query1.open;

    str := query1.fieldbyname('maxcode').asstring;

    if str <> '' then

    begin

    result := StrToInt(str);

    end

    else

    begin

    result := 0; //아무런 값도 없는 경우.

    end;

    end;



    제가 임의대로 만들었으니 님의 로직에 맞게 응용해서 참고하세요..

    제대로 된 답변인지 모르겠네요.. 그럼..





  • Profile
    델LOVE 2000.03.20 09:19
    장은석 wrote:

    > 델LOVE wrote:

    > > DBGRID 에서 마지막행의 처음열을 가지고와서 그 값(문자형)을 숫자형으로 바꾸어

    > > 그다음 행에 INDEX로 사용할려고 하는데

    > > 어떻게 해야하는지를 알고 싶습니다

    > > 혹 시간나시는 고수님들에게 부탁

    >

    > ------------------------------------------------------------------------

    >

    > 질문을 좀 더 자세히 해주셨으면 고맙겠습니다.

    >

    > 일단 제가 이해하기엔 추출된 레코드셋의 제일 마지막 번째 행의 특정열 값을

    > 취해서 숫자형으로 바꿔주면 되는거지요? 저장도 순서대로 저장하셨을테고..

    > 일단 쿼리에 레코드묶음을 select 해주고요 특정필드의 마지막 값을 가져오는 함수를 만듭니다.

    > 그런 후 그 리턴값을 지지고 볶으시면 될겁니다.

    >

    > function MaxCode() : integer;

    > var str : string;

    > begin

    > query1.Close;

    > query1.SQL.Clear;

    > query1.SQL.add('select max(field1) as maxcode from table1');

    > query1.open;

    > str := query1.fieldbyname('maxcode').asstring;

    > if str <> '' then

    > begin

    > result := StrToInt(str);

    > end

    > else

    > begin

    > result := 0; //아무런 값도 없는 경우.

    > end;

    > end;

    >

    > 제가 임의대로 만들었으니 님의 로직에 맞게 응용해서 참고하세요..

    > 제대로 된 답변인지 모르겠네요.. 그럼..

    >

    >

    우선 감사합니다.

    그런데

    이방법을 사용하여 했는데 어떤숫자가 받아오긴합니다만 제가원하는 값이 아니거던요

    저는 0001 다음에 0002 ... 같이 받고 싶습니다

    그런데 0001 다음에 16이라는 값이들어와요

    그리고 0001과 같이 자리수를 항상 맞추어 다음행값에 넣고 싶어요



    그럼 즐거운 통신이 되기를....

  • Profile
    델LOVE 2000.03.20 08:11
    장은석 wrote:

    > 델LOVE wrote:

    > > DBGRID 에서 마지막행의 처음열을 가지고와서 그 값(문자형)을 숫자형으로 바꾸어

    > > 그다음 행에 INDEX로 사용할려고 하는데

    > > 어떻게 해야하는지를 알고 싶습니다

    > > 혹 시간나시는 고수님들에게 부탁

    >

    > ------------------------------------------------------------------------

    >

    > 질문을 좀 더 자세히 해주셨으면 고맙겠습니다.

    >

    > 일단 제가 이해하기엔 추출된 레코드셋의 제일 마지막 번째 행의 특정열 값을

    > 취해서 숫자형으로 바꿔주면 되는거지요? 저장도 순서대로 저장하셨을테고..

    > 일단 쿼리에 레코드묶음을 select 해주고요 특정필드의 마지막 값을 가져오는 함수를 만듭니다.

    > 그런 후 그 리턴값을 지지고 볶으시면 될겁니다.

    >

    > function MaxCode() : integer;

    > var str : string;

    > begin

    > query1.Close;

    > query1.SQL.Clear;

    > query1.SQL.add('select max(field1) as maxcode from table1');

    > query1.open;

    > str := query1.fieldbyname('maxcode').asstring;

    > if str <> '' then

    > begin

    > result := StrToInt(str);

    > end

    > else

    > begin

    > result := 0; //아무런 값도 없는 경우.

    > end;

    > end;

    >

    > 제가 임의대로 만들었으니 님의 로직에 맞게 응용해서 참고하세요..

    > 제대로 된 답변인지 모르겠네요.. 그럼..

    >

    >

    먼저 감사합니다

    그런데 본코드를 참조하여 응용을 할려고 했는데

    에러가 발생하는군요



    SQL.Add('select decode(max(dcode),null,0,max(dcode)) maxno for dcode

    여기서 실행결과

    ORA-00938:함수의 인수가 충분하지않습니다

    라는 에러가 나와요

    어떤 문제입니까

    decode에 대해 좀알려주시면 감사하겠습니다..