マンガでよめる痔のこと・薬のこと

SQLサーバーを始めたばかり です。
ASPで SQLサーバーのデータを表示しようとしています。
環境: WinXP (Pro)
    IIS設定済み
    SQL Server 2005 Express Edition

近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。
サーバーが現用機なので 自PCで動作確認してからと思っています。

色々ネットを調べて まず接続しようとしましたが そこでつまづいています。
この方法以外も沢山試しましたが全てうまく行きません。

2005 ExpressでDBとテスト用のテーブルが作成してあります。
そのデータを読み出せれば 第一段階とトライしますが、
IEから接続にいくと「objCon.Open」がエラーになってしまいます。
ASPファイルの内容は 以下です
なお DB名は 「PC名¥SQLEXPRESS」といれています
よろしく お願いします
----------------------------------------------------
<%@ LANGUAGE="VBScript" %>
<% option explicit %>
<%
Dim objCon ' DB接続コネクション
Dim objRS ' DB結果レコードセット
Dim sql ' SQL文
Dim errflg ' エラーフラグ

'DataSource名
Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます
Const IC = "DB名"     
'ユーザ名
Const User = "sa"
'パスワード
Const Pwd = "sa"

Set objCon = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

objCon.ConnectionString = "Provider=SQLOLEDB;" & _
"User ID=" & User & ";" & _
"Password=" & Pwd & ";" & _
"Data Source=" & DS & ";" & _
"Initial Catalog=" & IC

objCon.Open

sql = "select * from Aテーブル"
objRS.Open sql,objCon,adOpenStatic,adLockReadOnly
%>
レコード件数 <%=objRS.RecordCount%>
<%
' DBclose
objCon.Close()
Set objCon = Nothing
objRS.Close()
Set objRS = Nothing
%>

このQ&Aに関連する最新のQ&A

A 回答 (4件)

#1です 



貴方の環境がわからないのですが
IISが稼働しているマシンにDBが入っているなら
Const DS = "111.111.0.1"

Const DS = "127.0.0.1"
でも試してください。

この回答への補足

回答ありがとうございます。レスポンスが遅くなった事をお詫びします。

12.0.0.1で試しましたが エラーは同じところです。
----------
エラー タイプ
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません。
/xxxx/xxx.asp, line 30

補足日時:2010/02/05 09:22
    • good
    • 0

#1です おはようございます。



TCP/IPを許可しているとのことですが、「ポート1433を解放している」に間違いないですか?
設定の仕方が分からなければファイアーウォールをOFFにして確認してみてください。

この回答への補足

回答ありがとう ございます。レスポンスが遅くなりました。スミマセン。

SQLサーバーにて TCP/IPを有効にしてIPALLのTCPポートを1433にセットしています。ファイアーウォールを無効にしてやりましたが 同じエラーです。
よろしくお願いしmす

補足日時:2010/02/05 09:56
    • good
    • 0

#1です。



XPのファイアーウォールに引っ掛かっていませんか?

この回答への補足

回答ありがとう ございます
ファイアーウォールは TCP/IPを許可しています。
普通のhtmlファイルは 他人からも 見る事ができています。

補足日時:2010/02/03 19:25
    • good
    • 0

以下を確認してみてください。



スタート→プログラム→Microsoft SQL Server2005→構成ツール→SQL Server Configuration Maneger起動

Server Configuration Maneger
左フレーム内のSQL Server2005ネットワーク構成→MSSQLSERVERのプロトコル 選択
右フレーム内の TCP/IPが有効になっているか?なっていなければ有効にする。

これでダメならエラーコードなりエラーメッセージを記載していただいたほうがよろしいかと思われます。

この回答への補足

回答ありがとうございます。
エラーを載せるべきでした。
HTTP 500.100 - 内部サーバー エラー - ASP エラー
インターネット インフォメーション サービス
エラー タイプ
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません
-----------------
なお TCP/IPの設定は OKでした。

補足日時:2010/02/03 11:10
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSQLサーバーへの接続に 接続したいのですが・・・

質問する場所が 違ったかもしれないので 再度質問させていただきます。
SQLサーバーを始めたばかり です。
ASPで SQLサーバーのデータを表示しようとしています。
環境: WinXP (Pro)
    IIS設定済み
    SQL Server 2005 Express Edition

