Q&A

  • 오라클 날짜값 입력및 수정부분에 대해서...
허접하고 황당한 질문에도 리플을 달아주시는 고수님들께 감사드립니다

전번 부분은 잘 해결되었습니다...

산을 하나 넘으니 또다시 산이 기다리는군요...ㅠ_ㅠ

다름이 아니라...현재 디비를 오라클을 쓰고 있습니다

입력된 시간값을 그냥 불러오면...DBGrid 창에 나오는 모습입니다

2002-11-05 오후 3:48:55 <- 요런식으로 나옵니다

저는 그냥 입력된 값을 불러왔고...sqlplus에서는 to_char(sysdate,'yyyy-mm-dd am hh:mi') 요런식으로 값을 부르니 되는거 같더군요... (모냥만 비슷합니다..ㅠ_ㅠ;;)

제가 질문을 드리고자 하는부분은...

<수정부분>
Close;
    Sql.Clear;
    Sql.Add(' UPDATE parkapp SET  starttime = :starttime, endtime = :endtime, parkingtime = :parkingtime ');
    Sql.Add(' WHERE appno = :appno1 ');
    ParamByName('appno1').AsString := Query2.FieldByName('appno').AsString;
    ParamByName('starttime').AsString := Edit6.Text;
    ParamByName('endtime').AsString := Edit7.Text;
    ParamByName('parkingtime').AsString := Edit4.Text;
    try
    Execsql;
    ShowMessage('수정되었습니다');
    Query2.Close;
    Query2.Open;
    except
    ShowMessage('DBerror');
    Exit;
    end;
이게 수정 부분이고...

입력 부분은...

Close;
    Sql.Clear;
    Sql.Add(' INSERT INTO parkapp VALUES(:sysdate,:sysdate + ' + Edit4.Text + ',:parkingtime,:parkingtime) ');
    ParamByName('parkingtime').AsString := Edit4.Text;
    try
    ExecSql;
    ShowMessage('등록되었습니다');
    Query2.close;
    Query2.Open;
    except
      ShowMessage('값을 넣어주세요');
      Exit;
    end;

이상입니다...

입력부분에선 sysdate를 unknwon타입이라믄서 에러난후 값을 넣으라고 합니다

수정부분에선 문자역리 포맷 문자열에 맞지 않다고 하는데...

문자열을 어떤식으로 해서 입력을 해야될런지요..ㅠ_ㅠ??

수정부분에선 포맷 문자열을 맞춰줘야 될거 같은데...도대체 어케 하란말인지....

고수님들의 조언 기다리겠습니다

1  COMMENTS
  • Profile
    안광호 2002.11.06 02:45
    starttime, endtime, parkingtime 의 오라클 타입을 모르겠습니다. 여기서는 DATE 형 이라는 전제하에 설명하겠습니다.

    <입력부분>
    Close;
        Sql.Clear;
        Sql.Add(' INSERT INTO parkapp VALUES(:sysdate,:sysdate + ' + Edit4.Text + ',:parkingtime,:parkingtime) ');
        ParamByName('parkingtime').AsString := Edit4.Text;
        try
        ExecSql;
        ShowMessage('등록되었습니다');
        Query2.close;
        Query2.Open;
        except
          ShowMessage('값을 넣어주세요');
          Exit;
        end;
    부분에서 VALUES(:sysdate, :sysdate, ... ..) 에서 :sysdate 면 parameter 변수가 됩니다. 오라클의 시스템 시간을 사용하실 경우 :sysdate 가 아니라 sysdate 입니다.
    또한 parkingtime 을
        ParamByName('parkingtime').AsDateTime  := DateTime 변수형
    으로 수정해야 합니다.

    <수정부분>
        ParamByName('starttime').AsString := Edit6.Text;
        ParamByName('endtime').AsString := Edit7.Text;
        ParamByName('parkingtime').AsString := Edit4.Text;

    에서
        ParamByName('starttime').AsDateTime  := DateTime 변수형
        PramByName('endtime').AsDateTime  := DateTime 변수형
        ParamByName('parkingtime').AsDateTime  := DateTime 변수형

    답변이 되었는지.
    즐코하세요.