Q&A

  • [비상!!질문]update문 에러!!!!
고수님들 저좀 살려주세욤!!!

update문을 사용해서 벌점을 넣고 싶은데 잘 안되네여...

에러문은

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

General SQL error

Date type mismatch in criteria expression.

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

이구여...해당 쏘스는 밑에 있슴다...

(중복되는거라서 지각만 써놔씀다.)!!





procedure TfrmAttend.btnSaveClick(Sender: TObject);

var

a:string;

k:TDateTime;

BadInt,BadHap:integer; //BadHap은 처벌 총점수, BadInt는 각 처벌 점수



begin

Case cboCheck.ItemIndex of //cboCheck는 지각,조퇴등을구분하는 콤보박스이구요.

1: //지각일경우

begin

BadInt:=5;

k:=(Listsql.fieldbyname('A_Date').asDateTime);

with Query1 do begin

BadHap:=(StrToInt(edBMark.text)+BadInt);

a:=(fieldbyname('A_No').asstring);

close;

sql.Clear;

sql.Add('update 출석');

sql.Add('Set A_Bmark='+ inttostr(BadHap)); //A_Bmark는 벌점 필드

sql.Add('Where A_No='+#39+edNo.Text+#39); //A_No 학번...

sql.Add('And A_Date='+#39+DateTimetostr(k)+#39); //출석부 일자

execsql;

end;

with Listsql do begin

close;

sql.Clear;

sql.Add('select * from 출석 Order by A_Date,A_No');

open;

end;

end;

end;

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

Query1 하구 Listsql은 같은 DB를 사용하고있구요. Listsql은 DBGrid에 보여주기 위한 쿼리입니다.



4  COMMENTS
  • Profile
    김영현 2001.05.30 16:24
    info wrote:

    > 고수님들 저좀 살려주세욤!!!

    > update문을 사용해서 벌점을 넣고 싶은데 잘 안되네여...

    > 에러문은

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

    > General SQL error

    > Date type mismatch in criteria expression.

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

    > 이구여...해당 쏘스는 밑에 있슴다...

    > (중복되는거라서 지각만 써놔씀다.)!!

    >

    >

    > procedure TfrmAttend.btnSaveClick(Sender: TObject);

    > var

    > a:string;

    > k:TDateTime;

    > BadInt,BadHap:integer; //BadHap은 처벌 총점수, BadInt는 각 처벌 점수

    >

    > begin

    > Case cboCheck.ItemIndex of //cboCheck는 지각,조퇴등을구분하는 콤보박스이구요.

    > 1: //지각일경우

    > begin

    > BadInt:=5;

    > k:=(Listsql.fieldbyname('A_Date').asDateTime);

    > with Query1 do begin

    > BadHap:=(StrToInt(edBMark.text)+BadInt);

    > a:=(fieldbyname('A_No').asstring);

    > close;

    > sql.Clear;

    > sql.Add('update 출석');

    > sql.Add('Set A_Bmark='+ inttostr(BadHap)); //A_Bmark는 벌점 필드

    > sql.Add('Where A_No='+#39+edNo.Text+#39); //A_No 학번...

    > sql.Add('And A_Date='+#39+DateTimetostr(k)+#39); //출석부 일자

    > execsql;

    > end;

    > with Listsql do begin

    > close;

    > sql.Clear;

    > sql.Add('select * from 출석 Order by A_Date,A_No');

    > open;

    > end;

    > end;

    > end;

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

    > Query1 하구 Listsql은 같은 DB를 사용하고있구요. Listsql은 DBGrid에 보여주기 위한 쿼리입니다.

    >



    A_Date 필드가 DateTime인지 확인해보세요. 형변환 에러입니다.

  • Profile
    info 2001.05.30 18:14
    김영현 wrote:

    > info wrote:

    > > 고수님들 저좀 살려주세욤!!!

    > > update문을 사용해서 벌점을 넣고 싶은데 잘 안되네여...

    > > 에러문은

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

    > > General SQL error

    > > Date type mismatch in criteria expression.

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

    > > 이구여...해당 쏘스는 밑에 있슴다...

    > > (중복되는거라서 지각만 써놔씀다.)!!

    > >

    > >

    > > procedure TfrmAttend.btnSaveClick(Sender: TObject);

    > > var

    > > a:string;

    > > k:TDateTime;

    > > BadInt,BadHap:integer; //BadHap은 처벌 총점수, BadInt는 각 처벌 점수

    > >

    > > begin

    > > Case cboCheck.ItemIndex of //cboCheck는 지각,조퇴등을구분하는 콤보박스이구요.

    > > 1: //지각일경우

    > > begin

    > > BadInt:=5;

    > > k:=(Listsql.fieldbyname('A_Date').asDateTime);

    > > with Query1 do begin

    > > BadHap:=(StrToInt(edBMark.text)+BadInt);

    > > a:=(fieldbyname('A_No').asstring);

    > > close;

    > > sql.Clear;

    > > sql.Add('update 출석');

    > > sql.Add('Set A_Bmark='+ inttostr(BadHap)); //A_Bmark는 벌점 필드

    > > sql.Add('Where A_No='+#39+edNo.Text+#39); //A_No 학번...

    > > sql.Add('And A_Date='+#39+DateTimetostr(k)+#39); //출석부 일자

    > > execsql;

    > > end;

    > > with Listsql do begin

    > > close;

    > > sql.Clear;

    > > sql.Add('select * from 출석 Order by A_Date,A_No');

    > > open;

    > > end;

    > > end;

    > > end;

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

    > > Query1 하구 Listsql은 같은 DB를 사용하고있구요. Listsql은 DBGrid에 보여주기 위한 쿼리입니다.

    > >

    >

    > A_Date 필드가 DateTime인지 확인해보세요. 형변환 에러입니다.







    저겨...A_Date필드 DataTime형은 확실하거덩여...

    도대체 어찌된걸까요...조건에 학번만 걸어주면 잘되는데 거기다 날짜만 추가하면 그러거덩여...



  • Profile
    김영현 2001.05.30 19:28
    info wrote:

    > 김영현 wrote:

    > > info wrote:

    > > > 고수님들 저좀 살려주세욤!!!

    > > > update문을 사용해서 벌점을 넣고 싶은데 잘 안되네여...

    > > > 에러문은

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

    > > > General SQL error

    > > > Date type mismatch in criteria expression.

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

    > > > 이구여...해당 쏘스는 밑에 있슴다...

    > > > (중복되는거라서 지각만 써놔씀다.)!!

    > > >

    > > >

    > > > procedure TfrmAttend.btnSaveClick(Sender: TObject);

    > > > var

    > > > a:string;

    > > > k:TDateTime;

    > > > BadInt,BadHap:integer; //BadHap은 처벌 총점수, BadInt는 각 처벌 점수

    > > >

    > > > begin

    > > > Case cboCheck.ItemIndex of //cboCheck는 지각,조퇴등을구분하는 콤보박스이구요.

    > > > 1: //지각일경우

    > > > begin

    > > > BadInt:=5;

    > > > k:=(Listsql.fieldbyname('A_Date').asDateTime);

    > > > with Query1 do begin

    > > > BadHap:=(StrToInt(edBMark.text)+BadInt);

    > > > a:=(fieldbyname('A_No').asstring);

    > > > close;

    > > > sql.Clear;

    > > > sql.Add('update 출석');

    > > > sql.Add('Set A_Bmark='+ inttostr(BadHap)); //A_Bmark는 벌점 필드

    > > > sql.Add('Where A_No='+#39+edNo.Text+#39); //A_No 학번...

    > > > sql.Add('And A_Date='+#39+DateTimetostr(k)+#39); //출석부 일자

    > > > execsql;

    > > > end;

    > > > with Listsql do begin

    > > > close;

    > > > sql.Clear;

    > > > sql.Add('select * from 출석 Order by A_Date,A_No');

    > > > open;

    > > > end;

    > > > end;

    > > > end;

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

    > > > Query1 하구 Listsql은 같은 DB를 사용하고있구요. Listsql은 DBGrid에 보여주기 위한 쿼리입니다.

    > > >

    > >

    > > A_Date 필드가 DateTime인지 확인해보세요. 형변환 에러입니다.

    >

    >

    >

    > 저겨...A_Date필드 DataTime형은 확실하거덩여...

    > 도대체 어찌된걸까요...조건에 학번만 걸어주면 잘되는데 거기다 날짜만 추가하면 그러거덩여...

    >



    필드가 DateTime 형이면 DateTime형 값을 넣어주셔야죠.

    (입력값이 String 값이네요...)

  • Profile
    info 2001.05.30 19:48
    김영현 wrote:

    > info wrote:

    > > 김영현 wrote:

    > > > info wrote:

    > > > > 고수님들 저좀 살려주세욤!!!

    > > > > update문을 사용해서 벌점을 넣고 싶은데 잘 안되네여...

    > > > > 에러문은

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

    > > > > General SQL error

    > > > > Date type mismatch in criteria expression.

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

    > > > > 이구여...해당 쏘스는 밑에 있슴다...

    > > > > (중복되는거라서 지각만 써놔씀다.)!!

    > > > >

    > > > >

    > > > > procedure TfrmAttend.btnSaveClick(Sender: TObject);

    > > > > var

    > > > > a:string;

    > > > > k:TDateTime;

    > > > > BadInt,BadHap:integer; //BadHap은 처벌 총점수, BadInt는 각 처벌 점수

    > > > >

    > > > > begin

    > > > > Case cboCheck.ItemIndex of //cboCheck는 지각,조퇴등을구분하는 콤보박스이구요.

    > > > > 1: //지각일경우

    > > > > begin

    > > > > BadInt:=5;

    > > > > k:=(Listsql.fieldbyname('A_Date').asDateTime);

    > > > > with Query1 do begin

    > > > > BadHap:=(StrToInt(edBMark.text)+BadInt);

    > > > > a:=(fieldbyname('A_No').asstring);

    > > > > close;

    > > > > sql.Clear;

    > > > > sql.Add('update 출석');

    > > > > sql.Add('Set A_Bmark='+ inttostr(BadHap)); //A_Bmark는 벌점 필드

    > > > > sql.Add('Where A_No='+#39+edNo.Text+#39); //A_No 학번...

    > > > > sql.Add('And A_Date='+#39+DateTimetostr(k)+#39); //출석부 일자

    > > > > execsql;

    > > > > end;

    > > > > with Listsql do begin

    > > > > close;

    > > > > sql.Clear;

    > > > > sql.Add('select * from 출석 Order by A_Date,A_No');

    > > > > open;

    > > > > end;

    > > > > end;

    > > > > end;

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

    > > > > Query1 하구 Listsql은 같은 DB를 사용하고있구요. Listsql은 DBGrid에 보여주기 위한 쿼리입니다.

    > > > >

    > > >

    > > > A_Date 필드가 DateTime인지 확인해보세요. 형변환 에러입니다.

    > >

    > >

    > >

    > > 저겨...A_Date필드 DataTime형은 확실하거덩여...

    > > 도대체 어찌된걸까요...조건에 학번만 걸어주면 잘되는데 거기다 날짜만 추가하면 그러거덩여...

    > >

    >

    > 필드가 DateTime 형이면 DateTime형 값을 넣어주셔야죠.

    > (입력값이 String 값이네요..

    해결했슴다...

    parambyname을 써서요....

    입력값이 string인건 알았지만...제가 코딩한걸루 하니까..자꾸 String으로 변환시키라구 하더라구여....

    님과 parambyname이 절 살려써여....

    감사함다...