Kann mir irgend jemand bei einem SQL-Problem helfen?
Die software.au3 hat in einer AutoIt-Version ohne Probleme funktioniert, es gibt noch eine funktionierende EXE, nach Quelltextänderungen kommen SQL-Probleme die ich nicht deuten kann, kann jemand die Scripte mal durchsehen. Es fehlt noch ein Verzeichnis "Installationen".
Danke Matthias
SQL-Problem
-
- [ offen ]
-
moppel11 -
10. Januar 2012 um 21:29 -
Geschlossen -
Erledigt
-
-
Nachfrage nach dem SQL-Problem.
Die Zeile
CodeIf _SQLite_Exec(-1, $sql, "_rowCall") <> $SQLITE_OK Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg())
könnte der fehler sein, wenn ich sie deaktiviere (Semikolon) kommt keine Fehlermeldung "SQLite Error- not an error".
Aktiviert kommt bei rund 100 Datensätzen auch 100 mal die Fehlermeldung, kann das an den neueren AutoIt-Versionen liegen????[Blockierte Grafik: http://www.pclehmann.de/sql.png]
-
Vermutlich wurde mit der AutoIt Version auch die SQLite Dll aktualisiert.
Das was dir die _SQLite_Exec Funktion zurückgibt ist zwar nicht SQLITE_OK, aber das muss nicht heißen, dass ein Fehler aufgetreten ist.
Tritt die Meldung bei jedem Aufruf von _SQLite_Exec auf? Was ist denn der Rückgabewert? 1 Kann es ja nicht sein, das wäre $SQLITE_ERROR... -
Tritt die Meldung bei jedem Aufruf von _SQLite_Exec auf? Was ist denn der Rückgabewert?
Das Programm startet SQL jedesmal neu, wie kommt man an den Rückgabewert???
-
$Var = _SQLite_Exec etc.
Und dann halt den Vergleich mit $SQLITE_OK weglassen. Dann kannst du $Var mit ConsoleWrite oder einer simplen MsgBox ausgeben. -
-
Ich hab das vorgeschlagen, damit du uns sagen kannst welcher Code ausgegeben wird
...
Natürlich funktioniert es so, aber um genau zu wissen was da vor sich geht brauchen wir den Rückgabewert der dir in der MsgBox ausgegeben wird. -
-
Ok, das erste ist ein normaler SQL Error. 19 ist ein Constraint Error der bei einem Datensatz Konflikt ausgegeben wird (z.B. wenn ein merhmals vorhandener Primary Key Wert festgestellt wurde). 101 steht für SQL_DONE und signalisiert, dass der Prozess abgeschlossen wurde.
[autoit]
Dein Fragwürdiger Code den du uns da präsentierst hat vermutlich einen Großteil dieser Fehler verursacht.
Wenn SQLite_Exec nicht SQL_DONE zurückgibt, dann wird der Selbe SQL Befehl nochmal ausgeführt. Daher die Constraint Meldung, weil du 2 mal hintereinander den selben Primary Key erstellst.
Bitte ersetze deine Funktion mal durch das hier:Func _SQLRun($sql)
[/autoit]
ConsoleWrite($sql & @CRLF & @TAB & _SQLite_Exec(-1, $sql, "_rowCall") & @TAB & _SQLite_ErrMsg() & @CRLF)
EndFunc ;==>_SQLRun
Dann postest du bitte die Konsolenausgabe des Scripts, oder zumindest einen Teil. Du kannst die ganzen Daten auch entsprechend zensieren. Falls sich eine Ausgabe wiederholt macht es natürlich keinen Sinn die alle zu posten ;). -
Danke für die Hilfe, diesen Fehler hatte ich leider schon lange und ich stecke nicht so tief im programmieren drin.
Nach Austausch der Funktion läuft das Programm ohne Fehlermeldung.