2017-11-22 5 views
1

kann ich mehrere Datenbanken in indexeddb mit jsstore in angular2 haben.Kann ich mehrere Datenbanken in indexeddb mit Hilfe von jsstore

Bitte führen Sie mich, wie können wir dies erreichen. Bitte geben Sie dafür eine Syntax an.

wird dies die Leistung beeinträchtigen?

unten ist mein Servicecode

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); 
    }); 
} 

Der db erstellt wurde. Aber während das Einfügen ich schon erwähnt, müssen db sonst gibt es Fehler wie diese -

{ Name: "table_not_exist", Nachricht: "Table 'ArticleNew' does not exist" }

kann ich sehen, db Dort.

+0

Was Sie bisher versucht haben, abgesehen von dem Tutorial Sie verknüpft haben? Und bezüglich des Tutorials, was waren deine Probleme? Zeig uns bitte deine Arbeit. –

+0

können Sie pls helfen mir – kamalav

Antwort

1

Sie können mehrere Datenbanken erstellen, aber nur eine wird gleichzeitig funktionieren. Wenn Sie also zwei Datenbanken in einer App verwenden möchten, ändern Sie die Datenbank, indem Sie 'openDb' api aufrufen.

Also, wenn Sie Ihre Datenbank - DTSubscription, DTSubscriptionNew

Wenn Sie Abfrage für den db ausgeführt werden soll - DTSubscription. Die Abfrage wird so sein -

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

Wenn Sie Abfrage für db ausgeführt werden soll - ‚DTSubscriptionNew‘

Connection.openDb('DTSubscriptionNew'); 

Da Sie angular2 verwenden, i empfohlen werden zwei Service für zwei Datenbank zu definieren und behalte die JsStore-Verbindung gemeinsam. Auf diese Weise führt der bestimmte Dienst die Abfrage für eine bestimmte Datenbank aus.

Für weitere Informationen darüber, wie diese zu nutzen, zu sehen, Demo-Projekte für die Verwendung von zwei db in jsstore -

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

+0

Thanks.Ich habe Verbindungsobjekt nach Ihrem Vorschlag erstellt.aber ich bekomme {Name: "db_not_exist", Nachricht: "Datenbank 'DTSubscription' existiert nicht"} Fehler – kamalav

+0

ja es bedeutet db hat nicht erstellt. Der obige Code funktioniert nur, wenn db erstellt wurde, wenn Sie nicht sicher sind, ob db erstellt werden soll. Dann sollten Sie die Methode 'JsStore.isExist' verwenden, um die db-Verbindung zu erhalten. Lass mich meine Antwort aktualisieren. –

+0

Ich denke für Ihre Situation - zunächst erstellen db beim Laden der Seite und greifen Sie die Verbindung jedes Mal, wenn Sie die Abfrage ausführen müssen mit var con = new JsStore.Instance ('db_name'). –