Q&A

  • DBGrid에서 입력을 바로 합니다......근데 문제점이 있습니다...문제점이 숫자입력필
DBGrid에서 입력을 바로 합니다......근데 문제점이 있습니다...문제점이 숫자입력필드는 길이 제안이 안 됩니다.될 방법좀 만이만이 가르쳐 주세요^^







화살표키로 내리면 저장이되고 append가 되는데 이전에 이 길이를 제안해서 에러를 발생해야 합니다.



어떻게 해야할지 모르겠습니다.



오늘도 이것때문에 하루를 또 보냈습니다.







음 예를 들면 db에 문제열 10자와 숫자열 10자로 잡혔있습니다.







그리드에서는 문자열 10자는 자동으로 길이 제안을 하더군요 10초과는 못 쓰겠금 되어있더라구요







근데 숫자필드는 그렇지가 안더군요







10로 되어 있으면 11이상두 들어 가더라구요...



db는 10자로 되어 있는데.....



그래서 자꾸 에러가 발생 하네요...



에러가 발생 하기 전에 잡을 방법이 있으면 좀 가르쳐 주세요..







무지 급해서 그럽니다..이번주 안에 이 모든게 다 끝나야 하는데..



다른 문제도 많은데 미치겠습니다...







그럼 20000



새해복 많이 받으시고 즐거운 하루 되세요.....



^^;



