게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.
* 고객시스템명 : KIBNET
* GAUCE 버전 :
* WAS 종류(WebLogic 등등) :
* DB 종류 :
* 문의 유형(질문/요청/참조) : 질문
* 내용 : 파일을 데이터셋으로 읽어들인후 테이블에 저장할때 숫자값 처리 문제입니다.
버튼을 두개 달고 1번버튼으로 파일을 데이터셋에 불러놓고 2번버튼 눌러 인서트문 수행시
특정 컬럼값을 DB에 숫자값으로 저장하고 싶습니다만 잘 안되네요.
function btn_import_01() // 테이블에 인서트하는 버튼
{
ds_01.UseChangeInfo = "false";
on_makeHead();
alert("UseChangeInfo" + ds_01.text);
....
....
tr_01.Post();
ds_01.ResetStatus();
}
function Open_File() // 파일 불러오는 버튼
{
form_01.if_01.OpenFileName = "C:\upload\test.csv";
form_01.if_01.Open();
ds_01.ClearAll();
ds_01.DataID = form_01.if_01.Value;
ds_01.Reset();
form_01.file_nm_01.value = form_01.if_01.value;
}
//아래는 tr을 처리하는 소스중 일부 입니다.
GauceInputStream gis = ((HttpGauceRequest) request).getGauceInputStream();
GauceOutputStream gos = ((HttpGauceResponse) response).getGauceOutputStream();
try
{
//Client로부터 전송된 DataSet
GauceDataSet dSet = gis.read("INPUT_01");
conn = .....
if( dSet != null )
{
//칼럼의 index
int ITEM_LEN = dSet.indexOfColumn("ITEM_LEN");
int GUBUN = dSet.indexOfColumn("GUBUN" );
GauceDataRow[] rows = dSet.getDataRows();
for (int i = 0; i < rows.length; i++)
{
//Insert
if(rows[i].getJobType() == GauceDataRow.TB_JOB_INSERT)
{
StringBuffer buff = new StringBuffer();
buff.append("INSERT INTO table");
buff.append(" ( ITEM_LEN,GUBUN) ");
buff.append("VALUES ( ? ,? ) ");
Insert = buff.toString();
PreparedStatement psmt= conn.prepareStatement(Insert);
try
{
psmt.setInt (1 ,rows[i].getInt(ITEM_LEN));
psmt.setString (2 ,rows[i].getString(GUBUN));
....
요렇게 했을때, 인서트시 "50015 " 오류가 발생합니다 (ClassCastException)
데이터셋에 있는 데이터를 인서트시 강제로 형변환 해줄 방법이 있을까요?
SetDataHeader 는 여기저기 써봤습니다만 해결이 안됩니다. 조언 부탁드려요
* 기술지원44님에 의해서 게시물 이동되었습니다 (2008-02-14 09:42)