C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54842] Re:TINYINT 형에 맞는 ftXXXX 가 있나요?
박지훈.임프 [cbuilder] 1683 읽음    2008-10-10 16:56
SQL 서버를 말씀하시는 것 같군요. SQL 데이터 타입들은 데이터베이스에 따라 많이 다르므로, 다음에 질문하실 때는 사용하시는 데이터베이스를 함께 알려주셔야 답변을 하실 분도 애매하지 않으니 답변 쓰기도 편하고 또 정확한 답변이 올라올 수 있습니다.

SQL 서버의 tinyint는 표준 SQL의 타입이 아니며, SQL 서버 등 몇몇 디비에만 존재하는 타입이며 0~255 값을 가질 수 있는 1바이트 정수 타입입니다. C++빌더와 델파이의 2007까지의 버전에는 1바이트 변수를 다룰 수 있는 필드 타입이 없습니다.

하지만 2009 버전에서 두가지 1바이트 정수 필드 타입이 추가되었습니다. TFieldType 값으로는 ftShortint와 ftByte이고, TField 클래스로는 TShortintField와 TByteField입니다. 둘 다 1바이트인 것은 동일한데, ftShortint는 음, 양의 두가지 값을 가질 수 있어 범위가 -128~+127이 되고, ftByte는 음의 값을 가질 수 없어 0~255의 값을 가질 수 있습니다.

따라서 원하시는 SQL 서버 tinyint 타입에 해당하는 VCL 데이터 타입은, 2007 버전 이하에서는 존재하지 않고, 2009 버전 이상에서는 ftByte를 쓰시면 됩니다.

참고로, 2009 버전에서는 ftShortint, ftByte 외에도 ftLongWord, ftExtended, ftConnection, ftParams, ftStream 등이 더 추가되었습니다. ftLongWord는 0~4294967295 범위를 가지는 32비트 언사인드 정수이고, ftExtended는 10바이트 크기를 가지는 가장 큰 부동소수점 실수 타입입니다.

그럼...


넘초보 님이 쓰신 글 :
: CREATE PROCEDURE Test
:     @v    TINYINT
: AS
: BEGIN
:     SELECT * FROM MyTAble WHERE Value = @v
: END
:
: 위와 같이 인자로 TINYINT 형을 받는 프로시저가 있습니다.
:
: 빌더에서
:
: DataType = ftInteger;
: Direction = pdInput;
: Value = MyValue;
:
: 와 같이 ftInteger 형의 값을 넘길경우
:
: "데이터 형식 int을(를) tinyint(으)로 변환하는 중 오류가 발생했습니다"
:
: 위와 같은 오류가 나네요..
:
: TINYINT 에 맞는 ftInteger 류의 네임이 있는가 궁금합니다.
:
: ftByte 를 써도 안되고...먼가 오류가 나네요.
:
: 그래서 일단 프로시저 인자를 TINYINT 가 아닌 INT 로 설정해서 돌리고는 있네요..

+ -

관련 글 리스트
54835 TINYINT 형에 맞는 ftXXXX 가 있나요? 넘초보 1356 2008/10/09
54842     Re:TINYINT 형에 맞는 ftXXXX 가 있나요? 박지훈.임프 1683 2008/10/10
54910         Re:Re:자세한 답변 감사합니다. 몇가지 정보를 빼고 적었네요..근데도..^.^ 넘초보 1080 2008/10/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.