System.Data.SQLite

Check-in [f4336dee18]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Uses XMLDOM for cleaner install
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | sourceforge
Files: files | file ages | folders
SHA1: f4336dee1871148cb759173735712b2f8f3a6abd
User & Date: rmsimpson 2005-11-03 20:31:35.000
Context
2005-11-03
20:32
1.0.21 RTM check-in: 28597a833b user: rmsimpson tags: sourceforge
20:31
Uses XMLDOM for cleaner install check-in: f4336dee18 user: rmsimpson tags: sourceforge
20:30
no message check-in: 6748d3069f user: rmsimpson tags: sourceforge
Changes
Unified Diff Show Whitespace Changes Patch
Changes to bin/Designer/Install.vbs.
1
2
3
4
5
6
7
8














9
10
11
12
13
14
15
Const SQLiteVersion = "1.0.20.0"

Main

Sub Main()

   Dim WshShell
   Set WshShell = WScript.CreateObject("WScript.Shell")















   Dim fso
   Set fso = WScript.CreateObject("Scripting.FileSystemObject")

   Dim myDir
   myDir = fso.GetParentFolderName(WScript.ScriptFullName)

|







>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Const SQLiteVersion = "1.0.21.0"

Main

Sub Main()

   Dim WshShell
   Set WshShell = WScript.CreateObject("WScript.Shell")

   Dim GacPath
   Dim oExec
   GacPath = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0")
   
   Set oExec = WshShell.Exec(GacPath & "\bin\gacutil.exe -u System.Data.SQLite")
   Do While oExec.Status = 0
     WScript.Sleep(100)
   Loop
   
   Set oExec = WshShell.Exec(GacPath & "\bin\gacutil.exe -if ..\System.Data.SQLite.DLL")
   Do While oExec.Status = 0
     WScript.Sleep(100)
   Loop

   Dim fso
   Set fso = WScript.CreateObject("Scripting.FileSystemObject")

   Dim myDir
   myDir = fso.GetParentFolderName(WScript.ScriptFullName)

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74


75
76
77
78
79
80




81

82
   regFileContents = regFile.ReadAll()
   regFileContents = Replace(regFileContents, "%REGROOT%", regRoot)
   regFileContents = Replace(regFileContents, "%XMLPATH%", Replace(xmlPath, "\", "\\"))
   genRegFile.Write(regFileContents)
   genRegFile.Close()
   regFile.Close()

   Dim oExec
   Set oExec = WshShell.Exec("regedit /s """ & myDir & "\SQLiteDesigner.gen.reg""")
   Do While oExec.Status = 0
      WScript.Sleep(100)
   Loop

   fso.DeleteFile(myDir & "\SQLiteDesigner.gen.reg")

   Dim machineConfig
   Dim machineConfigFile
   Dim machineConfigPath
   
   machineConfigPath = fso.GetSpecialFolder(WindowsFolder).Path & "\Microsoft.NET\Framework\v2.0.50727\CONFIG"   
   Set machineConfigFile = fso.OpenTextFile(machineConfigPath & "\machine.config")
   machineConfig = machineConfigFile.ReadAll()
   machineConfigFile.Close()
   
   Dim n
   Dim x
   
   n = InStr(1, machineConfig, "System.Data.SQLite, Version=1", 1)
   
   If (n = 0) Then
     n = InStr(1, machineConfig, "</DbProviderFactories>", 1)
     If n > 0 Then
       n = InStrRev(machineConfig, vbCrLf, n, 1)
       If n > 0 Then
         machineConfig = Left(machineConfig, n + 1) & "      <add name=""SQLite Data Provider"" invariant=""System.Data.SQLite"" description="".Net Framework Data Provider for SQLite"" type=""System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=" & SQLiteVersion & ", Culture=neutral, PublicKeyToken=db937bc2d44ff139"" />" & vbCrLf & Mid(machineConfig, n + 2)
       End If
     End If
   Else
     n = n + 27
     x = InStr(n, machineConfig, ",", 1)
     If x > 0 Then
       machineConfig = Left(machineConfig, n) & SQLiteVersion & Mid(machineConfig, x)


     End If
   End If
   
   Set machineConfigFile = fso.CreateTextFile(machineConfigPath & "\machine.config", true)
   machineConfigFile.Write(machineConfig)
   machineConfigFile.Close()




   

End Sub







<







<

|

|
<
|
|

|
|

<
|
|
|
<
|
<
<
<
<
<
<
|
<
|
>
>
|


<
<
<
>
>
>
>

>

47
48
49
50
51
52
53

54
55
56
57
58
59
60

61
62
63
64

65
66
67
68
69
70

71
72
73

74






75

76
77
78
79
80
81



82
83
84
85
86
87
88
   regFileContents = regFile.ReadAll()
   regFileContents = Replace(regFileContents, "%REGROOT%", regRoot)
   regFileContents = Replace(regFileContents, "%XMLPATH%", Replace(xmlPath, "\", "\\"))
   genRegFile.Write(regFileContents)
   genRegFile.Close()
   regFile.Close()


   Set oExec = WshShell.Exec("regedit /s """ & myDir & "\SQLiteDesigner.gen.reg""")
   Do While oExec.Status = 0
      WScript.Sleep(100)
   Loop

   fso.DeleteFile(myDir & "\SQLiteDesigner.gen.reg")


   Dim machineConfigFile
   Dim machineConfig
   
   machineConfigFile = fso.GetSpecialFolder(WindowsFolder).Path & "\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config"

   Set machineConfig = CreateObject("Microsoft.XMLDOM")
   machineConfig.load machineConfigFile
   
   Dim xmlNode
   Dim xmlParent
   

   Set xmlNode = machineConfig.selectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=""System.Data.SQLite""]")
   If xmlNode Is Nothing Then
     Set xmlParent = machineConfig.selectSingleNode("configuration/system.data/DbProviderFactories")

     Set xmlNode = machineConfig.createNode(1, "add", "")






     xmlNode.attributes.setNamedItem(machineConfig.createAttribute("name"))

     xmlNode.attributes.setNamedItem(machineConfig.createAttribute("invariant"))
     xmlNode.attributes.setNamedItem(machineConfig.createAttribute("description"))
     xmlNode.attributes.setNamedItem(machineConfig.createAttribute("type"))
     xmlParent.appendChild xmlNode
   End If
   



   xmlNode.attributes.getNamedItem("name").value = "SQLite Data Provider"
   xmlNode.attributes.getNamedItem("invariant").value = "System.Data.SQLite"
   xmlNode.attributes.getNamedItem("description").value = ".Net Framework Data Provider for SQLite"
   xmlNode.attributes.getNamedItem("type").value = "System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=" & SQLiteVersion & ", Culture=neutral, PublicKeyToken=db937bc2d44ff139"
   
   machineConfig.save machineConfigFile
End Sub