2011-11-02 3 views
0

비슷한 게시물을 몰래 들었지만 해결책이 없습니다. 데이터베이스에 값을 삽입하려고하면이 예외가 발생합니다.BlackBerry에서 java.lang.OutOfMemoryError

INSERT = "INSERT INTO topnews (sid, headline, metadata, content, image_path,   image_caption , article_id, print_order, art_date, t_stamp) "+ 
"VALUES("+_sid+",'"+_headline+"','"+_metadata+"','"+_content+"','"+_imagePath+"','"+_imageCaption+"',"+_articleId+",'"+_printOrder+"','"+_artDate+"','"+_tStamp+"');"; 
    byte[] i = INSERT.getBytes(); 
    long l = i.length; 
    System.out.println("INSERT STATEMEN"+INSERT); 
    _statement = _dbTopNews.createStatement(INSERT);   //EXCEPTION 
    _statement.prepare(); 
    _statement.execute(); 
    _statement.close(); 

삽입하려는 쿼리의 길이를 알아 냈습니다. 4000 미만이 삽입되었을 때 예외가 발생하지 않았습니다. 이 특정 쿼리는 던진 예외는 4300입니다. 동일한 쿼리가 Android 개발 환경에서 정상적으로 실행되고 있습니다. 오류가 발생하지 데이터베이스에 sqlite 통해 동일한 쿼리를 삽입하는 시도했다. 나는 이것이 거대한 크기가 아닌 괜찮은 크기라고 생각한다.

답변

4

프리 OS 7에서 쿼리 길이 제한은 4KB입니다. 한계를 극복하려면 OS 7이 필요합니다.

확인 Release Notes - BlackBerry Java SDK - 7.0 :

쿼리 지금까지 1메가바이트 수 있습니다. BlackBerry Java SDK 6.0에서 쿼리 길이 제한은 4GB

+0

입니다. 감사합니다. Arhimed, 내가 하루 종일 고민하고있는 문제. 매개 변수화 된 업데이트를 사용하여이를 극복 할 수 있습니까? 4000 문자 이상 * 1byte의 쿼리에 대해서는 예를 들어 outofmemoryerror가 발생했습니다. – ayachama

+1

@Newbie : 죄송합니다, unfortunatelly 저는 BB에서 SQLite에 대한 경험이 없습니다 (RIM이 OS 5 또는 6에서만 SQLite 지원을 추가 한 이후로 파일 저장 공간을 사용하고 있지만 이전 OS 장치는 지원하므로) " 이것은 매개 변수화 된 업데이트를 사용하여 극복 할 수 있습니다. " 당신은 당신 자신의 것을 시도 할 필요가 있습니다. –

+0

@arihmed : 대단히 감사합니다. 당신은 커다란 슬픔에서 나를 구해줬습니다. D – ayachama

관련 문제