Android kein Zugriff möglich

Startseite Foren Deutsches LiveCode-Forum Android kein Zugriff möglich

Ansicht von 14 Antwort-Themen
  • Autor
    Beiträge
    • #17295
      Radmuehl
      Teilnehmer

        Es ist soweit. Die App ist eigentlich fertig und funktioniert als Windows-Version. Unter Android leider nicht. Bei der Fehlersuche bin ich darauf gekommen, dass es an den Zugriffen zu Dateien und Datenbank liegen muss.

        Zum Hintergrund:
        Ich lese in der App Grunddaten aus Textdateien ein. Nach Änderung werden sie wieder in die Texdateien geschrieben.

        Das funktioniert unter Android nicht.

        Die App greift auf meine SQLite-Datenbank zu, auch das scheint unter Android nicht zu gehen. Ich kann keine neuen Daten erfassen und auch keine bestehenden Datensätze löschen.

        Unter den Standalone Application Settings habe ich mal alle Rechte die anklickbar sind eingestellt. Die benötigten Dateien, aus denen ich lese und hineinschreibe, habe ich unter Copy Files angegeben. Auch die Datenbank.

        Jetzt bin ich mal wieder mit meinem Latein am Ende.

        Viele Grüße

        Dieter

      • #17297
        Klaus Major
        Administrator

          Hi Dieter,

          alles, was Du unter “Copy files” der Runtime hinzufügst, findest Du dann in
          -> specialfolderpath(“resources”), dürfte Dir bekannt sein.
          ABER da haben wir keine Schreibrechte, daher rührt wahrscheinlich Dein Ungemach.

          Du musst alles, was bearbeitet werden soll, beim ersten Programmstart in diesen Ordner kopieren:
          -> specialfolderpath(“documents”)
          DA dürfen wit tun und lassen, was wir wollen. 🙂

          Siehe hier für Hinweise, wie das zu bewerkstelligen ist:
          https://www.livecode-blog.de/forums/topic/sqlite-datenbank-speichert-nicht/

          Gruß

          Klaus

        • #17322
          Radmuehl
          Teilnehmer

            Hallo Klaus,

            ich habe folgenden Code erstellt. Es gibt keine Fehlermeldung, aber ich kann immer noch nicht auf die Datenbank zugreifen. Die Datenbank Auto.db finde ich im Handy nicht im Dokumentenordner.

            on openstack
               
                 if the environment is "mobile" then
                 
                  set the fullscreenmode of me to "exactFit"
                  
                   put specialFolderPath("resources") & "/auto.db" into tQuellDB
                  put specialFolderPath("documents") & "/auto.db" into tZielDB
                  
                  if there is NOT a file tZielDB then
                     put url("binfile:" & tQuellDB) into url("binfile:" & tZielDB)
                  end if
                  put tZielDB into xpfd
               else
                  
                  put specialfolderpath("resources") & "/auto.db" into xpfd
               end if
              
            end openstack

            Viele Grüße

            Dieter

          • #17323
            Klaus Major
            Administrator

              Was sagt denn -> the result
              nach einer (missglückten) Datenbankabfrage oder beim Versuch die DB zu öffnen?

            • #17325
              Radmuehl
              Teilnehmer

                Ich muss gestehen dass ich nicht weiß was Du meinst. Ich markiere z.B. einen Datensatz und betätige den Button “löschen” aber es tut sich nichts. Auch kann ich keinerlei Daten im Handy ändern. Habe es auch schon auf meinem Tablet versucht.

                Gruß
                Dieter

              • #17326
                Klaus Major
                Administrator

                  Do kannst und solltest nach jeder Datenbankoperation the result checken:

                  ...
                  put revDBWasAuchImmer (dieDBId,tSQL) into xxx
                  ## THE RESULT ist immer LEER bei Erfolg!
                  
                  ## Spezialfall Datenbank: Dann beginnt ein Fehler immer mit REVDBERR
                  if the result begins with "revdberr" then
                    answer the result
                  end if
                  ...
                • #17330
                  Radmuehl
                  Teilnehmer

                    Hallo Klaus,

                    das Forum bringt mir wieder Fehler beim antworten, wenn ich viel schreibe. Habe meine Antwort mal als Textdatei auf meinen Server gelegt.

                    Meine Antwort

                    Viele Grüße
                    Dieter

                  • #17331
                    Klaus Major
                    Administrator

                      Ich habe die selben Probleme hier, habe Hauke Bescheid gegeben…

                    • #17333
                      Radmuehl
                      Teilnehmer

                        Hallo Klaus,

                        Du hast geschrieben:

                        Klaus Major schrieb:


                        put revOpenDatabase (“sqlite”,”D:/Daten/Livecode/Version8/Auto/auto.db”, , , , ) into dbid

                        Und Dein Handy hat Zugriff auf Deine D: Festplatte? Ernsthaft? 😎
                        Das bitte erst mal richten und dann sehen wir weiter…

                        Jetzt bin ich verwirrt.
                        Das ist doch der Code aus der Entwicklungsumgebung. Die Datenbank wird doch beim Erzeugen der Standaloneapplication mit angegeben. Was soll ich denn in der Entwicklungsumgebung sonst eingeben. Da muss doch der Pfad eingegeben werden.

                        Gruß
                        Dieter

                      • #17334
                        Klaus Major
                        Administrator

                          Hast du das doch lesen können? Kannst Du hellsehen? 😀
                          Ich hatte es drei Mal gepostet und immer diese Fehlermeldungen “Authorname” etc. bekommen und dann aufgegeben…

                          specialfolderpath(“resources”) funktioniert auch in der IDE!
                          Einfach mal in der Message Box eingeben und staunen:
                          answer specialfolderpath(“resources”)

                          Es liefert den Pfad zum Ordner mit dem aktuellen Stack zurück!
                          also kannst Du damit auch in deinen Skripten arbeiten.

                          ...
                          ## Wir sind in der IDE:
                          If the environment = "development" then
                             put specialfolderpath("resources") & "/auto.db" into xpfd
                          end if
                          ...
                        • #17338
                          Radmuehl
                          Teilnehmer

                            Im Forum konnte ich es nicht lesen. Ich bin auch kein Hellseher. Ich habe aber eine Mail bekommen, dass ein neuer Beitrag geschrieben wurde. Da stand der Text drin.

                          • #17339
                            Klaus Major
                            Administrator

                              AHA! OK, das klingt einleuchtender… 😀

                            • #17354
                              Radmuehl
                              Teilnehmer

                                Hallo Klaus,

                                ich habe den Datenbankaufruf jetzt umgebaut und rufe die Datenbank mit folgendem Code auf:

                                put revOpenDatabase ("sqlite",specialfolderpath("resources") & "/auto.db", , , , ) into dbid

                                Das funktioniert prima.

                                Wie kann ich jetzt das Handy dazu bewegen auf einen Ordner zuzugreifen wo ich lese und Schreibrechte für die Datenbank habe.

                                Nachfolgend das was ich bisher verstehe:

                                Kopieren der Pfade in die Variablen für Quelle und Ziel

                                put specialFolderPath("resources") & "/auto.db" into tQuellDB
                                 put specialFolderPath("documents") & "/auto.db"into  tZielDB

                                Abfrage ob die Datenbank im Dokumentenordner liegt. Wenn nein, soll sie da hin kopiert werden. Das macht er unter Windows auch.

                                 if there is NOT a file tZielDB then
                                       put url("binfile:" & tQuellDB) into url("binfile:" & tZielDB)
                                 end if

                                Kopiert den Pfad der ZielDB in die Variable xpfd (Wofür ist das gut?)
                                put tZielDB into xpfd

                                Kopiert den Ursprungspfad der QuellDB in die Variable xpfd (Wofür ist das gut?)
                                put specialfolderpath("resources") & "/auto.db" into xpfd

                                Viele Grüße

                                Dieter

                              • #17355
                                Klaus Major
                                Administrator

                                  Na toll, klappt mal wieder nicht hier, aber Du hast die Antwort
                                  vielleicht schon wieder per Mail erhalten. 🙂

                                • #17357
                                  Radmuehl
                                  Teilnehmer

                                    Dieses mal leider nicht. Kannst du sie mir pepr Mail senden?

                                    Du-lernst-es-nie@straulino.de

                                Ansicht von 14 Antwort-Themen
                                • Du musst angemeldet sein, um auf dieses Thema antworten zu können.