오라클에 실수형 데이타를 입력하려합니다. 그럴려면 오라클 필드의 형식은 무엇으로정의해야 합니까?? 참고로 저는 number(13,2)로 정의 했구요. 그리고 여기에 델파이로 작성한 프로그램으로 데이타를 입력하려 합니다. 데이타 입력을 위해 에디트 박스를 사용했습니다. 그런데 데이타가 입력되질 않습니다. 도와주세요...
아래엔 제가 사용한 문장입니다.
sql.add('insert into test');
sql.add('test-1');
sql.add('values(:test-1)');
parambyname('test-1').asfloae := strtofloat((edt_test1).text);
execsql;
에디트 박스이외에 currencyedit 도 사용해 봤습니다. 그런데도 값이 입력될질 않습니다.
도와 주세요...
저희 오라클 서버가 다운되어 있어 내일쯤 복구가 가능할 것 같습니
다. 그전에 먼저 몇가지 사항을 Test 해보세요.
이것은 프로그램 소스에 문제인지 아니면 외부 환경에 문제가 있는
것인가를 확인하려는 것입니다.
먼저 델파이 SQL Explorer 에서 직접 실수형을 입력해 보십시오.
SQL Explorer에서 해당 테이블을 선택한 후 Data 탭을 선택후 직접
값을 입력해 봅니다. 1234.00 과 1234.12를 입력해서 에러 여부를
확인합니다.
에러가 없다면 Enter SQL 탭에서 SQL 문을 실행합니다.
즉
insert into test (test-1)
values (1234.00)
과
insert into test (test-1)
values (1234.12)
를 실행했을 때 에러여부를 확인합니다.
이 또한 에러가 없다면 이번에는 프로그램에서 직접 값을 대입합
니다. ParamByName으로 값을 넘기는것이 아니라 SQL 문에 직접
값을 입력하는것이지요.
sql.clear; ---> 이거 반드시 넣어주세요.
sql.add('insert into test');
sql.add('(test-1)');
sql.add('values(1234.00)');
execsql;
와
sql.clear; ---> 이거 반드시 넣어주세요.
sql.add('insert into test');
sql.add('(test-1)');
sql.add('values(1234.12)');
execsql;
를 실행해 보십시오.
이래도 에러가 없으면 값을 ParamByName으로 입력해 보세요.
sql.add('insert into test');
sql.add('(test-1)');
sql.add('values (:test-1)');
ParamByName('test-1').AsFloat := 1234.00;
or
ParamByName('test-1').AsFloat := 1234.12;
execsql;
이래도 에러가 없으면 edit 에서 입력을 한 값을 치환해서
에러 여부를 확인합니다.
마지막으로 오라클 버전이 8.xx 라면 새로운 BDE 패치버전을 설치하셔야
합니다.
이상이 제가 검사할 수 있는 모든 경우가 되겠습니다.
그리고 검사 결과를 알려주세요. 저도 궁금합니다.
에러가 발생하면 프로그램 소스를 보내주세요. 제가 확인해
드리겠습니다.