2011-09-16 2 views
1

どのようにHTAファイルのデータベースにアクセスしますか?それとも、COMにアクセスする方が良いでしょうか? 私はAutoIt、AutoHotKey、Windows Script Hostについてよく知っています。これらをHTAアプリに含める方法はありますか?HTMLアプリケーションとデータベース

答えて

1

VBScriptとまったく同じ方法で行います。 Excelを使用してスプレッドシートを作成する例を以下に示します。

データベースにアクセスするには、ADODBオブジェクトを使用し、データベースを作成するにはADOXオブジェクトを使用します。必要なデータベースの種類に適した接続文字列を知る必要があります。

<html> 

<!-- COMTest.hta --> 

<head> 
<hta:application 
    id="oHTA"  
    border="thick"  
    borderstyle="raised" 
    caption="yes" 
    maximizebutton="no" 
    minimizebutton="yes" 
    showintaskbar="yes" 
    singleinstance="yes" 
    sysmenu="yes" 
    version="0.1" 
    windowstate="normal" 
/> 

<title>COM Test</title> 

<script language="VBScript"> 

sub say(s) 
    output.innerHTML = output.innerHTML & s & "<br>" 
end sub 

sub ComTest() 
    say "testing COM" 

    xlFile = "c:\test\ExcelTest.xls" 
    ' use .xslx if you have Office 2007 or greater 

    set fso = CreateObject("Scripting.FileSystemObject") 
    if fso.FileExists(xlFile) then 
    say "deleting test file: " & xlFile 
    end if 

    say "creating Excel Application object and workbook" 
    set oEx = CreateObject("Excel.Application") 
    set oWb = oEx.Workbooks.Add() ' create a new workbook 
    set oWs = oWb.Worksheets(1) ' point to first worksheet 

    oWs.cells(1,1) = "Test Worksheet" 
    oWs.cells(2,1) = "=now()" 
    oWs.UsedRange.Columns.AutoFit 

    say "saving test file: " & xlFile 
    oEx.DisplayAlerts = false ' if file exists, overwrite it without prompting 
    oWb.SaveAs xlFile 

    oEx.Quit 
    set oEx = nothing 

    say "done" 
end sub 

</script> 

<style type="text/css"> 
body { 
    overflow: auto; 
    background-color: "blanchedalmond"; 
} 

#output { 
    color: lightgreen; 
    background-color: black; 
    font-family: "Lucida Console"; 
    font-size: 9pt; 
    padding: 3px; 
} 
</style> 
</head> 

<body> 
<input type="button" value="test" onclick="ComTest"> 
<br> 
<pre id="output"></pre> 
</body> 

<script language="vbscript"> 
sub ShowTitle() 
    say document.Title 
    say "command line=" & oHTA.commandLine 
end sub 

ShowTitle 
</script> 

</html> 
0

データベースにアクセスするには、ActiveXObjectが必要です。

var conn = new ActiveXObject("ADODB.Connection"); 
var rs  = new ActiveXObject("ADODB.Recordset"); 
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=handbook.mdb"); 
rs.Open("select * from faq", conn, 3, 2); 
if (!rs.BOF && !rs.EOF) { 
    questionField.value = rs.fields('question').value;; 
    answerField.value = rs.fields('answer').value; 
} 
0

私は2つの答えを取って、次のようにそれらをマージ:

A)私は
BデシベルのOracleにアクセスするために、ExcelのテストからCOMTESTを()更新)ActiveXObjectのが唯一のJScriptのために働くので、私次のようにVBscriptに変換します。http://msdn.microsoft.com/en-us/library/ms756007(v=vs.85).aspx

sub ComTest() 
    say "testing COM" 

    dim conn, rs 
    set conn = CreateObject("ADODB.Connection") 
    Set rs = CreateObject("ADODB.Recordset") 
    conn.Open("Provider=OraOLEDB.Oracle;Data Source=XXXX;User ID=XXXX;Password=XXXX") 
    say "open conn" 
    rs.Open "select sysdate from dual", conn 
    say "sqlResult =" & rs.Fields("sysdate").Value 

    'Close connection and clean up objects 
    conn.Close 
    say "close conn" 
    Set rs = Nothing 
    Set conn = Nothing 

    say "done" 
end sub 
関連する問題