C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.97600 の関連記事表示

<< 0 >>
■97600  Re[1]: VBScriptでAccessをClose時に時間が掛かる
□投稿者/ 魔界の仮面弁士 -(2021/06/11(Fri) 14:02:24)
    2021/06/11(Fri) 14:23:47 編集(投稿者)

    No97598 (KenPin さん) に返信
    > <SCRIPT LANGUAGE="VBScript" RUNAT=Server>
    > Set DB = Server.CreateObject("ADODB.Connection")

    Classic ASP ですか?

    Web アプリで ACE や Jet を使う事はあまりお奨めしませんが、
    それとは別に気になったのが、ファイルの置き場所。

    .accdb は、該当フォルダへの書き込みアクセス権を必要とするため、
     Server.MapPath("./test.accdb")
    なパスに配置することはセキュリティ上望ましくありません。

    Web サーバーから公開されたパスではなく、
    非公開な物理パスに配置した方が良いでしょう。


    > ADO_DB.Closeの処理で時間が掛かっていました。
    そもそも、ADO_DB とは何ですか?
    Option Explicit が無く、変数宣言にも見当たりません。

    DB.Close や RS.Close とも違うようですし…Global.asa に
     <OBJECT RUNAT="Server" ID="ADO_DB" SCOPE=*** PROGID=***>
    があったりするのでしょうか。


    > 時間をおいて(数時間)
    > 4回目:40秒
    ADO_DB の正体が分からないので、何とも言えないですね。

    状況的には、IIS のアプリケーション プールが解放された後の、
    初回実行時に遅くなっているようですが…。


    > DB.Open "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=" & Server.MapPath("./test.accdb")
    読み取り専用アクセスなら、DB.Open 時の接続文字列に
    Mode プロパティを加えましょう。
    https://accessvba.blog.ss-blog.jp/2011-12-27

    読み書きが発生するのであれば、BeginTrans/CommitTrans を
    必ず入れましょう。これらが無い場合、Jet/ACE は非同期コミットを
    行うため、複数セッションからのアクセス時に問題になります。
    http://www.canalian.com/workshop/access/JetCache.html
記事No.97598 のレス /過去ログ169より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -