最初に私は、データベースとのWebインタラクションで
セキュリティ上の理由とjavascriptという事実により、常にサーバー側の言語を使用する
現状のままでは、Windowsファイルシステムとの互換性はありません。
そうは言っても私は状況に直面していて、創造的に考えようとしているのです。
サーバーサイドスクリプトとSQLへのアクセスは許可されていません。
そして、時間の経過とともにデータを保存できるイントラネット用のクライアントベースのアプリケーションを作成する必要があります。
これまでに2つの解決策を見つけましたが、どれも私が正しく使用するのに十分なドキュメントがありません。
1つは、ここにあるACCESSdbと呼ばれるJavaScriptライブラリです。 ACCESSdb
残念ながら、それを使用してDBからデータを読み書きする方法を理解できませんでした...
もう1つは、次の3つのコードです。
レコードを追加する:
function AddRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='/\dbName.mdb'");
adoRS.Open("Select * From tblName", adoConn, 1, 3);
adoRS.AddNew;
adoRS.Fields("FieldName").value = "Quentin";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
レコードを削除する:
function DeleteRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Delete;
adoRS.Delete;
adoRS.Close();
adoConn.Close();
}
レコードの編集:
function EditRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Edit;
adoRS.Fields("FieldName").value = "New Name";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
それらのうち、add new recordだけが何らかの理由で私のために働いた...
また、最初の行のセルの値を読み取るには、次のように書くだけでよいことがわかりました。
alert(adoRS(cellNum));
しかし、後の行のセルの値を取得するにはどうすればよいですか? (行3、セル5)としましょう。
ここまで読んでいただきありがとうございます!よろしくお願いします!
ジェイク
まず、「/ \」と「\」(接続文字列内)がSOのタイプミスにすぎないことを確認してください。
次に、削除コマンドのバージョンを次に示します。
function DeleteRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoCmd = new ActiveXObject("ADODB.Command");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoCmd.ActiveConnection = adoConn;
adoCmd.CommandText = "Delete * From tblName Where FieldName = 'Quentin'";
adoCmd.Execute();
adoConn.Close();
}
そして、編集コマンド(ループなし->すべての[一致する]レコードを更新):
function EditRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoCmd = new ActiveXObject("ADODB.Command");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoCmd.ActiveConnection = adoConn;
adoCmd.CommandText = "Update tblName Set FieldName = 'New Value' Where FieldName = 'Quentin'";
adoCmd.Execute();
adoConn.Close();
}
私はこれをテストしていません(現在Accessを持っていません)ので、いくつかの構文バグがあるかもしれないことに注意してください...
それが機能し、役立つことを願っています。