App mit WebSQL

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • App mit WebSQL

    Hallo zusammen,

    ich habe ein kleines Problem. Ich erstelle eine neue DB und erzeuge eine Tabelle in die ich etwas hinzufügen möchte.

    Eben ging das noch, bis ich den History Eraser angewandt habe, um die DB und Tabelle zu löschen. Ich hatte Probleme mit der ID.

    Ich erhalte immer den Fehler: code: 5
    message: "could not prepare statement (1 no such table: profile)"

    Kann mir bitte jemand helfen?
    Danke :D
    Ich nutz den Chromebrowser.

    Dies ist mein Code:

    Quellcode

    1. $(document).ready(function(){
    2. addCustomer();
    3. });
    4. if(window.openDatabase) {
    5. var databaseSize = 50 * 1024 * 1024; //(50 MB)
    6. var database = openDatabase("Carzeug", "1.0", "Carzeug Customer Management", databaseSize);
    7. database.transaction(function(transaction){
    8. transaction.executeSql("CREATE TABLE IF NOT EXISTS profile" +
    9. "(id INTEGER PRIMARY KEY AUTOINCREMENT, " +
    10. "firstname TEXT)", function(transaction, success){console.log("Success") },
    11. function(transaction, error){console.log("Error")});
    12. });
    13. } else {
    14. alert("WebSQL wird nicht unterstützt.");
    15. }
    16. function addCustomer(){
    17. if(database){
    18. $(".nav__link--newProfile").bind("click", function(){
    19. var firstname = $(".personal-item__field.firstname").val();
    20. var firstnameAttribute = $(".personal-item__field.firstname");
    21. if(firstname !== "" && firstname !== firstnameAttribute.attr("rel")){
    22. database.transaction(function(transaction){
    23. transaction.executeSql("INSERT INTO profile VALUES (NULL, ?);", [firstname],
    24. insertSuccess, insertError);
    25. });
    26. // cookie / localstorage
    27. console.log("Database: ", database)
    28. //window.open("profileoverview.html", "_self");
    29. } else {
    30. alert("Bitte fülle alle markierten Felder mit einem gültigen Wert aus!")
    31. $(".personal-item__field.firstname, .car-item__field.brand, .car-item__field.model").addClass("is-error");
    32. $(".personal-item__field.is-required, .car-item__field.is-required").val($(".personal-item__field.is-required, .car-item__field.is-required").data("rel"));
    33. }
    34. });
    35. } else {
    36. alert("database does not exist");
    37. }
    38. }
    39. function insertSuccess(transaction, success) {
    40. console.log("Success: ", success);
    41. window.open("profileoverview.html", "_self");
    42. }
    43. function insertError(transaction, error) {
    44. console.log("Error", error);
    45. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sarah1991 ()

  • Hallo Sarah1991,

    mir sind zwei dinge spontan aufgefallen.
    Wenn es sich bei deinem Code um eine Cordova App handelt, müsstest du folgendes berücksichtigen:
    - Vermeide alert und verwende stattdessen das Standard Plug-In von Cordova für Dialoge (github.com/apache/cordova-plugin-dialogs).
    Ansonsten bekommst du unschöne Seiteneffekte auf unterschiedlichen Plattformen.
    Zum Beispiel erhält deine MessageBox unter iOS einen "index.html"-Titel :)
    - Versuche auf JQuery zu verzichten. Ist zwar eine schöne Einstiegsdroge zu JavaScript, ist aber aus Performancesicht gerade für mobile Geräte tödlich.
    Verwende dazu doch AngularJS. Es ist einfach und schnell. Gerade Angular2 ist schneller wie ReactJS und deine Anwender werden es dir danken.

    An welcher Stelle wird dein Fehler ausgegeben? Zeile 13?

    Cheers,
    BFreakout