近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。
サーバーが現用機なので 自PCで動作確認してからと思っています。

色々ネットや本を調べて まず接続しようとしましたが そこでつまづいています。
この方法以外も沢山試しましたが全てうまく行きません。

2005 ExpressでDBとテスト用のテーブルが作成してあります。
そのデータを読み出せれば 第一段階とトライしますが、
IEから接続にいくと「objCon.Open」がエラーになってしまいます。
ASPファイルの内容は 以下です
なお DB名は 「作成した名前」と入れています
よろしく お願いします
----------------------------------------------------
<%@ LANGUAGE="VBScript" %>
<% option explicit %>
<%
Dim objCon ' DB接続コネクション
Dim objRS ' DB結果レコードセット
Dim sql ' SQL文
Dim errflg ' エラーフラグ
'DataSource名
Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます
Const IC = "DB名"     
'ユーザ名
Const User = "sa"
'パスワード
Const Pwd = "sa"
Set objCon = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
objCon.ConnectionString = "Provider=SQLOLEDB;" & _
"User ID=" & User & ";" & _
"Password=" & Pwd & ";" & _
"Data Source=" & DS & ";" & _
"Initial Catalog=" & IC
objCon.Open'ここで エラーになります

sql = "select * from Aテーブル"
objRS.Open sql,objCon,adOpenStatic,adLockReadOnly
%>
レコード件数 <%=objRS.RecordCount%>
<%
' DBclose
objCon.Close()
Set objCon = Nothing
objRS.Close()
Set objRS = Nothing
%>
なお エラー内容は 以下です
-----------------------------
HTTP 500.100 - 内部サーバー エラー - ASP エラー
インターネット インフォメーション サービス
エラー タイプ
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません
-----------------------------
また 
1.IPアドレスは Const DS = "127.0.0.1"でも 同様なエラーです
2.表示できるASPファイルを置き、他のPCから 表示できる環境です

質問する場所が 違ったかもしれないので 再度質問させていただきます。
SQLサーバーを始めたばかり です。
ASPで SQLサーバーのデータを表示しようとしています。
環境: WinXP (Pro)
    IIS設定済み
    SQL Server 2005 Express Edition

近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。
サーバーが現用機なので 自PCで動作確認してからと思っています。

色々ネットや本を調べて まず接続しようとしましたが そこでつまづい...続きを読む

Aベストアンサー

>それとも saで Server認証が接続できないとダメでしょうか?

ご提示されているコーディングからすると、
Management Studio を起動して SQL Server 認証を選び、ユーザID・パスワード共に sa でログインできる筈です。それができないのであれば、ASP からもつながりません。
SQL Server 認証を利用できるようにし、かつ sa アカウントを有効にする必要があります。

>調べた限りでは saは パスワード無しで セットされていると思うのです。

であれば、コーディング上もパスワード無しではないでしょうか。
今はパスワードも sa を設定されているようですが。。。

QExcel VBAで複数シートをコピーする

Excel VBAで複数のシートを新たらしいブックにコピーする方法が分かりません。

一応、Selectで全てのシートを選択し
コピーする方法は分かるのですが
出来ればSelectなどの画面遷移をプログラム内に含ませたくありません

シートは n件存在します。
ご存知の方がおられましたら
ぜひ、教えて頂けないでしょうか?

Aベストアンサー

すいません、勉強不足でした。
ただ単純に「全てのシートを選択」し「新規ファイルにコピー」という動作であれば、
sheets.Select
sheets.Copy
だけでできました。

Qリモートデスクトップとターミナルサービスの違いについて

先生方々教えてください。私はまだこの業界を勉強し始めなので、変な質問だとは思いますが、リモートデスクトップとターミナルサービスの違いについてよくわかりません。調べて説明文を読んでみるのですが、
* ターミナルサービスはリモート上のサーバーアプリを動かすときに必要・・・
と書いてあるのですが、リモートから何らかのアプリを動かすのは、リモートデスクトップでもできるのでは?例えば:そのサーバーに入っている、OFFICE系のアプリを動かすとか・・・たぶん短絡的な考えだと思いますが、サーバーアプリの私の捉えている意味が違うのかもしれません。そこで
1.ここで言うサーバーアプリとは何でしょうか?
2.このリモートデスクトップとターミナルサービスの主な使い道・違いを簡単に教えていただけないでしょうか?

