Q&A

  • query로 열 수를 세는 법좀용...
디비는 mdb를 쓰고요... 자꾸 안되네요..

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

var aaa:integer;

:

with form4 do begin

query2.close;

query2.sql.clear;

query2.sql.add('select count(*) as aaa from 인증번호');

showmessage('aaa= '+inttostr(aaa));

query2.open;

aaa := form4.query2.ParamByName('aaa').asInteger;

form4.edit3.Text := inttostr(aaa);

end;

-=--------------------------------------------------

폼4에 있는 '인증번호' 테이블안에 있는 것입니다....(필드는 사용자번호, 등록번호입)

근데요, 메세지(5줄)에서는 'aaa=7172756'이라는 숫자가 나와요...

에러 메세지는요.. '사용자 번호를 query2'에서 찾을수가 없데요...

7  COMMENTS
  • Profile
    어린왕자 2000.05.23 19:07
    레코드수(행)는..Recordcount이구요..

    필드수(열)은..Fieldcount입니다..다 아시져?

    그전에 쿼리를 실행시켜야겠져?..open..말이예요..

    이게 맞나 해보세요..

    실은 저두 완전 초보거든요..죄송..

  • Profile
    구철수 2000.05.23 18:52
    코딩에서...



    var aaa:integer;

    :

    with form4 do begin

    query2.close;

    query2.sql.clear;

    query2.sql.add('select count(*) as aaa from 인증번호');

    query2.open;

    aaa := query2.FieldByName('aaa').AsInteger;

    edit3.Text := inttostr(aaa);

    end;



    이렇게 해야 될것 같은데... 맞죠? ^_^;

    궁금한거 있으시면 메일주세요.



    올랭이 wrote:

    > 디비는 mdb를 쓰고요... 자꾸 안되네요..

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

    > var aaa:integer;

    > :

    > with form4 do begin

    > query2.close;

    > query2.sql.clear;

    > query2.sql.add('select count(*) as aaa from 인증번호');

    > showmessage('aaa= '+inttostr(aaa));

    > query2.open;

    > aaa := form4.query2.ParamByName('aaa').asInteger;

    > form4.edit3.Text := inttostr(aaa);

    > end;

    > -=--------------------------------------------------

    > 폼4에 있는 '인증번호' 테이블안에 있는 것입니다....(필드는 사용자번호, 등록번호입)

    > 근데요, 메세지(5줄)에서는 'aaa=7172756'이라는 숫자가 나와요...

    > 에러 메세지는요.. '사용자 번호를 query2'에서 찾을수가 없데요...

  • Profile
    올랭이 2000.05.23 19:08
    밑에 처럼 하면요.....담과 같은 메세지가 뜨네요..

    =---------------------------------------

    query2:field '사용자번호' not found

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

    가 뜨네요....('사용자번호'는 테이블4의 query2의 필드임)



    구철수 wrote:

    > 코딩에서...

    >

    > var aaa:integer;

    > :

    > with form4 do begin

    > query2.close;

    > query2.sql.clear;

    > query2.sql.add('select count(*) as aaa from 인증번호');

    > query2.open;

    > aaa := query2.FieldByName('aaa').AsInteger;

    > edit3.Text := inttostr(aaa);

    > end;

    >



  • Profile
    구철수 2000.05.23 19:25
    혹시 해당 TQuery 를 더블클릭한 후 '사용자번호' 필드를 올려놓았는지 확인해 보세요.

    TQuery에 필요한 필드만 올려놓았을 경우에 count(*) 등으로 엉뚱한 SQL문장을 사용하면 당연히 에러가 납니다. 그럼...



    올랭이 wrote:

    > 밑에 처럼 하면요.....담과 같은 메세지가 뜨네요..

    > =---------------------------------------

    > query2:field '사용자번호' not found

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

    > 가 뜨네요....('사용자번호'는 테이블4의 query2의 필드임)

    >

    > 구철수 wrote:

    > > 코딩에서...

    > >

    > > var aaa:integer;

    > > :

    > > with form4 do begin

    > > query2.close;

    > > query2.sql.clear;

    > > query2.sql.add('select count(*) as aaa from 인증번호');

    > > query2.open;

    > > aaa := query2.FieldByName('aaa').AsInteger;

    > > edit3.Text := inttostr(aaa);

    > > end;

    > >

    >

  • Profile
    윤병익 2000.05.23 18:18
    안녕하세요... 델초봅니다...

    열 수를 세는 방법이라.... 지금 사용하신 것도 열수를 세는 방법중 하나구요..

    또하나는...

    Query2.RecordCount라는 것을 사용 하면.. 됩니다....

    Query2.SQL.Add('Seledt Count(*) as aaa from 인증번호');

    이걸 사용하시려면....

    RecordCount:=Query2.SQL.Add('Seledt Count(*) as aaa from 인증번호');

    이렇게 하면 될거 같습니다.. 여기서 RecordCount는 변숩니다... Integer

    그럼 즐코딩하세요...





    올랭이 wrote:

    > 디비는 mdb를 쓰고요... 자꾸 안되네요..

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

    > var aaa:integer;

    > :

    > with form4 do begin

    > query2.close;

    > query2.sql.clear;

    > query2.sql.add('select count(*) as aaa from 인증번호');

    > showmessage('aaa= '+inttostr(aaa));

    > query2.open;

    > aaa := form4.query2.ParamByName('aaa').asInteger;

    > form4.edit3.Text := inttostr(aaa);

    > end;

    > -=--------------------------------------------------

    > 폼4에 있는 '인증번호' 테이블안에 있는 것입니다....(필드는 사용자번호, 등록번호입)

    > 근데요, 메세지(5줄)에서는 'aaa=7172756'이라는 숫자가 나와요...

    > 에러 메세지는요.. '사용자 번호를 query2'에서 찾을수가 없데요...

  • Profile
    올랭이 2000.05.23 18:38
    답변해 주셔서 감사합니다.

    하지만,, 잘 안되는 군요....(정확한 코딩을 ...)

    혹시 제가 하는 방법에서는 왜 에러가 나는지 그게 궁금합니다.





    윤병익 wrote:

    > 안녕하세요... 델초봅니다...

    > 열 수를 세는 방법이라.... 지금 사용하신 것도 열수를 세는 방법중 하나구요..

    > 또하나는...

    > Query2.RecordCount라는 것을 사용 하면.. 됩니다....

    > Query2.SQL.Add('Seledt Count(*) as aaa from 인증번호');

    > 이걸 사용하시려면....

    > RecordCount:=Query2.SQL.Add('Seledt Count(*) as aaa from 인증번호');

    > 이렇게 하면 될거 같습니다.. 여기서 RecordCount는 변숩니다... Integer

    > 그럼 즐코딩하세요...

    >

    >

    > 올랭이 wrote:

    > > 디비는 mdb를 쓰고요... 자꾸 안되네요..

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

    > > var aaa:integer;

    > > :

    > > with form4 do begin

    > > query2.close;

    > > query2.sql.clear;

    > > query2.sql.add('select count(*) as aaa from 인증번호');

    > > showmessage('aaa= '+inttostr(aaa));

    > > query2.open;

    > > aaa := form4.query2.ParamByName('aaa').asInteger;

    > > form4.edit3.Text := inttostr(aaa);

    > > end;

    > > -=--------------------------------------------------

    > > 폼4에 있는 '인증번호' 테이블안에 있는 것입니다....(필드는 사용자번호, 등록번호입)

    > > 근데요, 메세지(5줄)에서는 'aaa=7172756'이라는 숫자가 나와요...

    > > 에러 메세지는요.. '사용자 번호를 query2'에서 찾을수가 없데요...

  • Profile
    윤병익 2000.05.23 18:58
    죄송합니다만.. 왜 에러가 난다구 콕 찝기가 그러내요...

    > > > var aaa:integer;

    > > > :

    > > > with form4 do begin

    > > > query2.close;

    > > > query2.sql.clear;

    > > > query2.sql.add('select count(*) as aaa from 인증번호');



    > > > showmessage('aaa= '+inttostr(aaa));

    요부분은 아마도 0이 아니면 이상한 값이 나오지 않을까 생각됩니다..

    Query에서 사용한 aaa는 var aaa:Integer와는 전혀 관계가 없는

    놈이라고 생각됩니다...

    그렇기 때문에 aaa의 값을 ShowMessage해도 aaa의값이 주어지지

    않았기 때문에 0아니면 이상한 값이 나오지 않을까 생각됩니다..

    아마도 델파이는 0이 나오는걸로 알고 있습니다...

    글구 Query2.Open을 하기 전까지는 Query2가 실행되지 않는다고

    생각하면 될것같습니다...



    > > > query2.open;



    > > > aaa := form4.query2.ParamByName('aaa').asInteger;

    이부분도 이해하기가 힘든 소슨데요... 저두 잘 모르겠네요..

    ParamByName는 요럴때 사용하는데...

    {Sample}

    Query1.Close;

    Query1.SQL.Clear;

    Query1.SQL.Add('Select * From Table Where UserID = :사용자번호');

    Query1.ParamByName('사용자번호').AsString:='A12345';

    Query1.Open;

    요렇게 사용합니다... 이런걸 파라미터 쿼리하구 하더라구요...



    Query1.ParamByName('사용자번호').AsString:='A12345';

    요것을 않쓰면..

    Query1.SQL.Add('Select * From Sample Where UserID='''+A12345+'''');

    요렇게 쓰면 됩니다...



    > > > form4.edit3.Text := inttostr(aaa);

    > > > end;



    그러니까.. 열 수를 구하실려면....



    Var RecordCout:Integer;



    With Form4 do

    begin

    Query2.Close;

    Query2.SQL.Clear;

    Query2.SQL.Add('Select * From 인증번호')

    Query2.Open;



    RecordCount:=Query2.RecordCount;

    Edit3.Text := IntToStr(RecordCount);

    end;

    이렇게 하시면 됩니다...

    제가 잡소리가 많았던것 같습니다... 암튼 돔이 됐음 합니다..

    그럼....

    그럼 즐코딩하세요...