델파이가 Integer라는 것의 정의를 운영체제에 따라서 다르게
해석합니다..
즉, 16bit 운영체제이냐, 32bit 운영체제이냐에 따라서 integer의
크기를 정합니다..
제가 델파이4부터 test한 결과
윈도우 95,98(second edition제외)한 것들에서는 운영체제가
16bit이므로 integer의 size가 2byte 였던것으로 기억합니다..
(물론, 이것때문에 고생도 많이 했습니다..)
32bit 운영체제, 윈도우 98 secent edition이상의 버젼에서는
integer의 size가 4byte로 나타났습니다..
즉, 입력할 수 있는 값을 범위가 엄청 늘어났다는 뜻입니다..
따라서, 개발자분이 운영체제가 어떤 것이냐에 따라서
확인을 하셔야 합니다.
아마, 델파이 5부터는 기본으로 4byte를 잡도로 설정되어 있을 겁니다..
따라서, +- 20억?? 2억인가? 정도까지 입력값을 넣을 수 있습니다.
근데 Autoincrement에 값을 넣으시게요?
안 넣어도 자동으로 Database가 넣어줄텐데 말입니다..
이렇게 시간 내서 답변주셔서 감사합니다 ^^
제가 하려는 것이..
select문에서 'Select * From Custom Where customnum like :p1'
(customnum <-요게 문제의 Autoincrement입니다 ^^; )
SQL문 열때 파리미터 지정을
Query.paramByName('p1').??? =strtoint(aa);
이렇게 값을 얻어야 합니다..
(aa는 다른 그리드에서 셀을 클릭했을때 얻은 값이구요..)
메소드를 integer, smallint, 등등.. 다해봤는데..
모두 실행시 타입이 맞지 않는 다고 나오네요.. ㅠ.ㅠ
에러 메세지 내용을 정확히 올려주셨으면 답변을 들리텐데
제가 보기엔 SQL문에 문제가 있네여
Select * From Custom Where customnum like :p1
위 문장에서 customnum은 longint type인데
왜 like를 쓰셨나여?
like는 string변수 혹은 char변수에 대해서 검색할때 사용하는 것입니다..
따라서, type match에러가 날 수 있는데..
delphi에서 type match에러는 안 났을 것으로보이는군여
customnum을 문자로 type cast 하셔야 한다고 생각됩니다..
델파이가 Integer라는 것의 정의를 운영체제에 따라서 다르게
해석합니다..
즉, 16bit 운영체제이냐, 32bit 운영체제이냐에 따라서 integer의
크기를 정합니다..
제가 델파이4부터 test한 결과
윈도우 95,98(second edition제외)한 것들에서는 운영체제가
16bit이므로 integer의 size가 2byte 였던것으로 기억합니다..
(물론, 이것때문에 고생도 많이 했습니다..)
32bit 운영체제, 윈도우 98 secent edition이상의 버젼에서는
integer의 size가 4byte로 나타났습니다..
즉, 입력할 수 있는 값을 범위가 엄청 늘어났다는 뜻입니다..
따라서, 개발자분이 운영체제가 어떤 것이냐에 따라서
확인을 하셔야 합니다.
아마, 델파이 5부터는 기본으로 4byte를 잡도로 설정되어 있을 겁니다..
따라서, +- 20억?? 2억인가? 정도까지 입력값을 넣을 수 있습니다.
근데 Autoincrement에 값을 넣으시게요?
안 넣어도 자동으로 Database가 넣어줄텐데 말입니다..