どうかこんな初心者に良いお知恵をお貸し下さい。
宜しくお願いいたします。

Aベストアンサー

リモートデスクトップはWinXPのもののことを言っているとして、ターミナルはWinのターミナルエディションやメタフレームのことをいっているという前提で話をします。

1.リモートデスクトップ
基本的に1ログインのみ。リモートログインするとコンソールはリモートログアウトされます。
遠距離からのメンテナンスなどに使います。(PCの乗っ取り的)

2.ターミナルサーバー
サーバーに複数のユーザーが個別にリモートでログインします。各個人が自分用の仮想デスクトップを所有し、他ユーザーの影響を受けません。(シンクライアント的)

ターミナルの用途は:
・機密性の高い情報を扱う時などローカルにデータを保存しない利点
・通常のPCでは処理が重すぎて使用できない場合にクラスター化されているサーバーでアプリケーションを実行できる利点
・Unixなど、Windows以外OSのデスクトップを画面のみ飛ばして実行できる点

上記などなど。
他にも何十GBものデータを処理するために、データにアクセスするよりも、データを持っているサーバーで処理させて画面を飛ばした方が効果的な場合とかもあります。

nde7

リモートデスクトップはWinXPのもののことを言っているとして、ターミナルはWinのターミナルエディションやメタフレームのことをいっているという前提で話をします。

1.リモートデスクトップ
基本的に1ログインのみ。リモートログインするとコンソールはリモートログアウトされます。
遠距離からのメンテナンスなどに使います。(PCの乗っ取り的)

2.ターミナルサーバー
サーバーに複数のユーザーが個別にリモートでログインします。各個人が自分用の仮想デスクトップを所有し、他ユーザーの影響を受けま...続きを読む

QSQLSERVERにADOで接続

現在、サーバマシンのコンピュータ名では接続できるのですが、
サーバのIPアドレスで接続したいのですが、できるのでしょうか?
サーバ名のところをIPアドレスにしてもだめでした
【VB6.0】
Dim cnn As New ADODB.Connection
cnn.Open "Provider=SQLOLEDB;" & _
"SERVER=サーバ名;" & _
"Initial Catalog=pubs;", "sa", ""

Aベストアンサー

私が、スタッフのためにまとめたHPからの抜粋です。
NO.1さんのように<IPアドレス>での検証はしていませんが・・・。
少し、リンクプロパティの全容もヒントになるかなと思います。

【必須データリンクプロパティ】

PROVIDER・・・・・・・・・・・SQLOLEDB.1 を指定します。
Data Source・・・・・・・・SQL Server または MSDE が作動しているコンピュータのネットワーク上のサーバー名を指定します。
INITIAL CATALOG・・・・接続し開くデータベース名を指定します。
USER ID・・・・・・・・・・・・SQL Server 認証を使用している場合に、ユーザーアカウント名を措定します。
PASSWORD・・・・・・・・・・・SQL Server 認証を使用している場合に、ユーザーのパスワードを指定します。

例えば、Accessプロジェクトのプロパティは次のようになっています。

【Windows NTの統合セキュリティを使用する場合】

PROVIDER=SQLOLEDB.1;
INTEGRATED SECURITY=SSPI;
PERSIST SECURITY INFO=FALSE;
INITIAL CATALOG=Sales2006SQL;
DATA SOURCE=(local);
Use Procedure for Prepare=1;
Auto Translate=True;
Workstation ID=LAVIE

【特定のユーザー名とパスワードを使用する場合】

PROVIDER=SQLOLEDB.1;
PASSWORD=login007;
PERSIST SECURITY INFO=TRUE;
USER ID=Operator;
INITIAL CATALOG=Sales2006SQL;
DATA SOURCE=(local);
Use Procedure for Prepare=1;
Auto Translate=True;
Packet Size=4096;
Workstation ID=LAVIE

