| SQLite3_Open(":memory:", db) Command="CREATE TABLE FileExplorer(FileName TEXT, FullPath TEXT, FileSize INTEGER)" sqlite3_exec(db, Command, Null, Null, Null) |
Function enumFiles(dir:String) Local folder:Int=ReadDir(dir) Local file:String Repeat file=NextFile(folder) If (file <> ".") And (file <> "..") And (file) Local fullPath:String=RealPath(dir+"/"+file) If FileType(fullPath)=FILETYPE_DIR enumFiles(fullPath) Else Command="INSERT INTO FileExplorer VALUES('"+File+"','" Command :+ FullPath+"'," Command :+ FileSize(FullPath)+")" sqlite3_exec(db, Command,Null, Null, Null) End If End If Until (file=Null) CloseDir folder End Function |
| Function CallBack:Int(user_data:Byte Ptr, num_cols:Int, value:Byte Ptr Ptr, Column_Name:Byte Ptr Ptr) If HeaderFlag=False ' Print the header Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(column_name[i]),30)+" | " Next Print ("~n"+h$+"~n") HeaderFlag=True EndIf Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(value[i]),30)+" | " Next Print(h$) Return 0 EndFunction |
| Command="SELECT * FROM FileExplorer" sqlite3_exec(db, Command,CallBack, Null, Null) |
| SuperStrict Import tm.sqlite Global db:Int 'Database Handle Global Command:String Global HeaderFlag:Int=False sqlite3_open(":memory:", db) Command="CREATE TABLE FileExplorer(FileName TEXT, FullPath TEXT, FileSize INTEGER)" sqlite3_exec(db, Command, Null, Null, Null) enumFiles(BlitzMaxPath()) Command="SELECT * FROM FileExplorer" sqlite3_exec(db, Command,CallBack, Null, Null) sqlite3_close(db) End Function callback:Int(user_data:Byte Ptr, num_cols:Int, value:Byte Ptr Ptr, Column_Name:Byte Ptr Ptr) If HeaderFlag=False ' Print the header Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(column_name[i]),30)+" | " Next Print ("~n"+h$+"~n") HeaderFlag=True EndIf Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(value[i]),30)+" | " Next Print(h$) Return 0 EndFunction Function enumFiles(dir:String) Local folder:Int=ReadDir(dir) Local file:String Repeat file=NextFile(folder) If (file <> ".") And (file <> "..") And (file) Local fullPath:String=RealPath(dir+"/"+file) If FileType(fullPath)=FILETYPE_DIR enumFiles(fullPath) Else Command="INSERT INTO FileExplorer VALUES('"+File+"','" Command :+ FullPath+"'," Command :+ FileSize(FullPath)+")" sqlite3_exec(db, Command,Null, Null, Null) End If End If Until (file=Null) CloseDir folder End Function |
| Building Example 2 Compiling:Example 2.bmx flat assembler version 1.64 3 passes, 5273 bytes. Linking:Example 2.exe Executing:Example 2.exe FileName | FullPath | FileSize | ar.exe | gram Files/BlitzMax/bin/ar.exe | 347648 | bcc.exe | ram Files/BlitzMax/bin/bcc.exe | 593920 | bmk.exe | ram Files/BlitzMax/bin/bmk.exe | 150528 | docmods.exe | Files/BlitzMax/bin/docmods.exe | 88064 | FASM.EXE | am Files/BlitzMax/bin/FASM.EXE | 74240 | ld.exe | gram Files/BlitzMax/bin/ld.exe | 566272 | syncmods.exe | iles/BlitzMax/bin/syncmods.exe | 123392 | ide.ini | ram Files/BlitzMax/cfg/ide.ini | 7683 | modservers.cfg | es/BlitzMax/cfg/modservers.cfg | 33 | bmax120.png | Files/BlitzMax/doc/bmax120.png | 13680 | advanced.html | zMax/doc/bmxlang/advanced.html | 4222 | arrays.html | itzMax/doc/bmxlang/arrays.html | 2949 | collections.html | x/doc/bmxlang/collections.html | 1390 | comments.html | zMax/doc/bmxlang/comments.html | 1212 | compatibility.html | doc/bmxlang/compatibility.html | 5122 | constants.html | Max/doc/bmxlang/constants.html | 1347 | datatypes.html | Max/doc/bmxlang/datatypes.html | 4595 | debugging.html | Max/doc/bmxlang/debugging.html | 1379 | exceptions.html | ax/doc/bmxlang/exceptions.html | 2083 | expressions.html | x/doc/bmxlang/expressions.html | 8401 | functions.html | Max/doc/bmxlang/functions.html | 2265 | identifiers.html | x/doc/bmxlang/identifiers.html | 1438 | index.html | litzMax/doc/bmxlang/index.html | 268 | literals.html | zMax/doc/bmxlang/literals.html | 2434 | memory.html | itzMax/doc/bmxlang/memory.html | 819 | modules.html | tzMax/doc/bmxlang/modules.html | 3613 | |
| SQLite3_Open("c:/database.db",db) |
| SQLite3_Exec(db,"DROP FileExplorer",Null,Null,Null) |
| SuperStrict Import tm.sqlite Local db:Int 'Database Handle Local Command:String Global HeaderFlag:Int=False SQLite3_Open("c:/database.db",db) Command="SELECT * FROM FileExplorer" SQLite3_Exec(db, Command, CallBack, Null,Null) Sqlite3_Close(db) End Function CallBack:Int(user_data:Byte Ptr, num_cols:Int, value:Byte Ptr Ptr, column_name:Byte Ptr Ptr) If HeaderFlag=False ' Print the header Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(column_name[i]),30)+" | " Next Print ("~n"+h$+"~n") HeaderFlag=True EndIf Local h$ For Local i:Int=0 Until num_cols h$ :+ RSet(String.FromCString(value[i]),30)+" | " Next Print(h$) Return 0 EndFunction |
| Local rc:int = SQLite3_Open("c:/database.db",db) If Not rc=SQLITE_OK Print("Error: "+String(SQLite3_Errmsg(db))) SQLite3_Close(db) End EndIf |
![]() |
| Local MyError:Byte Ptr Local rc:int = SQLite3_Exec("SELECT * FROM xFileExplorer", CallBack, Null, VarPtr(MyError)) If Not rc=SQLITE_OK Print "SQLite Error: "+String.FromCString(MyError) SQLite3_free(MyError) SQLite3_Close(db) End EndIf |
| Command="SELECT * FROM FileExplorer ORDER BY FileSize DESC LIMIT 30" SQLite3_Exec(db, Command, CallBack, Null,Null) |
| Building Example 3 Compiling:Example 3.bmx flat assembler version 1.64 3 passes, 3385 bytes. Linking:Example 3.exe Executing:Example 3.exe FileName | FullPath | FileSize | libstdc++.a | Files/BlitzMax/lib/libstdc++.a | 880974 | MaxIDE.exe | gram Files/BlitzMax/MaxIDE.exe | 647168 | libkernel32.a | les/BlitzMax/lib/libkernel32.a | 594018 | bcc.exe | ram Files/BlitzMax/bin/bcc.exe | 593920 | ld.exe | gram Files/BlitzMax/bin/ld.exe | 566272 | win32maxgui.debug.win32.x86.a | /win32maxgui.debug.win32.x86.a | 506022 | libmsvcrt.a | Files/BlitzMax/lib/libmsvcrt.a | 487636 | freetype.debug.win32.x86.a | mod/freetype.debug.win32.x86.a | 450212 | in32maxgui.release.win32.x86.a | in32maxgui.release.win32.x86.a | 450162 | freetype.release.win32.x86.a | d/freetype.release.win32.x86.a | 439330 | libuser32.a | Files/BlitzMax/lib/libuser32.a | 435754 | libadvapi32.a | les/BlitzMax/lib/libadvapi32.a | 408608 | ar.exe | gram Files/BlitzMax/bin/ar.exe | 347648 | directx.debug.win32.x86.a | .mod/directx.debug.win32.x86.a | 300082 | libopengl32.a | les/BlitzMax/lib/libopengl32.a | 269134 | liboleaut32.a | les/BlitzMax/lib/liboleaut32.a | 262040 | libgdi32.a | Files/BlitzMax/lib/libgdi32.a | 251636 | freetype.h | od/include/freetype/freetype.h | 204523 | maxgui.debug.win32.x86.a | i.mod/maxgui.debug.win32.x86.a | 191534 | libole32.a | Files/BlitzMax/lib/libole32.a | 190722 | navbar.html | itzMax/doc/bmxmods/navbar.html | 160701 | max2d.debug.win32.x86.a | 2d.mod/max2d.debug.win32.x86.a | 159368 | libmingwex.a | iles/BlitzMax/lib/libmingwex.a | 153236 | bmk.exe | ram Files/BlitzMax/bin/bmk.exe | 150528 | libwinmm.a | Files/BlitzMax/lib/libwinmm.a | 144884 | png.h | d/brl.mod/fltkmaxgui.mod/png.h | 136663 | libshell32.a | iles/BlitzMax/lib/libshell32.a | 128262 | d3d7max2d.debug.win32.x86.a | od/d3d7max2d.debug.win32.x86.a | 126450 | CHANGES | brl.mod/fltkmaxgui.mod/CHANGES | 125318 | syncmods.exe | iles/BlitzMax/bin/syncmods.exe | 123392 | Process complete |
| Command="SELECT FileName, FileSize FROM FileExplorer " Command :+ "WHERE FileName LIKE '%mac%' " Command :+ "ORDER BY LENGTH(FileName) ASC LIMIT 30 " SQLite3_Exec(db, Command, CallBack, Null,Null) |
| Building Example 3 Compiling:Example 3.bmx flat assembler version 1.64 3 passes, 3755 bytes. Linking:Example 3.exe Executing:Example 3.exe FileName | FileSize | mac.H | 4633 | mac.r | 369 | ftmac.h | 10064 | ftmac.c | 32181 | Fl_mac.cxx | 67133 | cocoa.macos.m | 83115 | timer.macos.m | 822 | fl_dnd_mac.cxx | 2756 | system.macos.m | 13650 | appstub.macos.m | 3457 | fl_font_mac.cxx | 9517 | fl_color_mac.cxx | 3131 | system.macos.bmx | 2238 | freejoy.macosx.c | 7883 | Fl_get_key_mac.cxx | 4193 | glgraphics.macos.m | 8897 | blitz_ex.macos.ppc.s | 957 | blitz_ex.macos.x86.s | 544 | blitz_gc.macos.ppc.s | 100 | blitz_gc.macos.x86.s | 180 | fl_set_fonts_mac.cxx | 6901 | fl_draw_image_mac.cxx | 8459 | fl_read_image_mac.cxx | 3920 | blitz_ftoi.macos.x86.s | 333 | Process complete |
| Import tm.sqlite Print SQLite3_LibVersion() |