Приложение HTML и базы данных - PullRequest
1 голос
/ 16 сентября 2011

Как получить доступ к базе данных в файлах HTA?Или еще лучше получить доступ к любому COM?Я знаком с AutoIt, AutoHotKey и Windows Script Host.Есть ли способ включить любой из них в приложение HTA?

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

Вы делаете это точно так же, как в VBScript. Ниже приведен пример создания электронной таблицы с использованием Excel.

Для доступа к базам данных вы можете использовать объект ADODB, а для создания базы данных вы должны использовать объект ADOX. Вам необходимо знать правильную строку подключения для нужного вам типа базы данных.

<code><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">
sub ShowTitle () скажем документ. Название скажем "командная строка =" & oHTA.commandLine конец суб Показать заголовок
0 голосов
/ 26 сентября 2014

Я взял два ответа и объединил их следующим образом:

a) Я обновил ComTest () из теста Excel для доступа к Oracle db
b) 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
0 голосов
/ 04 ноября 2011

Для доступа к базе данных вам потребуется 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; 
}
...