Q&A

  • 하늘맥님께 물어볼게 있습니다. 자꾸 에러가 나요?흐흐흑
procedure TForm1.Button1Click(Sender: TObject);

begin

With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

//가 이 dm.guery1과 연결되어 있어야 겠지요..

begin

close;

sql.clear;

sql.add('Select * from where Dondate >= :dondate1 and Dondate <= :dondate');

//날짜 필드가 dondate라고 가정

paramByname('dondate1').asdatetime := StrToDate(edit1.text);

paramByname('dondate2').asdatetime := StrToDate(edit2.text);

open;

end;

form2.show;

뭐 간단하게 이렇게 하면 form2.dbgrid에 조회한 자료를 출력될것입니다..

합계는

With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

//가 이 dm.guery1과 연결되어 있어야 겠지요..

begin

close;

sql.clear;

sql.add('Select sum(don) sdon from where

sql.add('Dondate >= :dondate1 and Dondate <= :dondate');

//날짜 필드가 dondate라고 가정

paramByname('dondate1').asdatetime := StrToDate(edit1.text);

paramByname('dondate2').asdatetime := StrToDate(edit2.text);

open;



form2.edit3.text := inttostr(fieldbyname(sdon).asinteger);

end;

form2.show;



end;

`````````````````````````````

저는 날짜 필드이름을 (day) 나머진 사실 금액이 아니라 용량(예:100.000g이어서그냥 100.000만 사용했음, 소수자리사용)이라서 그대로(yongyang)이란 필드이름을 사용했습니다. 그리고 디비를 만들때 날짜와 용량을 전부 그냥 A데이타형을 사용해서 만들었습니다.

그런에 콰리을 사용해서 해보니 자꾸에러가 납니다.

저는 모두 자동폼으로 만들었거든요, 이것때문일까요?

그리고 이런

invaild use of keyword

token: day>=? 에러가 나타납니다.

하늘맥님, 근데 SQL에서

select *from 필드이름

where day:=dondate1

where day:=dondate2

이렇게 적어야 하나요?

하늘맥님이 주신 것을 그대로 사용하니 잘안되어서 저 나름대로 적어서 사용했는데 저도 초보라서인지 잘안되네요.흑흑.

그리고 하늘맥님

sql.add('select sum(don) sdon from where

sql.add(dondate>=:dondate1 and dondate<=:dondate2');



form2.edit3.text:=inttostr(fieldbyname(sdon).asinteger);

이 부분을 잘모르겠어요. 다시한번 부탁드립니다. 설명 좀 해주세요.

빠른시일에 다시 연락 좀 주세요. 저 사실 이글 띄우고 계속 컴퓨터앞에만 있을 거예요.

2  COMMENTS
  • Profile
    한창희 2000.05.14 13:41
    상현이라는 초보입니다. wrote:

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

    > //가 이 dm.guery1과 연결되어 있어야 겠지요..

    > begin

    > close;

    > sql.clear;

    > sql.add('Select * from where Dondate >= :dondate1 and Dondate <= :dondate');

    > //날짜 필드가 dondate라고 가정

    > paramByname('dondate1').asdatetime := StrToDate(edit1.text);

    > paramByname('dondate2').asdatetime := StrToDate(edit2.text);

    > open;

    > end;

    > form2.show;

    > 뭐 간단하게 이렇게 하면 form2.dbgrid에 조회한 자료를 출력될것입니다..

    > 합계는

    > With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

    > //가 이 dm.guery1과 연결되어 있어야 겠지요..

    > begin

    > close;

    > sql.clear;

    > sql.add('Select sum(don) sdon from where

    > sql.add('Dondate >= :dondate1 and Dondate <= :dondate');

    > //날짜 필드가 dondate라고 가정

    > paramByname('dondate1').asdatetime := StrToDate(edit1.text);

    > paramByname('dondate2').asdatetime := StrToDate(edit2.text);

    > open;

    >

    > form2.edit3.text := inttostr(fieldbyname(sdon).asinteger);

    > end;

    > form2.show;

    >

    > end;

    > `````````````````````````````

    > 저는 날짜 필드이름을 (day) 나머진 사실 금액이 아니라 용량(예:100.000g이어서그냥 100.000만 사용했음, 소수자리사용)이라서 그대로(yongyang)이란 필드이름을 사용했습니다. 그리고 디비를 만들때 날짜와 용량을 전부 그냥 A데이타형을 사용해서 만들었습니다.

    > 그런에 콰리을 사용해서 해보니 자꾸에러가 납니다.

    > 저는 모두 자동폼으로 만들었거든요, 이것때문일까요?

    > 그리고 이런

    > invaild use of keyword

    > token: day>=? 에러가 나타납니다.

    > 하늘맥님, 근데 SQL에서

    > select *from 필드이름

    > where day:=dondate1

    > where day:=dondate2

    > 이렇게 적어야 하나요?

    > 하늘맥님이 주신 것을 그대로 사용하니 잘안되어서 저 나름대로 적어서 사용했는데 저도 초보라서인지 잘안되네요.흑흑.

    > 그리고 하늘맥님

    > sql.add('select sum(don) sdon from where

    > sql.add(dondate>=:dondate1 and dondate<=:dondate2');

    > 과

    > form2.edit3.text:=inttostr(fieldbyname(sdon).asinteger);

    > 이 부분을 잘모르겠어요. 다시한번 부탁드립니다. 설명 좀 해주세요.

    > 빠른시일에 다시 연락 좀 주세요. 저 사실 이글 띄우고 계속 컴퓨터앞에만 있을 거예요.



    *^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^**^.^*

    > invaild use of keyword

    > token: day>=? 에러가 나타납니다.

    이에러는 day sql의 예약어 입니다. 필드이름을 바꾸세요. dbday로 바꾸어 설명하지요.



    > select *from 필드이름

    > where dbday = dondate1

    > where dbday = dondate2

    요렇게 바꾸세요. 그리고 A := 0 는 아시다시피 A 라는 변수에 0 이라는 값을 옮겨 입력하는 것이고요. 위는 문장는 Sql 문장의 where 다음에 오는 것는 옮겨 입력하라는 의미가 올수가 없고요, 비교문장입니다. 그러니까 '=' 으로 사용하는게 맞지요.



    > sql.add('select sum(don) sdon from where

    > sql.add(dondate>=:dondate1 and dondate<=:dondate2');

    위문장은 sum(don) 은 don 필드의 합계(sum: sql의 합계를 구하는 함수)를 구한것을 sdon 이라는 필드이름으로 사용하는 것이지요.

    그리고 두번째 문장은 dondate 가 dondate1 보다 크거난 같고 dondate 가 dondate2 보다작거나 같으면.....



    from 뒤에는 db table 이름이 없네요.

    sql.add('select sum(don) sdon from aaa);//aaa: table naem

    그리고

    sql.add(where dondate>=:dondate1 and dondate<=:dondate2'); 또는

    sql.add(where dondate between :dondate1 and :dondate2'); 로 사용하시면 되지요.



    > form2.edit3.text:=inttostr(fieldbyname(sdon).asinteger);

    위의 문장은 form2의 edit3.txt에 위에서 don의 합계의 필드명을 sdon 으로정해주었으니까 edit3.txt에는 don의 합계가 옮겨 지겠지요.

  • Profile
    하얀까마귀 2000.05.13 01:18
    안녕하세요 하얀까마귀 입니다..



    에러는 다른곳이 아니라 SQL문에서 day가 key word라서 생기는 겁니다.



    이건 필드명을 바꾸시던지 아니면 "테이블명".day라고 쓰시면 에러는 안날겁니다..



    그런데.. 이것보다는 필드명을 바꾸시는게 더 좋아 보이네요...



    그럼.. 즐거운시간 되세요



    - 하얀까마귀 -



    상현이라는 초보입니다. wrote:

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

    > //가 이 dm.guery1과 연결되어 있어야 겠지요..

    > begin

    > close;

    > sql.clear;

    > sql.add('Select * from where Dondate >= :dondate1 and Dondate <= :dondate');

    > //날짜 필드가 dondate라고 가정

    > paramByname('dondate1').asdatetime := StrToDate(edit1.text);

    > paramByname('dondate2').asdatetime := StrToDate(edit2.text);

    > open;

    > end;

    > form2.show;

    > 뭐 간단하게 이렇게 하면 form2.dbgrid에 조회한 자료를 출력될것입니다..

    > 합계는

    > With Dm.query1 do // 데이타 모듈에 쿼리가 있으면.. 물론 form2의 DBgrid

    > //가 이 dm.guery1과 연결되어 있어야 겠지요..

    > begin

    > close;

    > sql.clear;

    > sql.add('Select sum(don) sdon from where

    > sql.add('Dondate >= :dondate1 and Dondate <= :dondate');

    > //날짜 필드가 dondate라고 가정

    > paramByname('dondate1').asdatetime := StrToDate(edit1.text);

    > paramByname('dondate2').asdatetime := StrToDate(edit2.text);

    > open;

    >

    > form2.edit3.text := inttostr(fieldbyname(sdon).asinteger);

    > end;

    > form2.show;

    >

    > end;

    > `````````````````````````````

    > 저는 날짜 필드이름을 (day) 나머진 사실 금액이 아니라 용량(예:100.000g이어서그냥 100.000만 사용했음, 소수자리사용)이라서 그대로(yongyang)이란 필드이름을 사용했습니다. 그리고 디비를 만들때 날짜와 용량을 전부 그냥 A데이타형을 사용해서 만들었습니다.

    > 그런에 콰리을 사용해서 해보니 자꾸에러가 납니다.

    > 저는 모두 자동폼으로 만들었거든요, 이것때문일까요?

    > 그리고 이런

    > invaild use of keyword

    > token: day>=? 에러가 나타납니다.

    > 하늘맥님, 근데 SQL에서

    > select *from 필드이름

    > where day:=dondate1

    > where day:=dondate2

    > 이렇게 적어야 하나요?

    > 하늘맥님이 주신 것을 그대로 사용하니 잘안되어서 저 나름대로 적어서 사용했는데 저도 초보라서인지 잘안되네요.흑흑.

    > 그리고 하늘맥님

    > sql.add('select sum(don) sdon from where

    > sql.add(dondate>=:dondate1 and dondate<=:dondate2');

    > 과

    > form2.edit3.text:=inttostr(fieldbyname(sdon).asinteger);

    > 이 부분을 잘모르겠어요. 다시한번 부탁드립니다. 설명 좀 해주세요.

    > 빠른시일에 다시 연락 좀 주세요. 저 사실 이글 띄우고 계속 컴퓨터앞에만 있을 거예요.

    • 안희준
    • 2000.05.13 01:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.05.13 02:42
      안녕하세요. 최용일입니다. 타이머를 이용하세요. 타이머에서 [오류]창이 떠있는가를 검색해서 떠 있다...
    • 힙합인
    • 2000.05.13 01:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.05.13 03:16
      힙합인 wrote: > 안녕하세요 저는 슈퍼 왕초보 델파이하는 사람입니다. > 제가 하드에 저장된 DB자료가 ...
    • 어린왕자
      2000.05.13 02:40
      힙합인 wrote: > 안녕하세요 저는 슈퍼 왕초보 델파이하는 사람입니다. > 제가 하드에 저장된 DB자료가 ...
    • 최석기
      2000.05.13 00:46
      확인해보지 않아서 맞는가 모르겠네요.. 아마 다음과 같이 해야 할꺼 같은데... WorkSheet.Range['A1...
    • 이창영
    • 2000.05.13 00:29
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.05.13 01:21
      이재식 Wrote : 안녕하세요? 그런경우가 있을 것입니다. 이유는 like '뭐%'가 사실 Ansi SQL임에도 불...
    • 이창영
      2000.05.13 01:45
      이재식 wrote: > 이재식 Wrote : > 안녕하세요? > > 그런경우가 있을 것입니다. > 이유는 like '뭐%'...
    • 이재식
      2000.05.13 18:53
      > 역시 답변이 빠르군요. 감사! > 하지만 #은 쓸수없군요. 아마도 %만 쓸수있을듯 싶네요. > 제가 몇번해...
    • 바보
      2000.06.23 00:13
      > 죄송합니다. 제가 실수를 했군요. #이 아니라 *입니다. > 죄송합니다. 오타가 발생했군요. > 님의 말씀...
    • 조규춘
      2000.05.13 00:44
      대전왕초보입니다. wrote: > 인덱스가 중복이 되어서들 그렇다고 하는데요.... > 재가 이해가 안되는것은...
    • 2000.05.13 00:43
      대전왕초보입니다. wrote: > 인덱스가 중복이 되어서들 그렇다고 하는데요.... > 재가 이해가 안되는것은...
    • 이은정
      2000.05.12 22:54
      대전왕초보입니다. wrote: > 저는 TABLE를 DATABASE DESKTOP으로 만들었습니다. > 그래서 TABLE이 하드에...
    • azure
    • 2000.05.12 22:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.05.13 00:30
      azure wrote: > 퀵 레포트 중에 QRband나 QRgroup이 포함하고 있는 > DBText나 QRLabel보다 먼저 print ...
    • 레마
    • 2000.05.12 22:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • seagod
      2000.05.13 00:24
      sql을 클리어 하면 쿼리 컴포넌트에는 sql문이 없으니 open하면 에러나 나겠지요? 레마 wrote: > 콤...
    • 하얀까마귀
      2000.05.13 00:57
      안녕하세요 하얀까마귀 입니다... 어제 휴일은 잘 보내셨는지요.. 후후... 음 말씀하신 내용에서 사...
    • 주희
      2000.05.13 02:12
      감사합니다..꾸~벅~~하얀까마귀님.. 알려주신 팁 감사드립니다. > (근데 이경우 데이타셋이 오픈되면 ...
    • 하얀까마귀
      2000.05.13 03:50
      안녕하세요 하얀까마귀 입니다... 음.. 우선 changing 에서 어느 텝에서 발생을 하는지를 첵크 하세요.....
    • 하얀까마귀
      2000.05.13 01:09
      안녕하세요 하얀까마귀 입니다.. 이것도 몇번 답변한것 같은데.... 지로용지의 경우에 A3용지 크기의...
    • Mr.Q
    • 2000.05.12 21:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.05.12 22:26
      안녕하세요. 최용일입니다. Tab 키와 같은 다이얼로그키는 Key이벤트에서 잡히지 않습니다. 14543번 ...
    • 고보강
    • 2000.05.12 21:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      2000.05.12 21:56
      고보강 wrote: > BDE를 사용한 로컬DB가 있습니다. 작업을 하다 비정상적으로 프로그램이 다운되었을때 작...
    • 강민주
      2000.05.12 22:41
      델초보... wrote: > STringGrid에서 문자열이 길경우 제한을 주고 '...'으로 대체할라구 하는데 > 어떻게...
    • heimdal
    • 2000.05.12 21:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.05.13 01:33
      안녕하세요 하얀까마귀 입니다.. 음.. 이거 설명하자면 쬐끔 길어질것 같네요... 간단하게 설명할께...
    • 한창희
      2000.05.14 13:41
      상현이라는 초보입니다. wrote: > procedure TForm1.Button1Click(Sender: TObject); > begin > With D...
    • 하얀까마귀
      2000.05.13 01:18
      안녕하세요 하얀까마귀 입니다.. 에러는 다른곳이 아니라 SQL문에서 day가 key word라서 생기는 겁니다....
    • 어린왕자
      2000.05.12 20:33
      음...방금 다른 컴퓨터에서 되네요.. 이상타..날씨가 흐려서 컴퓨터가 기분이 조아서 그런가..
    • cos
      2000.05.12 20:43
      황선희 wrote: > > 테이블을 Paradox로 쓰고 있습니다.(Local DB) > > 그런데, current 값을 읽어오...
    • 황선희
      2000.05.13 01:03
      cos wrote: > 황선희 wrote: > > > > 테이블을 Paradox로 쓰고 있습니다.(Local DB) > > > > 그런데...