German Problem mit SQlite besonders bei Insert

jmich

Member
Licensed User
Longtime User
Hi Leute,

habe zur Zeit große Probleme mit meinen Programm. Ich benutze eine externe erstellte SQlite Datenbank (btgdb.db) und kann keine Daten speichern.
Habe z.B ein Fenster wo ich die Daten eingebe ( Editfelder wie Projektname, Strasse usw.) nach der Eingabe wechsel ich das Fenster mit einen Button zum
Fenster wo die die Daten kopiert und gespeichert werden.
Das klappt sehr gut - Datenbank wird mit richtigen Namen und Ort gespeichert - bis auf die Datenübernahme vom anderen Fenster , die werden nicht gespeichert.
Was mache ich falsch ?
Hier der Code mit dem ich die Datei bzw. Datenbank speichere:
B4X:
Sub btn_prosav_Click
   Dim Dateiname As String
   Dateiname = fileedit.Text &".db"
   Dim TargetDir As String
   If File.ExternalWritable = False Then
   Msgbox("Kann nicht auf der SDCard schreiben","Datei")
   Else
   File.MakeDir(File.DirRootExternal,"BTGDaten")
   TargetDir = File.DirRootExternal & "/BTGDaten"
   End If
   
   If File.Exists(TargetDir,Dateiname) = False Then
   File.Copy(File.DirAssets,"btgdb.db",TargetDir,Dateiname)
   End If
   Return TargetDir
   SQL1.Initialize(TargetDir,Dateiname,True)
   SQL1.ExecNonQuery("INSERT INTO btgdaten(kostenstelle,auftragnr,projektname,auftraggeber,kontakt,auftragsum,strasse,plz,ort)")
   SQL1.ExecNonQuery("INSERT INTO btgdaten VALUES(ed_auftragnr.Text,ed_projektname.Text,ed_auftrggeber.Text,ed_kontakt.Text,ed_auftrgsum.Text,ed_strasse.Text,ed_plz.Text,ed_ort.Text)")
   
   pnlscrollview.Visible = True
 pnlscrollview.BringToFront
 scvprojektedit.Panel.LoadLayout("btgprojekt")

Wer kann mir einen Tip geben?

Gruß Jmich
 

klaus

Expert
Licensed User
Longtime User
Hallo Jmich,
Leider ist der Code den Du schickst nicht genügend um eine konkrete Antwort zu geben.

Könntest Du dein Projekt als zip Datei schicken (IDE Menü Files / Export As Zip) dann können wir genau testen wie Du. Meistens ist das Problem wo anders als der Hilfsuchende denkt.

Wenn Du von verschiedenen Fenstern sprichst sind da Activities gemeint ?

Einige 'komische' Sachen:
- Return TargetDir verlässt die Routine ohne den Rest durchzuführen.
- SQL1.Initialize(TargetDir,Dateiname,True) darf nicht hier Initialisiert werden muss in Acticvity_Create unter If FiretTime = True Initialisiert werden !
- Diese beiden Zeilen kommen mir komisch vor
SQL1.ExecNonQuery("INSERT INTO btgdaten(kostenstelle,auftragnr,projektname,auftraggeber,kontakt,auftragsum,strasse,plz,ort)")
SQL1.ExecNonQuery("INSERT INTO btgdaten VALUES(ed_auftragnr.Text,ed_projektname.Text,ed_auftrggeber.Text,ed_kontakt.Text,ed_auftrgsum.Text,ed_strasse.Text,ed_plz.Text,ed_ort.Text)")

Was sollen die machen ?
- ed_auftragnr usw. in welcher Activity sind diese EditText Views ?
- scvprojektedit.Panel.LoadLayout("btgprojekt") wenn Du speicherst lädst Du ein neues Layout, warum ?
- der erste Teil der Routine sollte auch in Acticvity_Create verschoben werden.

Nun ja, etliche Fragen die ohne den Rest des Codes keine Antwort haben.

Beste Grüsse.
 
Top