Deutsch
Forum

SQLite;Text mit mehr als 5 Zeichen funktioniert nicht

 
- Seite 1 -



Christof
Neuß
Hallo,
ich experimentiere jetzt schon ein paar Stunden mit SQLite rum. Habe mir die aktuelle SQLite.dll besorgt und hier aus dem Forum die SQLite3.INC dazu gepackt. Im Prinzip funktioniert's auch gut, aber wenn ich einen Text in ein Feld packe, der länger als 5 Zeichen ist schmiert mir das Programm ab.

Habe natürlich schon ein bisschen geforscht. Die Daten kommen schon in der Tabelle an. Das kann ich mit der SQLite-Konsole überprüfen. Über Feldlängen und -arten macht sich SQLite wohl auch nicht so wirklich Gedanken... Scheint eher an der Funktion "SQLite.Value()" zu liegen. Ggf. auch an der ?_UTF8toASCII (INC-Datei) oder so. Aber davon verstehe ich zu wenig.

Ich hänge mein kleines Probierprogramm und die INC-Datei mal an.

Hat jemand eine Idee, woran es liegen könnte?

MERCI und viele Grüße

Christof

2 kB
Kurzbeschreibung: Testprogramm
Hochgeladen:10.01.2016
Ladeanzahl197
Herunterladen
770 kB
Version:Aktuelle DLL
Hochgeladen:10.01.2016
Ladeanzahl207
Herunterladen
10 kB
Kurzbeschreibung: INC-Datei hier aus dem Forum
Hochgeladen:10.01.2016
Ladeanzahl168
Herunterladen
 
Win10 16 GB RAM
10.01.2016  
 



 
- Seite 1 -



Christof
Neuß
Tja, was soll ich davon halten?
Jetzt habe ich das mal von meinem Dienstrechner auf meinen privaten Laptop kopiert und... funktioniert.

Danke für den Denkanstoß...

Vielleicht finde ich ja bei Gelegenheit mal was... Komisch.
 
XProfan X3
Win10 16 GB RAM
10.01.2016  
 




Christof
Neuß
Zu früh gefreut...

Bei mehr und längeren Daten springt mir das Programm wieder aus dem Gleis ("XProfan funktioniert nicht mehr...").

Ich lese eigentlich eine recht große CSV-Datei ein. Das funktioniert auch. Wie gesagt, mit der SQLite-Konsole kann ich ein Select * from ... absetzen und bekomme alle Daten korrekt angezeigt. Es muss also mit dem Auslesen zu tun haben.

Keine Ahnung, woran das liegen kann...
 
XProfan X3
Win10 16 GB RAM
10.01.2016  
 




Christof
Neuß
Ich krieg's einfach nicht hin.

Hab' hier noch mal ein relativ einfaches Programm angehängt.
Bin immer noch der Meinung, dass die Funktion ?_Value() oder die darin genutzte Funktion ?_Utf8ToAscii einen Fehler haben. Aber - wie gesagt - da bin ich nicht firm genug, um das erkennen zu können.

Es funktioniert immer dann nicht, wenn mehr als 5 Zeichen im Feld sind.

Wär' schon klasse, wenn's jemand finden würde...

DANKE!

962 kB
Kurzbeschreibung: Quelltext, Inc-, EXE- und DLL-Datei
Hochgeladen:11.01.2016
Ladeanzahl52
Herunterladen
 
XProfan X3
Win10 16 GB RAM
11.01.2016  
 



Hi,

ersetze mal Funktion ?_Value aus der sqlite3.inc in diese:
Proc ?_Value

    Declare val&

    With ?_TableMap#

        If .RowPos& > 0 And .RowPos& <= .Rows& And .ColPos& > 0 And .ColPos& <= .Cols&

            val& = LONG(.Table&, (.ColPos& - 1 + (.RowPos& * .Cols&)) * 4)

            If val&

                //?_UTF8ToAscii(val&)
                Return string$(val&, 0)//< neu

            EndIf

        EndIf

    EndWith

    Return ""

EndProc


und teste mal die probe.prf.

Bei mir läufts damit dann mit FreeProfan durch.
 
11.01.2016  
 




Christof
Neuß
JA!!!
Sorry, hatte eben noch nicht wirklich auf die neue ?_Value umgestellt.

Das scheint so zu funktionieren. d
DANKE!!!

