
こんにちは。
以前も、ASPでAccessファイルへの接続について、こちらでお世話になりました。
別サーバで作ったショッピングシステムのサーバ移行をしています。
これは別の人が作ったシステムで、社内には誰もわかる人がいません。
(私が簡単なサイトが作れるので、話が回ってきた感じです)
ASPで作られているのですが、91個のASPファイルから同一Accessファイルへ接続している作りになっていることが今日分かりました。
コードに直接フルパスを記入するやり方ではなく、ODBCデータソースにファイルを選択してやり、DSN名で呼び出すやり方でコードが書いてあったので、調べてODBCデータソースにDBを選択しました。
しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。
コードは
Set cnn2=Server.CreateObject("ADODB.Connection")
cnn2.open DSN名
ODBCデータソースへの設定は、ユーザDSNとシステムDSNに
MS Access Driver(mdb)を追加し、追加する際にデータベース部分に接続したいAccessファイルを選択しています。
その時のDSN名を、コードに記載されている名前と同じDSN名にしました。
試しにDSN名ではなくフルパスでAccessファイルに接続したら、問題なく表示されました。
この現象は、以前使っていたサーバのODBCに設定が残っている為、以前のサーバを見にいってしまっているのでしょうか?
それとも、単純に私の設定が間違っているのでしょうか?
知識不足で分かりにくい表現ばかりだと思いますが、どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
> しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。
どのような確認をして、どういったエラーがが出て、以前のサーバーへ接続しようとしているという結論になったのかを説明してみては?
旧サーバーをシャットダウンする。
旧サーバー上の DSN 定義の名前を変える。
旧サーバー上の DSN 定義を削除する。
旧サーバー上の MDB を別の場所に移す/ファイル名を変える/削除する
など、どれでもまぁ 「旧サーバーの MDB への連絡路を絶つ」 という状態にしてから新サーバーでテストしてみましたか?
明らかに DSN 名を使って MDB へアクセスしているコードが書かれている ASP のページを表示しようとしても旧サーバーに接続しているのでしょうか。
エラーが出たページのコードをもう一度確認してみてはどうでしょうかね。
おそらく一部のページでは接続文字列を直接コードの中に書いちゃってるって線じゃないでしょうか。
# まさか新サーバーに作った DSN に旧サーバーの MDB へのパスが書かれているってことはないと思いますが。
この回答への補足
回答ありがとうございます。
まず、使用しているサーバへリモートデスクトップで入り、ローカルアクセスをしたところ、下記エラーが出ました。
Microsoft JET Database Engine
エラー '80004005'
パス '以前使っていたであろうサーバのパス' は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。
次に、旧サーバでの状態ですが、確認が取れていない状態です。
これは早急に確認を取り、旧サーバ上の設定をクリアにして貰います。
コードについては、
<%
Dim sSQL2,rs2,cnn2
Dim lMetaDesc, lMetaKwds
Set rs2 = Server.CreateObject("ADODB.RecordSet")
Set cnn2=Server.CreateObject("ADODB.Connection")
cnn2.open DSN名
// Tags = request.querystring("Tags")
// Tags = 14
sSQL2 = "SELECT * FROM content WHERE Id=" & Tags
rs2.Open sSQL2,cnn2,0,1
if NOT rs2.EOF then
lMetaKwds=rs2("MetaKwds")
lMetaDesc=rs2("MetaDesc")
%>
<meta name="keywords" content="<%=lMetaKwds%>">
<meta name="description" content="<%=lMetaDesc%>">
<%
end if
rs2.Close
cnn2.Close
set rs2 = nothing
set cnn2 = nothing
%>
が全てです。
試しに、現サーバのDSN名を「例:AAA」として、オープンの部分を
cnn2.open AAA
としてみました。
(ODBCではデータソース選択済み、単純にDSN名を変えただけ)
その上で再度ローカルアクセスしてみましたが、エラー内容は変わりませんでした。
新サーバのDSNには新サーバのパスを書いています。
さすがに旧サーバのパスは書いてないです。
元々、海外サーバで運用し開発者も海外の方らしく、開発者の方に詳細を聞いて欲しいと上司に言っても、うやむやにされるので詳細が分からないまま、サーバでテストしている状態です。
こんな状態で質問してしまって、本当にすみません。
よろしくお願い致します。
昨日、接続部分だけのコードが書いてあるファイルを発見しました。
原因判明です。
ありがとうございました。ご回答、参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
防犯カメラの接続方式P2Pについて
-
マイクラ統合版Windows7できま...
-
学校のWiFiに繋げると履歴が見...
-
サンダーバードを複数のPCで...
-
バックアップ先をFTPサーバーに...
-
他人のアドレスでメールってで...
-
PHP LANネットワーク内 IPアド...
-
VBAでサーバー上のファイルを開く
-
エックスサーバーでhttpd.conf...
-
ユーザーの切り替え時にバッチ...
-
IMAPがオフラインでも読める理...
-
インストールしたてのVirtualBo...
-
サーバーってどこにあるの?
-
【PC】TerrariaのtModLoaderサ...
-
プロキシサーバーの設定について
-
インターフェースサーバーとは...
-
YahooBBでサーバーをさtっちす...
-
Googleドライブなどを使わずに...
-
DMZの構成(Netscreen-25)
-
誘われたDiscordサーバーから追...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASPでAccess接続 ODBCの設定に...
-
winscpのエラー
-
こんなURLは可能ですか?
-
WTSについて
-
【minecraft】サーバーに接続で...
-
インターネットの履歴はサーバ...
-
さくらレンタルサーバーのホー...
-
PHPとSQLについて
-
IEでは このページは表示できま...
-
サービスIPって何ですか?
-
iOS4で…
-
VPNに接続すると、インターネッ...
-
スパムメールの攻撃に困ってい...
-
TinyFTPDaemonのサービスが稼動...
-
LAN内の通信を行ったあとインタ...
-
FFFTPでローカル側も表示するには?
-
ADSL接続でプロキシサーバーを...
-
教えて!gooにつながりにくい。
-
社内LANにあるMOにアクセスする
-
<秋葉原>サーバー関連に強い...
おすすめ情報