MS Accessに、postgresqlをリンクして、webページを表示したい
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 582
前提・実現したいこと
ローカルネットワーク内の、2,3人くらいの部署内で使用するwebシステムを作成しています。
databaseソフトは、access、postgresqlで分かれており、それぞれに複数のdatabaseに分かれています。
phpでそれぞれ接続元を変えながらはできるのですが、viewをms accessのみにして、一元管理したいと考えています。
発生している問題・エラーメッセージ
SQLSTATE[HY000]: General error: -2001 [Microsoft][ODBC Microsoft Access Driver] ODBC--'IPList' �ւ̐ڑ������s���܂����B
SQLExecute[-2001] at ext\pdo_odbc\odbc_stmt.c:258) (SQL: select top 1 * from [postgre-table] order by 1 asc
※文字化けしていますが、おそらく、接続先が見つからないのようなものだと思います。
該当のソースコード
$db = \DB::connection('access');
$device = $db->table('access-table')
->first();
↑msaccessのリンクテーブル正常終了
$ipList = $db->table('postgre-table')
->first();
↑postgresqlのリンクテーブルエラー終了
試したこと
・システムdsnの追加
・cse.exeで、該当accessに接続して、accessのテーブル、potgresqlのテーブル両方とも正常に取得手来ております。
補足情報(FW/ツールのバージョンなど)
Windows10 pro 64bit
php7.2 32bit
apache2.4 32bit
msaccess 2019
postgresql 12
laravel 5.7
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
viewをms accessのみにして、一元管理したいと考えています。
それはAccessのリンクテーブルのリンク先を切り替え、プログラム側からはそのAccessのリンクテーブルを参照するという事ですか?
もしそうなら、Accessのリンクテーブルの接続を都度切り替える必要があります。
若しくはDSNの内容の変更で行うならそれが都度変更される必要があります。
それぞれのDBに接続できているのに、敢えてAccess経由にする理由がいまいち分かりません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.19%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2020/02/13 11:14
msaccessには、2つファイルがあり
1.データが入ったファイル
2.リンクのみを持つファイル
「2.リンクのみを持つファイル」で、以下の2つのリンクを作成
・1.データが入ったファイル
・postgresql
理由
・webアプリケーションに必要なviewを1カ所にまとめたい
※別database間でのjoinはできないと思うので、そちらは考えていません。
・データファイルはできる限り触らないようにしたい
・今後mysql、sqliteなど、増えていった場合に、都度設定をlaravelにするのではなく、accessファイル+ODBCデータソースのみで行いたい
※参照のみのシステムになります。
・いろいろ書いてますが、複数のdatabaseの設定を記載するのが面倒なので、1個のファイルだけで、できたらいいなという面倒くさがりな理由です。
※その割には、何時間もはまっているので結果マイナスですが。
2020/02/13 11:53
2020/02/13 12:50
2020/02/13 12:58
解決していないのであれば、解決積みを外した方が、他の方からの回答があるかもしれません。
2020/02/13 13:21
2020/02/13 13:34
2020/02/20 10:31
apacheユーザ経由(サービスをローカルユーザ変更もしましたが)でしたので、ユーザだけでなく、システムDNSも設定していましたがうまくいきませんでっした。
あきらめて、postgreは直接つなぐことにしました。
ご相談していただきありがとうございました。
2020/02/20 10:41
質問は解決済みにして下さい。