4  COMMENTS
  • Profile
    허일학 2001.01.05 07:40
    뻐록이 wrote:

    > DBGrid에서 입력을 바로 합니다......근데 문제점이 있습니다...문제점이 숫자입력필드는 길이 제안이 안 됩니다.될 방법좀 만이만이 가르쳐 주세요^^

    >

    >

    >

    > 화살표키로 내리면 저장이되고 append가 되는데 이전에 이 길이를 제안해서 에러를 발생해야 합니다.

    >

    > 어떻게 해야할지 모르겠습니다.

    >

    > 오늘도 이것때문에 하루를 또 보냈습니다.

    >

    >

    >

    > 음 예를 들면 db에 문제열 10자와 숫자열 10자로 잡혔있습니다.

    >

    >

    >

    > 그리드에서는 문자열 10자는 자동으로 길이 제안을 하더군요 10초과는 못 쓰겠금 되어있더라구요

    >

    >

    >

    > 근데 숫자필드는 그렇지가 안더군요

    >

    >

    >

    > 10로 되어 있으면 11이상두 들어 가더라구요...

    >

    > db는 10자로 되어 있는데.....

    >

    > 그래서 자꾸 에러가 발생 하네요...

    >

    > 에러가 발생 하기 전에 잡을 방법이 있으면 좀 가르쳐 주세요..

    >

    >

    >

    > 무지 급해서 그럽니다..이번주 안에 이 모든게 다 끝나야 하는데..

    >

    > 다른 문제도 많은데 미치겠습니다...

    >

    >

    >

    > 그럼 20000

    >

    > 새해복 많이 받으시고 즐거운 하루 되세요.....

    >

    > ^^;

    >



    DBDEMOS의 BIOLIFE 테이블을 이용해서 간단히 예제를 만들어서 테스트해보고

    올려드립니다.

    Length (cm) 필드의 OnChange 이벤트에 아래와 같이 코딩을 해보세요!!!



    procedure TForm1.Table1LengthcmChange(Sender: TField);

    var NM : integer;

    begin

    NM := Table1.FieldByName('Length (cm)').AsInteger;

    NM := Length(IntToStr(NM));

    if NM > 4 then begin

    ShowMessage('4자리이상 입력할수 없습니다');

    Table1.Cancel;

    end;

    end;







  • Profile
    뻐록이 2001.01.05 19:11
    허일학 wrote:

    > 뻐록이 wrote:

    > > DBGrid에서 입력을 바로 합니다......근데 문제점이 있습니다...문제점이 숫자입력필드는 길이 제안이 안 됩니다.될 방법좀 만이만이 가르쳐 주세요^^

    > >

    > >

    > >

    > > 화살표키로 내리면 저장이되고 append가 되는데 이전에 이 길이를 제안해서 에러를 발생해야 합니다.

    > >

    > > 어떻게 해야할지 모르겠습니다.

    > >

    > > 오늘도 이것때문에 하루를 또 보냈습니다.

    > >

    > >

    > >

    > > 음 예를 들면 db에 문제열 10자와 숫자열 10자로 잡혔있습니다.

    > >

    > >

    > >

    > > 그리드에서는 문자열 10자는 자동으로 길이 제안을 하더군요 10초과는 못 쓰겠금 되어있더라구요

    > >

    > >

    > >

    > > 근데 숫자필드는 그렇지가 안더군요

    > >

    > >

    > >

    > > 10로 되어 있으면 11이상두 들어 가더라구요...

    > >

    > > db는 10자로 되어 있는데.....

    > >

    > > 그래서 자꾸 에러가 발생 하네요...

    > >

    > > 에러가 발생 하기 전에 잡을 방법이 있으면 좀 가르쳐 주세요..

    > >

    > >

    > >

    > > 무지 급해서 그럽니다..이번주 안에 이 모든게 다 끝나야 하는데..

    > >

    > > 다른 문제도 많은데 미치겠습니다...

    > >

    > >

    > >

    > > 그럼 20000

    > >

    > > 새해복 많이 받으시고 즐거운 하루 되세요.....

    > >

    > > ^^;

    > >

    >

    > DBDEMOS의 BIOLIFE 테이블을 이용해서 간단히 예제를 만들어서 테스트해보고

    > 올려드립니다.

    > Length (cm) 필드의 OnChange 이벤트에 아래와 같이 코딩을 해보세요!!!

    >

    > procedure TForm1.Table1LengthcmChange(Sender: TField);

    > var NM : integer;

    > begin

    > NM := Table1.FieldByName('Length (cm)').AsInteger;

    > NM := Length(IntToStr(NM));

    > if NM > 4 then begin

    > ShowMessage('4자리이상 입력할수 없습니다');

    > Table1.Cancel;

    > end;

    > end;

    >

    >

    >허일학님 정말감사합니다..하지만

    한가지만 답변좀 해 주세요



    지금 필드가 10자리로 되어있습니다.

    근데 내가 에러 체크하는 자리는 5자리 하고 하면

    6-10자리까지는 님이 한것처럼 하면 에러를 잡을수 있더군요

    근데 문제는 그게 아님니다.

    11자리를 입력하면 테이블자리 보다 크기 때문에 에러를 발생하는군요...



    다른 좋은 방법이 없을까요..

    전 Sql server를 사용하고 델5.0을 사용합니다.

  • Profile
    허일학 2001.01.05 21:18
    뻐록이 wrote:

    > 허일학 wrote:

    > > 뻐록이 wrote:

    > > > DBGrid에서 입력을 바로 합니다......근데 문제점이 있습니다...문제점이 숫자입력필드는 길이 제안이 안 됩니다.될 방법좀 만이만이 가르쳐 주세요^^

    > > >

    > > >

    > > >

    > > > 화살표키로 내리면 저장이되고 append가 되는데 이전에 이 길이를 제안해서 에러를 발생해야 합니다.

    > > >

    > > > 어떻게 해야할지 모르겠습니다.

    > > >

    > > > 오늘도 이것때문에 하루를 또 보냈습니다.

    > > >

    > > >

    > > >

    > > > 음 예를 들면 db에 문제열 10자와 숫자열 10자로 잡혔있습니다.

    > > >

    > > >

    > > >

    > > > 그리드에서는 문자열 10자는 자동으로 길이 제안을 하더군요 10초과는 못 쓰겠금 되어있더라구요

    > > >

    > > >

    > > >

    > > > 근데 숫자필드는 그렇지가 안더군요

    > > >

    > > >

    > > >

    > > > 10로 되어 있으면 11이상두 들어 가더라구요...

    > > >

    > > > db는 10자로 되어 있는데.....

    > > >

    > > > 그래서 자꾸 에러가 발생 하네요...

    > > >

    > > > 에러가 발생 하기 전에 잡을 방법이 있으면 좀 가르쳐 주세요..

    > > >

    > > >

    > > >

    > > > 무지 급해서 그럽니다..이번주 안에 이 모든게 다 끝나야 하는데..

    > > >

    > > > 다른 문제도 많은데 미치겠습니다...

    > > >

    > > >

    > > >

    > > > 그럼 20000

    > > >

    > > > 새해복 많이 받으시고 즐거운 하루 되세요.....

    > > >

    > > > ^^;

    > > >

    > >

    > > DBDEMOS의 BIOLIFE 테이블을 이용해서 간단히 예제를 만들어서 테스트해보고

    > > 올려드립니다.

    > > Length (cm) 필드의 OnChange 이벤트에 아래와 같이 코딩을 해보세요!!!

    > >

    > > procedure TForm1.Table1LengthcmChange(Sender: TField);

    > > var NM : integer;

    > > begin

    > > NM := Table1.FieldByName('Length (cm)').AsInteger;

    > > NM := Length(IntToStr(NM));

    > > if NM > 4 then begin

    > > ShowMessage('4자리이상 입력할수 없습니다');

    > > Table1.Cancel;

    > > end;

    > > end;

    > >

    > >

    > >허일학님 정말감사합니다..하지만

    > 한가지만 답변좀 해 주세요

    >

    > 지금 필드가 10자리로 되어있습니다.

    > 근데 내가 에러 체크하는 자리는 5자리 하고 하면

    > 6-10자리까지는 님이 한것처럼 하면 에러를 잡을수 있더군요

    > 근데 문제는 그게 아님니다.

    > 11자리를 입력하면 테이블자리 보다 크기 때문에 에러를 발생하는군요...

    >

    > 다른 좋은 방법이 없을까요..

    > 전 Sql server를 사용하고 델5.0을 사용합니다.





    문자필드에 숫자를 넣으시려는건지...?

    아니면 숫자필드에 숫자를 넣는건인지...?

    님이하신 질문을 잘이해를 못해서요 죄송합니다.

  • Profile
    뻐록이 2001.01.05 22:57
    당연히 숫자필드이죠



    숫자필드에 sql server 에서 longint로 잡았습니다(db)



    그러니까 10자까지 쓸수 있더군요

    제가 11자를 쓰고 나서 방향키로 아래로 내리니까....바로 에러가 발생 하더군요



    이정도면 되겠습니까?????



    님의 답변 진심으로 감사합니다.



    오늘도 즐거운 하루 되시길 바래요^^