|
UniQuery1->SQL->Clear();
UniQuery1->SQL->Add("select COUNT(*) as cnt from aaa");
UniQuery1->Execute(); // UniQuery1->ExecSQL(); 쓰면 안된다.
short cnt = UniQuery1->FieldByName("cnt")->AsInteger;
또는,
UniQuery1->SQL->Clear();
UniQuery1->SQL->Add("select COUNT(*) from aaa");
UniQuery1->Execute(); // UniQuery1->ExecSQL(); 쓰면 안된다.
short cnt = UniQuery1->Fields->Fields[0]->AsInteger;
이걸 원하신건가요?
비베시러 님이 쓰신 글 :
: MS-SQL에서 table의 레코드 갯수를 어떻게 세는지 좀 알려주세요.
: 잘 안되어 답답한 마음에 올립니다.
: 우선 제가 해본것을 올려봅니다.
:
:
: 하기와 같이 데이터베이스(test01)을 선택하고
: UniQuery1->SQL->Clear();
: UniQuery1->SQL->Add("use test01");
: UniQuery1->Execute(); // UniQuery1->ExecSQL(); 쓰면 안된다.
:
: 하기와 같이 테이블(aaa)을 선택하고
:
: UniQuery1->SQL->Clear();
: UniQuery1->SQL->Add("select COUNT(*) from aaa");
: UniQuery1->Execute(); // UniQuery1->ExecSQL(); 쓰면 안된다.
:
:
: 이렇게 3가지를 해보았는데,
:
: UniQuery1->Last();
: int No = UniQuery1->RecordCount;
: print("Table RecCount = %d", No);
:
: No = UniQuery1->RecNo;
: print("Table RecCount = %d", No);
:
: No = UniQuery1->RecordSize;
: print("Table RecCount = %d", No);
:
: 레코더의 갯수는 안나오네요..
:
:
: SQL문으로 치면
: use test01
: select COUNT(*) from aaa
: 와 같은 것인데
:
: (열 이름없음)
: 1 3000000
:
: 이렇게 나옵니다. 즉 첫번째 리턴값을 참고 해야 하는데, 이것이 어렵네요.
: 알려주세요.
:
:
: 예전에는 하기와 같이 했었는데, 데이터가 많아지니 느려져서요
:
: TABLE 컴포넌트를 이용하여
:
: _Table->TableName = strTableName;
: _Table->Active = false; _Table->Active = true;
: _Table->Last();
: int No = _Table->RecordCount; // 총 레코드 숫자
: print("Table RecCount = %d", No);
:
: 이렇게 해보았느데, 속도가 느려서 개선 하려고 합니다
|