所以这就是我所拥有的,我有一个包含3个表的SQLite数据库:status,up_date&用户。该数据库位于服务器上。我需要对此运行以下查询:
SELECT USR.name, USR.cymer_id, ST.license
FROM
users USR,
status ST,
upd_ate UD
WHERE
UD.upt_id = (select max(p2.upt_id) from upd_ate p2)
AND ST.cymer_id = USR.cymer_id
AND ST.upt_id = UD.upt_id
ORDER BY USR.name
然后使用HTML在网页上显示结果。
我想知道有没有办法用java / javascript做到这一点?或者有什么方法可以编写java / perl / javascript代码来获取输出的xml /文本然后显示它?
感谢您的帮助。
答案 0 :(得分:2)
在 Perl 中,使用CGI生成HTML页面,使用DBI进行数据库查询:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use DBI;
my $q = CGI->new;
print $q->header, $q->start_html('hello'), '<table>';
my $dbh = DBI->connect("dbi:SQLite:dbname=mydatabase.db", "", "", {});
my $query = <main::DATA>;
my $query_handle = $dbh->prepare($query);
$query_handle->execute();
$query_handle->bind_columns(\my($id, $name, $license));
while($query_handle->fetch()) {
print "<tr><td>$id</td><td>$name</td><td>$license</td></tr>\n"
}
$query_handle->finish;
$dbh->disconnect;
print '</table>', $q->end_html;
__DATA__
SELECT USR.cymer_id, USR.name, ST.license
FROM users USR, status ST, upd_ate UD
WHERE
UD.upt_id = (select max(p2.upt_id) from upd_ate p2)
AND ST.cymer_id = USR.cymer_id
AND ST.upt_id = UD.upt_id
ORDER BY USR.name
答案 1 :(得分:0)
您需要为此编写一些服务器端代码。服务器端JavaScript有一些选项:Node.js,classic ASP。您知道您的Web服务器是否支持这些服务器吗?它是Windows还是* nix服务器?它是您的家庭服务器,您公司的服务器还是托管服务器?
在使用JavaScript的经典ASP中,它可能看起来像:
<%@Language="javascript"%>
<html><body><table>
<%
var conn = Server.CreateObject("ADODB.Connection");
conn.Open("Provider=OleSQLite.SQLiteSource;Data Source=PATH_TO_DATABASE");
var rs = conn.Execute("SELECT USR.cymer_id, USR.name, ST.license
FROM users USR, status ST, upd_ate UD
WHERE UD.upt_id = (select max(p2.upt_id) from upd_ate p2)
AND ST.cymer_id = USR.cymer_id
AND ST.upt_id = UD.upt_id ORDER BY USR.name");
rs.MoveFirst();
while(!rs.EOF)
{
%>
<tr>
<td><%=Server.HtmlEncode(rs["cymer_id"])%></td>
<td><%=Server.HtmlEncode(rs["name"])%></td>
<td><%=Server.HtmlEncode(rs["license"])%></td>
</tr>
<%
rs.MoveNext();
}
rs.Close();
conn.Close();
%>
</table></body></html>
您需要安装SQLite OLE DB provider。保存为ASP文件,插入正确的数据库路径。在某些版本的IIS上,您必须明确启用经典ASP。 Connection和Recordset对象由Microsoft ADO library提供。
答案 2 :(得分:0)
在 Perl (在Unix机器上),一个快速而肮脏的方法是:
open( HTML, ">$htmlFile" or die "**error: unable to write to file '$htmlFile', $!\n" );
print HTML `echo "SELECT * FROM holds;" | sqlite3 -html holds_data.db`;
close( HTML );
我还没有尝试在Windows中使用它。