2011-03-18 2 views
1

내 응용 프로그램은 일부 데이터베이스 연결 (sqllite)을 만들고 일부 기본 데이터베이스 작업 (삽입, 삭제, 검색)을 수행합니다.이 코드는 시뮬레이터에서는 완벽하게 작동하지만 전화에서는 작동하지 않습니다. , 어느 누구도 이것을 극복하는 데 도움이 될 수 있습니까, 사전에 감사드립니다. 나는 데이터를 삽입하기 위해 다음의 코드를 사용했다. 나는 이미 데이터베이스와 테이블을 생성하는 코드를 추가했다. 그리고 난 내 응용 프로그램의 폴더에 폴더 SDCard에를 작성,sqlite는 시뮬레이터에서는 작동하지만 장치에는 작동하지 않습니다.

public void insertInTotblFavStationList(String url,String StationName,String imageUrl,String bitRate,String formats){ 
     try { 
      URI uri = URI.create("file:///SDCard/Databases/myDb.db"); 
      Statement statement =null; 
      Database grabDB = null; 
      grabDB = DatabaseFactory.open(uri); 
      statement = grabDB.createStatement("insert into tblFavStationList(url,StationName,StationImage,Bitrate,Formats) values (?,?,?,?,?)"); 
      statement.prepare(); 
      statement.bind(1, url); 
      statement.bind(2, StationName); 
      statement.bind(3, imageUrl); 
      statement.bind(4, bitRate); 
      statement.bind(5, formats);   
      statement.execute(); 
      statement.close(); 
      grabDB.close(); 
      System.out.println("ins"); 

     } catch (Exception e) { 
      System.out.println(e); 
     } 

    } 
+0

장치에서 작동하지 않는다는 것을 어떻게 알 수 있습니까? –

+0

나는 예외적으로 net.rim.device.api.database.DatabasePathException : 경로 이름이 잘못되었습니다. 경로에 적절한 루트 목록이 없습니다. 자세한 내용은 FileSystemRegistry 클래스를 참조하십시오. – Jisson

+0

테이블에서 메뉴 검색 데이터를 만들고 목록 필드에 displys, 그 목록을 비어있어 – Jisson

답변

2

내 BB가 내 MacBook에 연결되어 있어도 USB 파일 공유가 해제 된 경우에도 SD 카드가 마운트 된 것 같습니다. 즉, 거기에 저장된 모든 데이터베이스 파일에 액세스 할 수 없으며 "잘못된 경로 이름"이 표시됩니다.

카메라 앱으로 이동하여 SDCard가 마운트되었는지 확인하십시오. 카메라 앱으로 이동하면 사진을 저장할 수 없다는 경고가 표시됩니다.

앱을로드 한 다음 USB를 분리 해보세요. 그것은 당신이 제대로 디버그 할 수 없다는 것을 의미하기 때문에 고통 스럽습니다.

0

SQLLite는 블랙 베리 버전 5까지 작동합니다. 어떤 휴대 전화 모델을 사용하고 있습니까? 그것은 당신의 문제 일 수 있습니다. 또한 전화가 던지는 오류를 게시 할 수 있습니까?

또한 코드 서명과 관련 될 수도 있습니다. SQLite는 응용 프로그램에 코드 서명을 요구합니다. 시뮬레이터에는 필요하지 않지만 그것은 휴대 전화 용입니다. 그것은 작동하는데 사용하는 API 때문입니다. Code Sign

+0

나는 전화로 테스트 한 블랙 베리 버전 5를 사용하고 있습니다. 블랙 베리 볼드 9000 – Jisson

+0

경로 때문에 비슷한 문제가 있습니다. 이름은 "SDCard"여야합니다 ... 예 : 문자열 dbpath = "/ SDCard/databases /"; – Cesar

+0

다음으로 시도해보십시오. URI uri = URI.create ("/ SDCard/Databases/myDb.db"); 그런 다음 데이터베이스를 열려면 "file : //" – Cesar