質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

925閲覧

MS Accessに、postgresqlをリンクして、webページを表示したい

tamago83

総合スコア60

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/02/13 00:33

前提・実現したいこと

ローカルネットワーク内の、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

※文字化けしていますが、おそらく、接続先が見つからないのようなものだと思います。

該当のソースコード

php

1$db = \DB::connection('access'); 2$device = $db->table('access-table') 3 ->first(); 4↑msaccessのリンクテーブル正常終了 5$ipList = $db->table('postgre-table') 6 ->first(); 7↑postgresqlのリンクテーブルエラー終了

試したこと

・システムdsnの追加
・cse.exeで、該当accessに接続して、accessのテーブル、potgresqlのテーブル両方とも正常に取得手来ております。

補足情報(FW/ツールのバージョンなど)

Windows10 pro 64bit
php7.2 32bit
apache2.4 32bit
msaccess 2019
postgresql 12
laravel 5.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

viewをms accessのみにして、一元管理したいと考えています。

それはAccessのリンクテーブルのリンク先を切り替え、プログラム側からはそのAccessのリンクテーブルを参照するという事ですか?

もしそうなら、Accessのリンクテーブルの接続を都度切り替える必要があります。
若しくはDSNの内容の変更で行うならそれが都度変更される必要があります。

それぞれのDBに接続できているのに、敢えてAccess経由にする理由がいまいち分かりません。

投稿2020/02/13 00:46

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamago83

2020/02/13 02:14

言葉不足申し訳ありません。tableと書いておりましたが、実際はviewになります。 msaccessには、2つファイルがあり 1.データが入ったファイル 2.リンクのみを持つファイル 「2.リンクのみを持つファイル」で、以下の2つのリンクを作成 ・1.データが入ったファイル ・postgresql 理由 ・webアプリケーションに必要なviewを1カ所にまとめたい ※別database間でのjoinはできないと思うので、そちらは考えていません。 ・データファイルはできる限り触らないようにしたい ・今後mysql、sqliteなど、増えていった場合に、都度設定をlaravelにするのではなく、accessファイル+ODBCデータソースのみで行いたい ※参照のみのシステムになります。 ・いろいろ書いてますが、複数のdatabaseの設定を記載するのが面倒なので、1個のファイルだけで、できたらいいなという面倒くさがりな理由です。 ※その割には、何時間もはまっているので結果マイナスですが。
sazi

2020/02/13 02:53

敢えてAccess経由にした場合、性能的な問題が出そうですが、それと管理のしやすさを秤にかけた場合、どちらが優先されるかは、お分かりですよね。
tamago83

2020/02/13 03:50

はい。本来であれば、性能を優先するとは思いますが、今回は、速度よりも管理のしやすさ優先で考えています。
sazi

2020/02/13 03:58

解決済みになっていますが、解決していますか? 解決していないのであれば、解決積みを外した方が、他の方からの回答があるかもしれません。
tamago83

2020/02/13 04:21

ありがとうございます。解決しておりませんでしたので、解決済みをはざさせていただきました。
sazi

2020/02/13 04:34

Accessで管理するテーブルは同じテーブルで接続先が違うものは存在しておらず、一度リンクを設定したら問題ない状況でしょうか?
tamago83

2020/02/20 01:31

作成しなおして、テーブル1つだけのものを作成しましたが、テーブル見つからずのエラーでした。 apacheユーザ経由(サービスをローカルユーザ変更もしましたが)でしたので、ユーザだけでなく、システムDNSも設定していましたがうまくいきませんでっした。 あきらめて、postgreは直接つなぐことにしました。 ご相談していただきありがとうございました。
sazi

2020/02/20 01:41

諦めたのならしょうがありませんね。 質問は解決済みにして下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問