Q&A

  • 답변 부탁드리겠습니다.
얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

begin

if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

try

FS1Q0803 := TFS1Q0803.Create(application);

if FS1Q0803.ShowModal = mrOK then

if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

with wwQY_tz301_1 do

begin

Close;

SQL.Clear;

SQL.Add('Update tz303');

SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

SQL.Add('and SYST_CODE = :P_SYST_CODE ');

ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

ExecSql;

MsgInfo_(hApp, '승인 완료 되었습니다.');

MsgInfo_(hApp, '이전화면으로 전환됩니다.');

end

else begin

MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

end

else

close;

finally

FS1Q0803.Free;

end;

close;

end;



결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.



5  COMMENTS
  • Profile
    씨나락 2001.12.27 02:09
    SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    이부분을

    SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = '+SYSDATE);

    이렇게 고치면 되지 않을까요?







    델파이초보 wrote:

    > 얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

    > begin

    > if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

    > try

    > FS1Q0803 := TFS1Q0803.Create(application);

    > if FS1Q0803.ShowModal = mrOK then

    > if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

    > with wwQY_tz301_1 do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add('Update tz303');

    > SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    > SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

    > SQL.Add('and SYST_CODE = :P_SYST_CODE ');

    > ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

    > ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

    > ExecSql;

    > MsgInfo_(hApp, '승인 완료 되었습니다.');

    > MsgInfo_(hApp, '이전화면으로 전환됩니다.');

    > end

    > else begin

    > MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

    > end

    > else

    > close;

    > finally

    > FS1Q0803.Free;

    > end;

    > close;

    > end;

    >

    > 결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.

    >

  • Profile
    한가해 2001.12.27 02:08
    땡땡이('''')를 지우세요..



    델파이초보 wrote:

    > 얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

    > begin

    > if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

    > try

    > FS1Q0803 := TFS1Q0803.Create(application);

    > if FS1Q0803.ShowModal = mrOK then

    > if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

    > with wwQY_tz301_1 do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add('Update tz303');

    > SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    > SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

    > SQL.Add('and SYST_CODE = :P_SYST_CODE ');

    > ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

    > ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

    > ExecSql;

    > MsgInfo_(hApp, '승인 완료 되었습니다.');

    > MsgInfo_(hApp, '이전화면으로 전환됩니다.');

    > end

    > else begin

    > MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

    > end

    > else

    > close;

    > finally

    > FS1Q0803.Free;

    > end;

    > close;

    > end;

    >

    > 결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.

    >

  • Profile
    델파이초보 2001.12.27 02:20
    답변 정말 감사드립니다. 그럼 한가지만 더 물어보겠습니다.

    말씀하신대로 '' ''를 지웠더니 sysdate를 가져옵니다. 그럼 그 sysdate뒤에 순차적인 번호를 붙일려면 어떻게 해야하는지요? 번거롭게 해드려서 죄송하지만 답변해주시면 정말 고맙겠습니다.



    한가해 wrote:

    > 땡땡이('''')를 지우세요..

    >

    > 델파이초보 wrote:

    > > 얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

    > > begin

    > > if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

    > > try

    > > FS1Q0803 := TFS1Q0803.Create(application);

    > > if FS1Q0803.ShowModal = mrOK then

    > > if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

    > > with wwQY_tz301_1 do

    > > begin

    > > Close;

    > > SQL.Clear;

    > > SQL.Add('Update tz303');

    > > SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    > > SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

    > > SQL.Add('and SYST_CODE = :P_SYST_CODE ');

    > > ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

    > > ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

    > > ExecSql;

    > > MsgInfo_(hApp, '승인 완료 되었습니다.');

    > > MsgInfo_(hApp, '이전화면으로 전환됩니다.');

    > > end

    > > else begin

    > > MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

    > > end

    > > else

    > > close;

    > > finally

    > > FS1Q0803.Free;

    > > end;

    > > close;

    > > end;

    > >

    > > 결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.

    > >

  • Profile
    빙고 2001.12.27 20:35
    제 생각에는 이러면 어떨지요? 필드가 문자형이라고 생각한 경우입니다.

    데이타형이 틀리다면 거기에 맞게 하시면 되것지요!



    Select to_number(nvl(max(GYEL_NUMB),to_char(sysdate,'yyyymmdd')||'0')) +1 Seq

    from Table

    where substr(gyel_numb,1,8) = to_char(sysdate,'yyyymmdd')

    이렇게 해가지구 이 값을 update할때 주면 되지 않을런지..

    update 할땐 데이터형을 맞춰주심 되것지요?



    혹 위 문장이 안먹는다면 좀 번거롭더라도 Select문으로 max값을 구해봐서

    null이면 sysdate에다가 '1' 을 붙여서 update하시고

    not null이면 max값에다가 +1해서 update하면 될듯..(데이터형은 알아서 맞추시고요)



    제가 괜한 짓해서 헛갈리게 한건 아닌지 모르것네여..



    델파이초보 wrote:

    > 답변 정말 감사드립니다. 그럼 한가지만 더 물어보겠습니다.

    > 말씀하신대로 '' ''를 지웠더니 sysdate를 가져옵니다. 그럼 그 sysdate뒤에 순차적인 번호를 붙일려면 어떻게 해야하는지요? 번거롭게 해드려서 죄송하지만 답변해주시면 정말 고맙겠습니다.

    >

    > 한가해 wrote:

    > > 땡땡이('''')를 지우세요..

    > >

    > > 델파이초보 wrote:

    > > > 얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

    > > > begin

    > > > if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

    > > > try

    > > > FS1Q0803 := TFS1Q0803.Create(application);

    > > > if FS1Q0803.ShowModal = mrOK then

    > > > if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

    > > > with wwQY_tz301_1 do

    > > > begin

    > > > Close;

    > > > SQL.Clear;

    > > > SQL.Add('Update tz303');

    > > > SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    > > > SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

    > > > SQL.Add('and SYST_CODE = :P_SYST_CODE ');

    > > > ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

    > > > ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

    > > > ExecSql;

    > > > MsgInfo_(hApp, '승인 완료 되었습니다.');

    > > > MsgInfo_(hApp, '이전화면으로 전환됩니다.');

    > > > end

    > > > else begin

    > > > MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

    > > > end

    > > > else

    > > > close;

    > > > finally

    > > > FS1Q0803.Free;

    > > > end;

    > > > close;

    > > > end;

    > > >

    > > > 결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.

    > > >

  • Profile
    델파이초보 2001.12.28 20:18
    델파이초보 wrote;

    답변 정말 감사드립니다.



    빙고 wrote:

    > 제 생각에는 이러면 어떨지요? 필드가 문자형이라고 생각한 경우입니다.

    > 데이타형이 틀리다면 거기에 맞게 하시면 되것지요!

    >

    > Select to_number(nvl(max(GYEL_NUMB),to_char(sysdate,'yyyymmdd')||'0')) +1 Seq

    > from Table

    > where substr(gyel_numb,1,8) = to_char(sysdate,'yyyymmdd')

    > 이렇게 해가지구 이 값을 update할때 주면 되지 않을런지..

    > update 할땐 데이터형을 맞춰주심 되것지요?

    >

    > 혹 위 문장이 안먹는다면 좀 번거롭더라도 Select문으로 max값을 구해봐서

    > null이면 sysdate에다가 '1' 을 붙여서 update하시고

    > not null이면 max값에다가 +1해서 update하면 될듯..(데이터형은 알아서 맞추시고요)

    >

    > 제가 괜한 짓해서 헛갈리게 한건 아닌지 모르것네여..

    >

    > 델파이초보 wrote:

    > > 답변 정말 감사드립니다. 그럼 한가지만 더 물어보겠습니다.

    > > 말씀하신대로 '' ''를 지웠더니 sysdate를 가져옵니다. 그럼 그 sysdate뒤에 순차적인 번호를 붙일려면 어떻게 해야하는지요? 번거롭게 해드려서 죄송하지만 답변해주시면 정말 고맙겠습니다.

    > >

    > > 한가해 wrote:

    > > > 땡땡이('''')를 지우세요..

    > > >

    > > > 델파이초보 wrote:

    > > > > 얼마전 질문을 올렸었습니다. 그러나 답을해주시는 분이 없어서 다시한번 올립니다.

    > > > > begin

    > > > > if not MsgYesNo_(application.handle, '승인 하시겠습니까?') then exit;

    > > > > try

    > > > > FS1Q0803 := TFS1Q0803.Create(application);

    > > > > if FS1Q0803.ShowModal = mrOK then

    > > > > if UpperCase(FS1Q0803.ED_USERPW.Text) = FS1Q0803.fn_check_password then

    > > > > with wwQY_tz301_1 do

    > > > > begin

    > > > > Close;

    > > > > SQL.Clear;

    > > > > SQL.Add('Update tz303');

    > > > > SQL.Add('Set GYEL_CHEK = ''Y'', GYEL_NUMB = ''SYSDATE'' ');

    > > > > SQL.Add('Where USER_IDXX = :P_USER_IDXX ');

    > > > > SQL.Add('and SYST_CODE = :P_SYST_CODE ');

    > > > > ParamByName('P_USER_IDXX').AsString := GE_USER_IDXX_1.Text;

    > > > > ParamByName('P_SYST_CODE').AsString := ED_SYST_CODE.Text;

    > > > > ExecSql;

    > > > > MsgInfo_(hApp, '승인 완료 되었습니다.');

    > > > > MsgInfo_(hApp, '이전화면으로 전환됩니다.');

    > > > > end

    > > > > else begin

    > > > > MsgInfo_(hApp, '비밀번호가 일치하지 않습니다.');

    > > > > end

    > > > > else

    > > > > close;

    > > > > finally

    > > > > FS1Q0803.Free;

    > > > > end;

    > > > > close;

    > > > > end;

    > > > >

    > > > > 결재를 하게되면 두개의 필드에 Y와 그날의 날짜와 순차적인 번호를 넣고자합니다. 그러나 Y는 넣었는데 다른 하나의 필드에는 SYSDATE라는 문자만 찍습니다. 그날의 날짜와함께 순차적으로 번호를 넣을수있게 코딩을 하려면 어떻게해야하는지 알려주시면 감사하겠습니다.

    > > > >