0

これが私が持っているものです。status、up_date、usersの3つのテーブルを持つSQLiteデータベースがあります。このデータベースはサーバー上にあります。これに対して次のクエリを実行する必要があります。

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を使用して結果をWebページに表示します。

java / javascriptを使用してこれを行う方法はありますか?または、java / perl / javascriptコードを記述して、出力のxml / textを取得し、それを表示する方法はありますか?

ご協力いただきありがとうございます。

4

3 に答える 3

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 
于 2012-06-14T18:12:45.140 に答える
0

そのためのサーバー側コードを作成する必要があります。サーバーサイドJavaScriptには、 Node.jsクラシック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>

SQLiteOLEDBプロバイダーをインストールする必要があります。ASPファイルとして保存し、正しいデータベースパスを接続します。IISの一部のバージョンでは、クラシックASPを明示的に有効にする必要があります。ConnectionオブジェクトとRecordsetオブジェクトは、MicrosoftADOライブラリによって提供されます。

于 2012-06-14T18:10:11.833 に答える
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で使用する実験をしていません。

于 2014-11-07T17:01:33.537 に答える