私が、スタッフのためにまとめたHPからの抜粋です。
NO.1さんのように<IPアドレス>での検証はしていませんが・・・。
少し、リンクプロパティの全容もヒントになるかなと思います。

【必須データリンクプロパティ】

PROVIDER・・・・・・・・・・・SQLOLEDB.1 を指定します。
Data Source・・・・・・・・SQL Server または MSDE が作動しているコンピュータのネットワーク上のサーバー名を指定します。
INITIAL CATALOG・・・・接続し開くデータベース名を指定します。
USER ID・・・・・・...続きを読む

Q複数のシートを別ブックにコピーして保存したい

毎回、シート数が変動するEXCELファイルの、表示されているシートのみ(非表示シート有)を、
別のブックにコピーして、セルの書式と値を貼付けし、
元ファイルのシート名と同じシート名を付けたいのですが、
どんなVBAを組めば良いでしょうか?
下記の様に作成してみましたが、ファイル自体がコピペされてしまう様で、
自分のイメージした通りに動きません・・・。
ご教授の程、宜しくお願いいたします。

Sub データ書き出し()
Dim ws As Worksheet
Dim i As Long
With ActiveWorkbook
i = Worksheets.Count
For j = 1 To i

ThisWorkbook.Worksheets(j).Cells.Copy
.Worksheets(j).Range("A1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Next j
Application.CutCopyMode = False
.SaveAs "月別DATA_"
End With
End Sub

毎回、シート数が変動するEXCELファイルの、表示されているシートのみ(非表示シート有)を、
別のブックにコピーして、セルの書式と値を貼付けし、
元ファイルのシート名と同じシート名を付けたいのですが、
どんなVBAを組めば良いでしょうか?
下記の様に作成してみましたが、ファイル自体がコピペされてしまう様で、
自分のイメージした通りに動きません・・・。
ご教授の程、宜しくお願いいたします。

Sub データ書き出し()
Dim ws As Worksheet
Dim i As Long
With ActiveWorkbook
i = Workshe...続きを読む

Aベストアンサー

質問の文言と提示のコードには矛盾点、疑問点がありますが、
要するに以下のようなことですか?

元ブック : ThisWorkbook
コピー先 : まとめ.xls

だと仮定して、、

●元ブックの表示シートを"まとめ.xls"にコピーする

●コピーするときは、"まとめ.xls”に既にコピーしてあるシートの次からコピーする
(要するに、まとめ.xlsのシートはコピーするたびに増えていくということです)

●コピーは書式と値のみにする

●コピーしたシート名は、元ブックのシート名と同じにする
(ま、これはシートをコピーすればいいわけですが)
 

もし、このようなことなら以下のコードでもできます。
 
'--------------------------------------------
Sub test()
 Dim MatomeBK As Workbook
 Dim MotoBK As Workbook
 Dim Sht As Worksheet

 Set MotoBK = ThisWorkbook
 Set MatomeBK = Workbooks("まとめ.xls")

 For Each Sht In MotoBK.Worksheets
   If Sht.Visible = True Then
     Sht.Copy After:=MatomeBK.Worksheets(MatomeBK.Worksheets.Count)
     ActiveSheet.Cells.Copy
     ActiveSheet.Cells(1).PasteSpecial Paste:=xlValues
     Application.CutCopyMode = False
   End If
 Next Sht

'● MatomeBK.Close True 'まとめ.xls の上書き保存&CLOSE

End Sub
'----------------------------------------------------

それから、コピー先にコピー元と同じシート名があったらどうするかなど
処理の流れを実際に即しても少し詳しく説明する必要があるでしょう。
以上です。
 
 

質問の文言と提示のコードには矛盾点、疑問点がありますが、
要するに以下のようなことですか?

元ブック : ThisWorkbook
コピー先 : まとめ.xls

だと仮定して、、

●元ブックの表示シートを"まとめ.xls"にコピーする

●コピーするときは、"まとめ.xls”に既にコピーしてあるシートの次からコピーする
(要するに、まとめ.xlsのシートはコピーするたびに増えていくということです)

●コピーは書式と値のみにする

●コピーしたシート名は、元ブックのシート名と同じにする
(ま、これはシ...続きを読む


人気Q&Aランキング