
こんにちは。
以前も、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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ASPからACCESSのOPENどうしても出来ません
Microsoft ASP
-
ACCESSのデータをWebブラウザで表示(イントラ環境)
その他(データベース)
-
ASPプログラミングでADODB.Connection (0x800A0E79)エラーが発生
Microsoft ASP
-
4
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
5
IIS7.0 と ASP を使ってMDBファイルを参照したい
Microsoft ASP
-
6
クラシックASPでのエラー処理について
Microsoft ASP
-
7
データソース名および指定された既定のドライバが見つかりません。
Oracle
-
8
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VNCでログインする方法を教えて...
-
5
VPNに接続すると、インターネッ...
-
6
winscpのエラー
-
7
ASPでAccess接続 ODBCの設定に...
-
8
DNS:MXレコードの優先順位につ...
-
9
Cookieの語源は?
-
10
他人名義でのインターネットで...
-
11
VPN GateにAndroidからVPN接続...
-
12
サーバーってどこにあるの?
-
13
VBAでサーバー上のファイルを開く
-
14
UPSの消費電力が分からない。
-
15
インターフェースサーバーとは...
-
16
bccで一括送信した先を印刷する...
-
17
他人のアドレスでメールってで...
-
18
IMAPがオフラインでも読める理...
-
19
【PC】TerrariaのtModLoaderサ...
-
20
Excelシート / ハイパーリンク ...
おすすめ情報
公式facebook
公式twitter