SQLQuery.Fields[0].AsInteger
로 쓰거나
SQLQuery.Command := 'SELECT Count(*) as COUNTS FROM TableName';
SQLQuery.FieldByName('COUNTS').AsInteger;
철갑 님이 쓰신 글 :
: 오랑캐꽃 님이 쓰신 글 :
: : 요새 제가 MySQL을 가지고 노느라... 능력부족인데도 자꾸 답변을 드리게 되네요~~ ^^;;
: :
: : 테이블이나 쿼리는 TDataSet 에서 상속되었고 이 DataSet 객체에는 현재 레코드를 가리키는 커서란 개념이 있습니다.
: : 이 커서는 Next, Prior, Last, First 등의 메소드로 이동시킬 수 있지요.
: : 원하는 레코드에 커서를 두고 커서가 놓인 레코드의 컬럼값은 Fields[], 또는 FieldByName() 등으로 조회하게 됩니다.
: :
: : 요약하면, 몽땅 읽어오는 게 아니라 레코드단위로 읽는다는 이야기입죠.
: :
: :
: : 혹시 시간이 나신다면, PHP로 MySQL을 다뤄보세요. 복잡한 거 말고 쿼리 날리고 결과 출력하는 정도만요.
: : 그 다음에 dbxopenmysql 코드를 보시면 PHP에서 썼던 MySQL 함수들과 흡사한 녀석들이
: : 델파이의 요청에 의해 어떻게 동작하는지 보이게 되고 답답함이 조금은 풀리실 꺼에요. ^^;;
:
: 말씀하신건 어느정도 이해가 되었는데 딱 두가지만 더 물어보고 싶은데요 ㅠㅠ
:
: TSQLQuery.SQL := 'select count(*) from `tablename`';
: TSQLQuery.open();
: 하고나서
:
: TSQLQuery.FieldByName('Count(*)').Value
:
: 하면 계속 오류가 나고 프로바이더 이용해서 데이터셋 구성해서 다시 count(*)구하는게 잘 안되던데 특별한 문자열을 써야하나요?
:
: 으으 다른 명령은 그럭저럭 되어가는데 count(*)을 이용한 구성을 하면 자꾸 없는 컬럼을 참조한다고 뭐라고 합니다.
:
: FieldList나 fields를 이용해서 필드 이름만 쭉 나열해 볼수있는거라도 있으면 거기서 찾아서 참조할 이름을 보면 될 것 같은데 안되서 답답합니다.
:
: 아니면 인덱스로 참조할수 있다거나 그런 방법은 없는걸까요.
|