2017-11-22 2 views
1

angular2에서 jsstore를 사용하는 indexeddb에 여러 데이터베이스를 가질 수 있습니까?jsstore를 사용하여 indexeddb에 다중 데이터베이스를 가질 수 있습니까?

우리가 어떻게이 일을 수행 할 수 있는지 안내해주세요. 이를위한 구문을 제공하십시오.

성능이 저하됩니까?

아래 내 서비스 코드

constructor(private _http:Http) 
{ 
    this._connection=new JsStore.Instance(); 
    let that=this, dbName='DTSubscription'; 
    JsStore.isDbExist(dbName,function(isExist) 
    { 
     if(isExist) 
     { 
      that._connection.openDb(dbName); 
     } 
     else 
     { 
      const Database=that.GetDatabase(); 
      that._connection.createDb(Database); 
     } 
    },function(err) 
    { 
     alert(err.Message); 
    }); 

    this._connection=new JsStore.Instance(); 
    let t=this, db2='DTSubscriptionNew'; 
    JsStore.isDbExist(db2,function(isExist) 
    { 
     if(isExist) 
     { 
      t._connection.openDb(db2); 
     } 
     else{ 
      const Database2=t.GetDatabase2(); 
      t._connection.createDb(Database2); 
     } 
    },function(err) 
    { 
    alert(err.Message); 
    }); 
} 

DB를 생성되었습니다입니다. 내가 그렇지 않으면이 같은 오류를 제공 DB를 언급 할 필요가 삽입하는 동안 그러나 -

데시벨은 내가 볼 수

{ 이름 : "table_not_exist는" 메시지 을 "테이블 'ArticleNew은'존재하지 않는"} 그곳에.

+0

를? 튜토리얼과 관련하여 문제는 무엇입니까? 너에게 일을 보여줘. 제발. –

+0

당신은 나를 도울 수 – kamalav

답변

1

여러 데이터베이스를 만들 수 있지만 한 번에 하나만 작동합니다. 따라서 앱에서 두 개의 데이터베이스를 사용하려면 'openDb'API를 호출하여 데이터베이스를 변경하십시오.

그래서 데이터베이스 인 경우 - DTSubscription, DTSubscriptionNew

당신은 DB에 대한 쿼리를 실행하려는 경우 - DTSubscription. 쿼리는 다음과 같이 될 것입니다 -

var Connection = new JsStore.Instance(); 
Connection.openDb('DTSubscription'); 

당신은 DB에 대한 쿼리를 실행할 때 - 'DTSubscriptionNew'당신이 angular2을 사용하고 있기 때문에, 나는 두 개의 데이터베이스에 대한 두 개의 서비스를 정의하는 것이 좋습니다 것입니다

Connection.openDb('DTSubscriptionNew'); 

및 JsStore 연결을 공통으로 유지하십시오. 이렇게하면 특정 서비스가 특정 데이터베이스에 대한 쿼리를 실행합니다.

이를 사용하는 방법에 대한 자세한 정보를 들어

는 jsstore 두 DB를 사용하는 데모 프로젝트를 살펴 - 당신은 당신이 연결 한 튜토리얼에서 지금까지 옆으로 시도 무엇

https://github.com/ujjwalguptaofficial/multipledb-in-jsstore

+0

고맙습니다. 당신의 제안에 따라 연결 개체를 만들었습니다.하지만, {이름 : "db_not_exist"메시지 : "데이터베이스 'DTSubscription'이 존재하지 않습니다.}} 오류 – kamalav

+0

예. 생성되지 않았습니다. 위의 코드는 db 생성에 대해 잘 모르는 경우 db가 생성 된 경우에만 작동하며 'JsStore.isExist'메서드를 사용하여 db 연결을 얻어야합니다. 내 대답을 업데이트하겠습니다. –

+0

나는 당신의 상황에 대해 생각한다. 먼저 페이지로드시 db를 생성하고 var con = new JsStore.Instance ('db_name')를 사용하여 쿼리를 실행해야 할 때마다 연결을 잡는다. –

관련 문제