人に聞けない痔の悩み、これでスッキリ >>

ブラウザをローカルで使用し、データベース(SQLite3)を更新するシステムを、
javascriptを利用して作りたいと考えています。
(ローカルで使うので、Node.jpではありません。)

javascriptでSQLiteに接続する方法が分かりません。
jsモジュールの一部ですが、動作しません(「接続しました」のアラートが出ません)。

var con;
function dbConnect() {
con = WScript.CreateObject("ADODB.Connection");
con.ConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=C:\\Users\\Taigo\\Desktop\\js_lesson\\sample010.sqlite3";
con.Open();
alert("データベースに接続しました。");
}

どうやら3行目のWScript.CreateObjectあたりが怪しいとにらんでいるのですが、
ググっても結局分かりませんでした。
参考サイトをご紹介頂くのもありがたいですが、
ダイレクトに回答を頂けたら一番ありがたいです。

私の程度は、半年前からExcelVBA、SQL、PHP等を始めたプログラミング入門者です。
お手柔らかにお願い申し上げます。

A 回答 (1件)

ODBC経由でおこなうのが妥当では?

    • good
    • 1
この回答へのお礼

すっかり遅くなりすみません。未だ解決していませんが、ベストアンサーを選ぶのが義務のようで、選ばせていただきます。解答していただいただけでも感謝です。

お礼日時:2015/10/31 00:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJavaScriptでSQLiteの値を使いたい

プログラミング初心者です。
JavaScriptで、ユーザーが入力した値に応じて金額を計算するプログラム(金額=アイテムの値段×個数、ユーザーはフォームにて個数を入力、アイテムの値段はSQLiteに存在)を書いているのですが、計算過程でSQLiteに保存してあるアイテムの値段(itemsテーブルの各アイテムのchargeカラムの値)を使用する必要があります。
これを実現するためにはどのような方法があるでしょうか。また、どの方法がベストでしょうか。
回答よろしくお願いします。

Aベストアンサー

Web ブラウザ上で実行される JavaScript から、SQLite を参照する方法でしょうか。

案1.
ブラウザに内蔵されている Web SQL Database を使う
http://dev.w3.org/html5/webdatabase/
ただし規格としてダメ出しされたので将来性はありません

案2.
Webサーバーに CGI/Servlet/ASP などの手段で WebAPI サービスを作成する
JavaScript からは AJAX で「アイテムの値段を教えろ」の要求を投げ、
WebAPI サービスは SQLite を参照した結果の応答を返す

案3.
フォームから個数をPOST送信して、計算結果の画面に遷移する
送信先は CGI/Servlet/ASP で作成し、SQLite を参照した結果を元に計算して、
金額を含むHTML画面の応答を返す


お勧めは案3、次いで案2です

Q別ファイルのfunctionの読み込み方

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために私が最初に書いたhtmlの文です(もちろん実行できませんでした)
------------------------------------
<html>
<script language="javascript" src="hello.js">
aisatsu(){
document.write(aa);
}
</script></html>
------------------------------------

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために...続きを読む

Aベストアンサー

function内で「var」をつけて変数を宣言するとfunction外からその変数の内容を取得することができなくなります。(returnで参照することはできます。)
なので変数の内容を取得する場合は「hello.js」の内容を

function aisatsu(){
var aa="hello";
return aa;
}

このように修正し、

<script language="javascript" src="hello.js"></script>
<script language="javascript">
var data=aisatsu();//「aisatsu()」関数の「aa」変数内のデータを引っ張り出す(return aa;)
document.write(data);//書いたり
alert(data);//アラートしたり
window.status=data;//ステータスバーに表示したり・・
</script>

QSQLite3の許容される登録数は?

商品管理のプログラムを組んでいるのですが
データベースに「SQLite3」を使いたいと思っています。

SQLite3が、安定して動作できる、登録数(行数)はどれくらいでしょうか。
又は、これくらい登録したら、動作が不安定になった/遅くなったなどの情報でも構いません。

ちなみに、商品データベースといっても、商品名と、価格くらいしか記録しません。
ググってみたのですが、それらしい情報が無くて・・・。

宜しく御願いします。

