无法连接到SQLite3数据库(谷歌浏览器)

时间:2016-03-14 18:03:09

标签: vbscript sqlite

我尝试使用VBScript连接到Google Chrome的SQLite3数据库,其目标是捕获存储在"历史记录"中的所有访问过的网址。谷歌Chrome浏览器数据库。

我的麻烦是,什么时候连接会出现错误,说:

  

[Microsoft] [ODBC驱动程序管理器]"数据源名称很长。"

这是我最后一次尝试:

PS: 以@ Ekkehard.Horner的建议编辑。

Const LOCAL_APPLICATION_DATA = &H1c&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_APPLICATION_DATA)
Set objFolderItem = objFolder.Self

'Wscript.Echo objFolderItem.Path

Set colItems = objFolder.Items

Dim sCurDir
Dim sFina

For Each objItem in colItems
    'Wscript.Echo objItem.Name
    If InStr(1, objItem.Name, "Google") > 0 Then

      sCurDir =  objFolderItem.Path + "\" + objItem.Name + "\Chrome\User Data\Default\"
      sFina = "History"

      'Wscript.Echo sCurDir + sFina

      Exit For

    End If
Next

    Dim oCS     : oCS       = "Driver={SQLite3 ODBC Driver};Database=@FSPEC@;StepAPI=;Timeout="
    Dim oCNCT   : Set oCNCT = CreateObject( "ADODB.Connection" ) 

    Dim sSQL    : sSQL      = "SELECT * FROM urls"

    Dim oRS
    Dim oFld

    oCS = Replace( oCS, "@FSPEC@", sCurDir + sFina )
    oCNCT.Open oCS
    WScript.Echo "connected to", sCurDir + sFina

    Set oRS = oCNCT.Execute( sSQL )

    For Each oFld In oRS.Fields

    If InStr(1, oFld.Name, "url") > 0 Then

            WScript.Echo oFld.Value

            End If
        Next
        oRS.MoveNext

    oCNCT.Close
    Set oCNCT = Nothing

1 个答案:

答案 0 :(得分:0)

假设

oCS = Replace( oCS, "@FSPEC@", sCurDir + sFina )

会产生一个合适的连接字符串,.Open应该使用它。所以替换

oCNCT.Open sCurDir + sFina

oCNCT.Open oCS

你的显示循环看起来很腥;你可能想循环遍历记录集并访问(唯一的)列/字段的值" url"。