2017-04-09 23 views
-1

OBDC System DSN接続を介してAccessデータベースに接続するC++プログラムがあります。そのDSNはProgramDataフォルダ内のMDBへのパスです。ユーザーAがアプリケーションを実行すると、そのMDBファイルがAppData \ Localフォルダにコピーされ、Appが作成するMDBの更新はAppDataフォルダのMDBに適用されます。ユーザーBがアプリケーションを実行する場合、ユーザーAがMDBに行った変更をユーザーに見てもらいたいからです。ProgramDataのC++ app MDBは、ユーザーのAppDataフォルダにコピーします。

1)MDBをAppDataフォルダにコピーしないで、代わりにProgramDataでMDBをコピーする方法はありますか?

2)私はこれを正しく行っていますか? MDBをProgramData以外の別の場所に置いて、適切に共有する必要がありますか?

3)起動時に自分のアプリケーションをMDBのタイムスタンプと比較させる必要がありますか?起動時にProgramDataから引き出すことができました。終了するとProgramDataに書き戻すことができましたか?これはハックのように思えるし、私は許可が問題

+0

私たちは1)の回答をどのように知っていますか?あなたのアプリケーションです。それとも?あなたはそれを変更できますか? –

+0

アプリケーションはそれをコピーしていません。 System DSN経由でMDBに当たっていて、System DSNがProgramDataの場所を指しています。私のアプリの中には、ユーザーのAppDataフォルダを参照するものはありません...私はそれがバックエンドでODBCが行っていたものだと思っていました。そこにそれをコピーしていました。 – jrhoads23

答えて

0

Cに指示し使用する共有フォルダ(サブフォルダ)、%Public%であるかどうさえ知らない:公共 \ \ユーザー。

+0

ありがとう!そのためにInno Setup定数があるかどうか知っていますか?私は彼らの文書で1つを見ないでください – jrhoads23

+0

申し訳ありません、いいえ、私はInno Setupにはほとんど分かりません。しかし、私はいくつかの専門家のためにそれをキャッチするためのタグを追加しました。 – Gustav

+0

MDBを直接C:\ Users \ Publicの下に作成する必要がありますか?私が尋ねる理由は、Inno Setupインストーラでそのパスをハードコーディングしていて、それが実行されるとC:\ Users \ Public \ Public Documentsの下に自分のフォルダがインストールされます。それはどこに行く必要がありますか?または、C:\ Users \ Publicの下に置くことに焦点を当てるべきですか? – jrhoads23

0

この投稿は、グスタフによってOPさんのコメントと前の回答に関連している:

使用する共有フォルダ(サブフォルダ)、Cに導き%公立%:\ユーザーは、公開を\。

私はInnoセットアップエキスパートではありませんが、 "C:\ Users \ Public"の定義済みの定数は存在しません。しかし、唯一の定数があれば、いつでもこれを行うことができます。

#defineマクロを使用して、このようなスクリプトの最上部に定数を作成します。

#define sf "C:\Users\Public" 

あなたはどこでもあなたのスクリプトに使用できます。例:

[Files] 
Source: "app.exe"; DestDir: "{#sf}\MyApp\"; 
+0

はい私はそれにも定数があるとは思っていません。下の私の質問を参照してください... Inno SetupはC:\ Users \ Publicの下に置いていません... C:\ Users \ Public \ Public Documentsの下に置いています – jrhoads23

+0

@ jrhoads23この方法を使いたい場合は、 * Inno Setupの「C:\ Users \ Publicの解決」のようなもっと具体的な質問をしてください。 –

+0

します。大変ありがとうございました! – jrhoads23

関連する問題