Aベストアンサー

 dbの初心者さんかな?
 dbをSQLiteから覚えるのはちょっと危険ですね。

 SQLiteはユーザという概念もない超軽量dbで、ファイル1個をコピーすればバックアップが完了というお手軽です。しかし、それはdbを理解していて開発時にdb構築などの工程をできるだけ簡略化して本来のアプリケーション開発に専念してアプリケーションの完成度を高めたいという場合に有効と思います。
 SQLiteは、SQL的には他のdbとほぼ遜色ないレベルと思いますが、dbシステムという観点で比較すると、ユーザーという概念がないなどセキュリティーは貧弱というより、セキュリティーがないと考えて差し支えないと思います。 また、型も文字列しかない?ないなど、本格的に使うには機能不足の面は見逃しがたい点があります。

 PostgreSQL, MySQLもWindows版がリリースされているしインストーラーもあるのでインストールは比較的簡単です。 管理は、SQLite < MySQL < PostgreSQL < Oracle という感じで面倒になります。

 私はOracleから覚えたのでSQLiteは本当にSQLが使えるの? と思うほど軽いですが、用途を限定すればOracleと大きな差がないにも事実です。

 いちどWebで MySQLやPostgreSQLを調査した方が良いと思います。

 私の環境はタワー型のPCで、Apache, PHP, SQLite, MySQL をインストールしても快適に使えますが、たぶんノートPCでもMySQLでも問題ないと思います。



 最初の回答で忘れましたが・・・SQLiteに限りませんが、大量のデーターをINSERTする場合は、オート・コミットをoffにしないと非常に遅く( 10倍程度? )なるので必ずoffにしましょう。 ほとんどのdbでディフォルトはONです。

 dbの初心者さんかな?
 dbをSQLiteから覚えるのはちょっと危険ですね。

 SQLiteはユーザという概念もない超軽量dbで、ファイル1個をコピーすればバックアップが完了というお手軽です。しかし、それはdbを理解していて開発時にdb構築などの工程をできるだけ簡略化して本来のアプリケーション開発に専念してアプリケーションの完成度を高めたいという場合に有効と思います。
 SQLiteは、SQL的には他のdbとほぼ遜色ないレベルと思いますが、dbシステムという観点で比較すると、ユーザー...続きを読む

Qjavascriptでのmdb接続について

FC2の無料ホームページスペースを使用して
勉強用に簡単なデータベースをjavascriptで組んでいます。
ローカルでは大体動作確認がとれたので
HP上に設置したところ

[Microsoft][ODBC Microsoft Access Driver] ファイル名が正しくありません。
とエラーが出力されます。

database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=http://xxx.web.fc2.com/Database.mdb;");

上記の様に絶対パスで指定しており、そのパスにファイルもあるのですが
どの様な問題が考えられるでしょうか?

ご教授いただければ幸いです。

よろしくお願いいたします。

Aベストアンサー

http://java-script.seesaa.net/category/3195601-1.html
ローカルに限り動きます サーバでは動きません
http://blog.livedoor.jp/jsajax/archives/657197.html
Accessを動かすには 少なくともWindowsサーバとか
どのサーバでも動くものではないので
環境から考えないといけません

WebでDBを使うなら PHP+SQLiteなどが現実的かもしれません
http://www.phpbook.jp/tutorial/sqlite/
http://nyx.pu1.net/reference/

QSQLiteのUPDATE文を教えてください。

UPDATE tableA, tableB SET
tableA.name = tableB.name
WHERE tableA.id = tableB.id;

上記のSQLが他のデータベースでは動きますが、SQLiteでは動きません。
同意味のSQLはどう書くのでしょうか。お願いします。

Aベストアンサー

UPDATE tableA
SET tableA.name = (
SELECT tableB.name
FROM tableB
WHERE tableA.id = tableB.id
)
WHERE EXISTS (
SELECT tableB.name
FROM tableB
WHERE tableA.id = tableB.id
)

QJavaScriptとACCESSデータベースの連携

はじめましてこんにちわ。

プログラミングについては全くの初心者になりますのでお教え下さい。

テキストボックスにキーワードを入力してACCESSデータベースのデータをWEBに表示させたいと考えています。

その際にはJavaScriptでは出来ないと聞いたのですがやはり無理なのでしょうか?
PHPやASPで作成する形になるのでしょうか?
教えて下さい。お願いします。

Aベストアンサー

一概に不可能ではありません。
がしかし、データベースファイルの場所や、WEBサイトの情報を、サイトを見に来たユーザに見せることになります。セキュリティは×××。

環境にもよりますが、JavaScript が解るのでしたら、ASP+JScript+ADOなど、サーバーサイドのスクリプトで表示させたほうが拡張性があり、おすすめします。

QSQLiteファイルへの同時アクセス過多によるロックについて

PHP5.0+SQLite2.8でユーザー投稿型のサイトを個人運営しています。
1日数万ページビューほどの規模で、
データベースのテーブルのレコード数は数万件、
1レコードあたりのカラム数は数十件ほどあり、
そのテーブルに1日数百件の投稿があります。
それらのデータは随時更新・削除・検索されます。

データベースファイルへのINSERT、UPDATE、DELETE、SELECTなどが重なると
「database is locked」とのエラーメッセージが表示され、
それからもずっとユーザーによるデータベースへのアクセスが続くため、
データベースへのアクセスがしづらい、
もしくはまったくできない状態が延々と続いてしまいます。

SQLiteではトランザクション中にファイル全体がロックされるため
こうした現象が発生するようですが、
この状態を元に戻す方法はないのでしょうか?
ファイルをいったん削除してアップロードしなおすと直るのですが、
ファイルのアップロードには時間がかかるため、
他にいい応急措置の方法がないものかと悩んでいます。

それから、そもそもこの規模のサイトでデータベースを運用するには
SQLiteでは限界があるのでしょうか?
仮に他のデータベースに乗り換えるとしたら、
こうした頻繁に書き込み・更新・削除などが行われるサイトでは
どのデータベースを利用すべきでしょうか?
それともこの程度の規模であれば、
スクリプトを改善することでSQLiteでも対応可能なレベルでしょうか?

なにぶんデータベースに触れて間もないもので知識不足ですが、
どなたか詳しい方にご教授いただければ幸いです。

PHP5.0+SQLite2.8でユーザー投稿型のサイトを個人運営しています。
1日数万ページビューほどの規模で、
データベースのテーブルのレコード数は数万件、
1レコードあたりのカラム数は数十件ほどあり、
そのテーブルに1日数百件の投稿があります。
それらのデータは随時更新・削除・検索されます。

データベースファイルへのINSERT、UPDATE、DELETE、SELECTなどが重なると
「database is locked」とのエラーメッセージが表示され、
それからもずっとユーザーによるデータベースへのアクセスが続くため、
...続きを読む

Aベストアンサー

そのような現象を確認したことがないので推測ですが・・・

たぶんSQLiteの限界と思います。
御自身で推測しているように「ファイル全体がロック・・・」は間違っていないと思います。 SQLiteの対極にあると思われるOracleが作業領域自体を複数のファイルで運用する理由のひとつが、このような現象を回避するためと推測できます。 SQLiteは、他のdbでは存在するdbエンジンと呼ばれるサービス( デーモン )が処理するのではなく、SQLite.exe自体が処理を行っているので複数のクライアントからのリクエストが重複した場合の処理が非力だと考えられます。

また、別の原因として考えられるのはWebサーバーのファイル・ロック機能との競合が考えられます。 これは私も経験している問題で、回避策はSQLiteからMySQLへのdb変更でした。 使用しているWebサーバーでは、SQLiteのロック以外に、単純にファイルがロックされる現象が、時々発生し、Webサーバーの管理者からはロック回避手段はないとの回答が来たのでSQLite -> MySQL 以外に選択の余地が無かったのですが、MySQLに変更して以来 db関連のロックされる現象は発生していないので SQLite の限界と理解しています( ファイルのロックは依然として時々発生しているので )。
ただ、別な回避策として、Webサーバーが管理していない領域にdbを設定する方法があるのですが、管理ツールの関係で移動できないので、本当に回避策なるかは確認していないです。

 なお、PHPでコーディングされているなら「PDO」でdbを操作していますか? もし、PDOで操作しているならdbへの接続文の1行を変更することでdbを変更できるので、開発はSQLite、実運用はMySQLという開発が可能なのでPDOによる記述をお勧めします。

そのような現象を確認したことがないので推測ですが・・・

たぶんSQLiteの限界と思います。
御自身で推測しているように「ファイル全体がロック・・・」は間違っていないと思います。 SQLiteの対極にあると思われるOracleが作業領域自体を複数のファイルで運用する理由のひとつが、このような現象を回避するためと推測できます。 SQLiteは、他のdbでは存在するdbエンジンと呼ばれるサービス( デーモン )が処理するのではなく、SQLite.exe自体が処理を行っているので複数のクライアントからのリクエストが...続きを読む

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qcsvファイルを読み込み、該当項目をhtmlに表示する方法

下記のようなcsvファイルがサーバ上にあり、毎日最新情報に更新されます。
サーバ上の同階層にあるHTMLページに、csvファイルの一部に該当する項目を
表示したいのですが、どのようにしたら実現できるのかわかりません…。
どうか助けてください。よろしくお願いいたします。

■csvファイル(data.csv)
種類,国,売上目標,売上実績,前年売上
りんご,国内,100,90,80
バナナ,国内,100,80,90
りんご,海外,100,110,100
バナナ,海外,100,50,80

■HTMLページ(index.html)
売上達成率【国内】りんご90% (前年比+10) | バナナ80%(前年比-10)
売上達成率【海外】りんご110%(前年比+10)| バナナ50%(前年比-30)

※マイナスになっている場合は赤字にしたいです。

Aベストアンサー

No.5&6です。何も表示されなかったとのことですので、
試しにfc2にアップロードしてみましたので、下記URLでも表示されないでしょうか。

https://fjicode.web.fc2.com/gooqa/9928341/index.html

もし上記サイトでうまく表示されましたら、上記サイトのソース表示から取得した方が手っ取り早いかもしれません。

Q