Jfish Posted November 15, 2014 Share Posted November 15, 2014 Hello all. Another weekend - another episode of getting stuck on something I should be able to figure out I am trying to use Sqlite for a bulk import but for some reason I keep getting the error that it cannot locate the Sqlite3.exe file. I read the help file suggesting it gets stored in the @temp directory. When I read those files I see "sqlite3_300800403.exe" listed amongst them but I don't see "sqlite3.exe" . This may be a dumb question but how can I point _SQLite_SQLiteExe to the sqlite3.exe and should it really be "sqlite3_300800403.exe"? These are my includes: #include <SQLite.au3> #include <SQLite.dll.au3> This is the generic version of what I am running for the import: _SQLite_SQLiteExe($sDatabaseFilePath, ".separator ," & @CRLF & ".import '" & FileGetShortName($hImportFilePath) & "' TableName" & @CRLF, $sOutputFile) Any guidance? Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt Link to comment Share on other sites More sharing options...
jchd Posted November 15, 2014 Share Posted November 15, 2014 Rename it to the correct name. For some reason this gets the version appended. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Jfish Posted November 15, 2014 Author Share Posted November 15, 2014 (edited) @jchd - I did that and it worked (thank you) - but I noticed the next time that it ran it also create a copy called "sqlite3_300800403.exe". Seems this could be a recurring problem as I believe (please correct me) that the files in the temp directory get periodically deleted? If that is a static name for the sqlite3.exe file should the SQLite.au3 file be updated with the new name of the exe? Alternatively, is that file getting created from the dll? If so, does that need to be updated? Just curious as to root cause? JFish Edited November 15, 2014 by Jfish Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt Link to comment Share on other sites More sharing options...
Solution jchd Posted November 15, 2014 Solution Share Posted November 15, 2014 (edited) I advise you to copy the exe to a solid directory (e.g. @SCRIPTDIR or some folder in the path environment variable) and do the same with the SQLite3.dll file. Then comment out the SQLite.dll.au3 include line. Clearly SQLite.dll.au3 shouldn't continuously fetch the CLI from the AutoIt repository. Edited November 15, 2014 by jchd This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Jfish Posted November 15, 2014 Author Share Posted November 15, 2014 Thanks again @jchd. That did the trick. 32K+ records loaded in about 1 second from eight different files ;-) I very much appreciate your taking the time to help me out. Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt Link to comment Share on other sites More sharing options...
macran Posted March 19, 2015 Share Posted March 19, 2015 I have the same trouble. I copy the exe from @tempdir to @scriptdir and rename to 'sqlite3.exe' but result is also ERROR: Sqlite3.exe file not found Link to comment Share on other sites More sharing options...
jchd Posted March 19, 2015 Share Posted March 19, 2015 Are you sure no sqlite3.exe file exists in @scriptdir? Show the code you're using. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
macran Posted March 24, 2015 Share Posted March 24, 2015 @jchd I just copy the example script from AUTOIT3 HELP about _SQLite_SQLiteExe to test I only change cod from ' _SQLite_SQLiteExe($sDbFile, $sIn, $sOut,-1,True)' to ' _SQLite_SQLiteExe($sDbFile, $sIn, $sOut,"C:Sqlitesqlite3.exe",True) ' beause sqlite3 install in c:sqlite F5 ,ERROR: Sqlite3.exe file not found then I copy the file" sqlite3.exe" to @scriptdir , F5 ,also ERROR: Sqlite3.exe file not found then I copy the files"sqlite3.def" and"sqlite3.dll" to @scriptdir ,F5, also ERROR: Sqlite3.exe file not found system: win7 64bit autoit:3.3.12.0 sqlite3:3.8.8.3 expandcollapse popup#include <File.au3> #include <SQLite.au3> #include <SQLite.dll.au3> #include <StringConstants.au3> ; Filenames Local $sTsvFile = FileGetShortName(_TempFile(@ScriptDir, "~", ".tsv")) Local $sDbFile = FileGetShortName(_TempFile(@ScriptDir, "~", ".db")) ; Create Tsv File FileWriteLine($sTsvFile, "a" & @TAB & "b" & @TAB & "c") FileWriteLine($sTsvFile, "a1" & @TAB & "b1" & @TAB & "c1") FileWriteLine($sTsvFile, "a2" & @TAB & "b2" & @TAB & "c2") ; import (using SQLite3.exe) Local $sIn, $sOut, $i, $sCreate = "CREATE TABLE TblImport ("; For $i = 1 To _StringCountOccurance(FileReadLine($sTsvFile, 1), @TAB) + 1 $sCreate &= "Column_" & $i & "," Next $sCreate = StringTrimRight($sCreate, 1) & ");" $sIn = $sCreate & @CRLF ; Create Table $sIn &= ".separator \t" & @CRLF ; Select @TAB as Separator $sIn &= ".import '" & $sTsvFile & "' TblImport" & @CRLF _SQLite_SQLiteExe($sDbFile, $sIn, $sOut,"C:\Sqlite\sqlite3.exe",True) If @error = 0 Then ;Show Table (using SQLite3.dll) Local $iRows, $iColumns, $aRes _SQLite_Startup() ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF) _SQLite_Open($sDbFile) _SQLite_GetTable2d(-1, "SELECT ROWID,* FROM TblImport;", $aRes, $iRows, $iColumns) _SQLite_Display2DResult($aRes) ; Output to Console _SQLite_Close() _SQLite_Shutdown() Else If @error = 2 Then ConsoleWrite("ERROR: Sqlite3.exe file not found" & @CRLF) Else ConsoleWrite("ERROR: @error=" & @error & " when calling _SQLite_SQLiteExe" & @CRLF) EndIf EndIf ; Remove Temp Files FileDelete($sTsvFile) FileDelete($sDbFile) ; Output: ; rowid Column_1 Column_2 Column_3 ; 1 a b c ; 2 a1 b1 c1 ; 3 a2 b2 c2 Func _StringCountOccurance($sSearchString, $sSubString, $iCaseSense = $STR_NOCASESENSE) ; Returns Number of $sSubString in $sSearchString Local $iOccCnt = 1 Do If StringInStr($sSearchString, $sSubString, $iCaseSense, $iOccCnt) > 0 Then $iOccCnt += 1 Else ExitLoop EndIf Until 0 Return $iOccCnt - 1 EndFunc ;==>_StringCountOccurance Link to comment Share on other sites More sharing options...
jchd Posted March 24, 2015 Share Posted March 24, 2015 Works out of the box for me with the latest release as x86: >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" /UserParams +>10:39:49 Starting AutoIt3Wrapper v.14.727.1229.0 SciTE v.3.5.0.0 Keyboard:0000040C OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:040C) +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\jc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jc\AppData\Local\AutoIt v3\SciTE >Running AU3Check (3.3.12.0) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3 +>10:39:49 AU3Check ended.rc:0 >Running:(3.3.12.0):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop _SQLite_LibVersion=3.8.5 rowid Column_1 Column_2 Column_3 1 a b c 2 a1 b1 c1 3 a2 b2 c2 +>10:39:49 AutoIt3.exe ended.rc:0 +>10:39:49 AutoIt3Wrapper Finished. >Exit code: 0 Time: 0.6997 and latest release as x64: >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" /UserParams +>10:43:49 Starting AutoIt3Wrapper v.14.727.1229.0 SciTE v.3.5.0.0 Keyboard:0000040C OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:040C) +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\jc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jc\AppData\Local\AutoIt v3\SciTE >Running AU3Check (3.3.12.0) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3 +>10:43:49 AU3Check ended.rc:0 >Running:(3.3.12.0):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop _SQLite_LibVersion=3.8.4.3 rowid Column_1 Column_2 Column_3 1 a b c 2 a1 b1 c1 3 a2 b2 c2 +>10:43:56 AutoIt3.exe ended.rc:0 +>10:43:56 AutoIt3Wrapper Finished. >Exit code: 0 Time: 7.499 as well as with latest beta as x86: >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" /UserParams +>10:42:14 Starting AutoIt3Wrapper v.14.727.1229.0 SciTE v.3.5.0.0 Keyboard:0000040C OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:040C) +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\jc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jc\AppData\Local\AutoIt v3\SciTE >Running AU3Check (3.3.12.0) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3 +>10:42:14 AU3Check ended.rc:0 >Running:(3.3.12.0):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop _SQLite_LibVersion=3.8.5 rowid Column_1 Column_2 Column_3 1 a b c 2 a1 b1 c1 3 a2 b2 c2 +>10:42:14 AutoIt3.exe ended.rc:0 +>10:42:14 AutoIt3Wrapper Finished. >Exit code: 0 Time: 0.6961 and latest beta as x64: >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /beta /ErrorStdOut /in "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" /UserParams +>10:47:13 Starting AutoIt3Wrapper v.14.727.1229.0 SciTE v.3.5.0.0 Keyboard:0000040C OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:040C) +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\jc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jc\AppData\Local\AutoIt v3\SciTE >Running AU3Check (3.3.13.20) from:C:\Program Files (x86)\AutoIt3\Beta input:C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3 +>10:47:13 AU3Check ended.rc:0 >Running:(3.3.13.20):C:\Program Files (x86)\AutoIt3\Beta\autoit3_x64.exe "C:\Users\jc\Documents\AutoMAT\tmp\sqlite_exec.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop _SQLite_LibVersion=3.8.8.1 rowid Column_1 Column_2 Column_3 1 a b c 2 a1 b1 c1 3 a2 b2 c2 +>10:47:16 AutoIt3.exe ended.rc:0 +>10:47:16 AutoIt3Wrapper Finished. >Exit code: 0 Time: 3.125 Which AutoIt version do you use? Note varying versions of sqlite3.exe This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now