Ich probiere noch ein bisschen weiter... aber jetzt sieht's gut aus.
 
Win10 16 GB RAM
11.01.2016  
 



Läufts mit FreeProfan  [...]  bei Dir durch?
 
11.01.2016  
 




Christof
Neuß
FreeProfan? Wieso FreeProfan? Habe ich bei mir gar nicht installiert. Sollte ich? Bin einfach mit der X3-Version unterwegs. Auf dem privaten PC übrigens mit Windows 10.

Damit läuft's jetzt. Sowohl im Interpreter als auch in der EXE-Version. Die einzige "Hürde" ist, dass ich die Ergebnisstrings mit UTF8Decode() behandeln muss, damit die Umlaute etc. funktionieren. Beim Reinschreiben werden die ja in das UTF8-Format übertragen, wenn ich das richtig verstanden habe.
Aber das ist ja kein wirkliches Problem.
 
XProfan X3
Win10 16 GB RAM
11.01.2016  
 




Christof
Neuß
Was bleibt, ist die Frage, warum ?_UTF8ToAscii nicht funktioniert.

Jetzt bin ich aber meinem Ziel schon ein gutes Stück näher gekommen.

Weitere Baustelle in diesem Zusammenhang ist es, die SQLite3.DLL in die eigene EXE zu integrieren. Dazu probiere ich mit dem Datengenerator, MemoryModulen und MMTool rum. Grundsätzlich funktioniert das auch, aber da muss ich mich noch ein wenig mit beschäftigen. Ist es so, dass ich dann die bisherige SQLite3.INC mit den darin abgelegten ?_... - Prozeduren so nicht brauchen kann oder umschreiben muss?
 
XProfan X3
Win10 16 GB RAM
12.01.2016  
 




Georg
Teles
Servus,

die SQLite3.INC musst du dann aber entsprechend anpassen, sprich die Prozessadressen beim Laden der DLL ermitteln und die Prozeduren daher umschreiben. Da gibt es ein kleines Beispiel bei den MemoryModulen wenn ich mich nicht täusche  [...] 
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

12.01.2016  
 




Michael
W.
Hm, hattest Du eigentlich schon mal Firebird getestet? Das gibt es als embedded Version für XProfan.

Schau in der Hilfe unter 16.5. - Firebird embedded

Es gibt auch deutsche Hilfestellung auf den FireBird-Seiten:  [...] 

Diese Datenbank kann mehr, hat richtige String- und Int-Felder (auch Blob's) und wenn das Projekt zu groß wird - dann stellt man einfach auf die große Server-Version um.
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
12.01.2016  
 



 
- Seite 2 -



Christof
Neuß
Ja. Mit Firebird habe ich auch schon ein bisschen probiert. Würde mir sogar noch besser gefallen als SQLite, wenn ich dann nicht wieder so viele Dateien im Programmverzeichnis brauchen würde. Wenn ich was mit Firebird mache, brauche ich mindestens 4 DLLs, 1 MSG-Datei, mein Programm, die Datenbankdatei und die Quelldaten. Ich möchte im Optimalfall nur 3 Dateien im Programmverzeichnis haben. Programm, Datenbankprogramm, Quelldaten. Wie gesagt, ich experimentiere momentan noch ein bisschen rum. Grundsätzlich kriegt man dass sicher auch mit den DLLs von Firebird hin (integrieren meine ich), aber ich finde das etwas aufwendig.

Tempo ist natürlich auch ein Thema. Beim Einlesen und Auswerten. Es bleibt auch nicht bei einer Quelldatei, da kommen nachher noch weitere dazu. Wir reden über 50.000 - 300.000 Datensätze.
Trotzdem gibt es gute Gründe, dies immer noch in einer einfachen, lokalen, einfach kopierbaren Datenbank zu bearbeiten.

Andere Ideen... ?
 
XProfan X3
Win10 16 GB RAM
13.01.2016  
 



Die Exe könnte einfach die DLL aus sich heraus nach system32 kopieren, etwa wenn die DLL nicht geladen werden konnte. Einfach Franks Datengenerator dafür nehmen. über appdata/ könnte man natürlich auch nachdenken.
 
13.01.2016  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

15.765 Betrachtungen

Unbenanntvor 0 min.
rquindt28.01.2022
rafl16.12.2020
p.specht28.11.2018
Christof Neuß19.11.2017
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie