ASP SQLのSelect文について

このQ&Aのポイント
  • テーブル名に全角カッコが含まれている場合、エラーが発生する
  • 全角カッコを認識させる方法を教えてください
  • dbo.テスト(テスト)というテーブル名を参照する方法を教えてください
回答を見る
  • ベストアンサー

asp sqlのselect文について

asp記載は strSql = "Select * From dbo.テスト(テスト) Where 日付='20110324'" objSr.Open str.Sql,objCon.3 ※上記構文前にConnecting.StringやOPENは定義済みです。また、objSrはレコードセットで定義済みです。 質問内容は、このまま実装すると SQLServerエラー(80040e14) '('付近に不適切な構文があります。 と表示されます。 自分が調べたところ、テーブル名が「dbo.テスト(テスト)」で一部全角カッコがあるるので、 エラーになったのだと思われます。 ちなみに全角カッコではないテーブル名の参照は可能でした。 全角カッコを認識させるにはどうしたらよいでしょうか? [dbo.テスト(テスト)]は試しましたが([ ]で囲む) オブジェクト名dbo.テスト(テスト)が無効ですと表示され、エラーとなりました。 ご教授をお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

dbo.[テスト(テスト)] というか、テーブル名を変更するべき

knmrstkt
質問者

お礼

解決できました。 ありがとうございました。 テーブル名変更したいのですが、私の会社機関では全国の機関において一律でデータベースを構築されたものを使用しているので、構えないのです。

関連するQ&A

  • ASPからSQLサーバーへ接続できない

    色々な質問を見たのですが 環境などの違いもあり解決できず 困っています。 環境は1台のPC(W2000)にIIS+SQLサーバー2005デベロッパーエディションとか言うテスト用のバージョンをインストールしています。 また SQLサーバーはWindows認証を使っています。 SQLサーバーにマネジメントエキスプレスで接続して システムデータベースにPLEMIAというデータベース名を作り テーブルのシステムテーブルにpure_kihonというテーブルを作っています。 ASPにて試験的につないでみようと思い Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "Data Source=(local);" & _ "Initial Catalog=PLEMIA;" & _ "Integrated Security=SSPI;" objCon.Open strSQL = "SELECT * FROM [pure_kihon]" objRS.Open strSQL, objCon, 3 こうした場合  objCon.Open のところで引っかかり Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。 と出てしまいます。 SQLサーバー自体は稼働しているようなんですが 何がいけないのか よく分かりません。 どなたか解決策などご教授頂けると幸いです。 よろしくお願いします。

  • ASP+アクセスでのSQLコメントについて

    SQL文にコメントを入れたいのですが、下記エラーになります。下記コードでSQL文にコメント入れる方法を教えてください。 Microsoft JET Database Engine (0x80040E14) SQL ステートメントの後に文字が見つかりました。 SELECT * FROM sqltable where idnum like 'hoge';-- SELECT * FROM sqltable where idnum like 'hoge'--; を試して両方同じエラーでした。 Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.Mode=1 objCon.ConnectionString = Server.MapPath("db1.mdb") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.Open strSQL = "SELECT * FROM sqltable where idnum like 'hoge';--" SET result = objCon.Execute(strSQL) objCon.Close Set objCon = Nothing 環境は以下のようになります。 WinXP+IIS5+Access2003

  • ASPでSQL Serverへアクセス

    お世話になります。 ASPでSQL Serverにアクセスしているのですが、 strSQL = "select * from data" dataの部分(テーブル)を全角文字のテーブル指定にするとエラーが発生します。どのように記述すればいいのでしょうか?

  • ASP + MDBで発生したエラーが解決できません。。。

    こんにちは。 いま、ローカルPCでシステム開発をしています。 環境としては、  WindowsXP + IIS + ASP + MDB(ACCESS2003) です。 いま、MDBにDB接続して、データを取得しようとしているのですが、以下のエラーが発生していて、治りません。 【エラータイプ】 Microsoft VBScript 実行時エラー (0x800A01B6) オブジェクトでサポートされていないプロパティまたはメソッドです。:Open ソースコードは以下の通りです。 【ソース】 'コネクションオブジェクト Set objCon = Server.CreateObject("ADODB.Connection") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.ConnectionString = "C:\test.mdb" objCon.Open 'レコードセットオブジェクト objRs = Server.CreateObject("ADODB.Recordset") objRs.Open strSQL, objCon, 3 上記のobjRs.Open→Set objRs = objCon.Executeに変更するとエラーは発生しないのですが、RecordCountなどのプロパティが利用できません。 色々と調査したのですが、全くわかりません。 どなたか情報をご存知でしたら、ぜひともご教示ください。 宜しくお願いします。

  • SQLserver2008でのSQL発行時ののオブジェクトエラーについ

    SQLserver2008でのSQL発行時ののオブジェクトエラーについて 「sa」ユーザーでDB作成後テーブルも複数作成。そのあとにこのSQLを「SELECT * FROM (テーブル名)」で発行すると、赤線が出てきてオブジェクト(テーブル名)が無効です。」とのエラーメッセージが出てきます。けれども結果は正しく表示されます。 何がいけないのでしょうか? 「DB名」.「dbo」.「テーブル名」でも同じです・・・ スキーマ関係があまり詳しくないので是非教えてください。

  • SQLサーバーへの接続が どうしてもウマくいきません

    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 %>

  • SQLでスキーマ名(所有者名)の修飾無しでテーブル参照したい

    select * from [テーブル名] で問い合わせをしたいんですが、 select * from [スキーマ名].[テーブル名] でなければエラーになってしまいます。 (「オブジェクト名 'テーブル名' は無効です。」といった、テーブルが無い旨のエラーが出ます。) 所有者(スキーマ名?)をdboに変更してするとテーブル名だけで参照できます。 例えば、テーブルの所有者を'test_user'に変更した場合、 test_userでログインしているにもかかわらず(クエリアナライザ)、修飾が無いと参照できません。 'test_user'はsystem administratorsロールに入れてあります。 SQLServerをインストールし直して DBを一から構築してもそうなります。 何か施さないといけないことがあるのでしょうか。 思い当たることがございましたら、ご教示頂ければと思います。 環境は SQL Server 2000 です。

  • ASP+IIS5.1+SQLServer

    動作環境OSはXP_pro、IIS5.1+ASPで、(.NETではありません)SqlServer2000のdbに接続してテーブルデータを表示していたスクリプトがあります。(システムDSN設定して) このたび、Sqlserverを2008に変えて、DBデータを2008にアタッチしてスクリプトを実行してみましたらエラーは表示されないものの、ブラウザ画面は真っ白で何も表示されません。 DBに接続できているようなのですが、データを表示することができません。 どこが原因なのでしょう? SSMSのログファイルの表示では、「Starting up database "●●"」となっておりエラーではない?ようです。 データを表示するという部分を、テーブルがEOFなら"EOF"、EOFでないなら"NOTEOF"をブラウザに表示するようなスクリプトにすると"NOTEOF"と画面に表示されます。 スクリプト内は、 cstrDSNNAME, cstrDSNUSER, cstrDSNPAWDは定数で、ユーザ名は'sa'です。 sqlserver2008のログインの'sa'に設定しているパスワードはcstrDSNPAWDと同じです。 Dim adoCon Dim adoRs '接続 -------------------------------------- Set adoCon = Server.CreateObject("ADODB.Connection") Set adoRsM = Server.CreateObject("ADODB.Recordset") adoCon.Open cstrDSNNAME, cstrDSNUSER, cstrDSNPAWD adoCon.CommandTimeout = 0 strSql="Select * from 商品M" adoRsM.Open strSql, adoCon, adOpenForwardOnly       (↓では”NOTEOF”と表示される) if adoRsM.EOF then "EOF"と表示される処理 else        "NOTEOF"と表示される処理 end if ↑を、テーブルデータを表示するような処理にするとブラウザ画面は真っ白で、エラーなどは表示されず、ブラウザの下のバーには「ページが表示されました」とでます。 何が原因かを調べるにはどうやったらいいでしょうか?? よろしくお願いいたします。

  • EXCEL2003 VBAでのSQL文について

    「'#'付近に不適切な構文があります。」 というエラーが出ます。 ソースは以下の通りです。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set cn = CreateObject("ADODB.Connection") cn.CommandTimeout = 0 cn.Open SRC_SQL Dim dateTarget_s As Date Dim dateTarget_e As Date dateTarget_s = CDate(Format$(dateTarget, "yyyy/mm/dd")) dateTarget_e = CDate(Format$(DateAdd("m", 1, dateTarget), "yyyy/mm/dd")) '指定年月(全て) strSql = "SELECT SUM(現金金額), SUM(クレジット金額), SUM(割引金額), SUM(出庫台数)" strSql = strSql & " FROM " & TBL_TEST strSql = strSql & " WHERE 物件NO = '" & p_strBukNo & "'" strSql = strSql & " AND 日付 >= #" & dateTarget_s & "#" strSql = strSql & " AND 日付 < #" & dateTarget_e & "#" Set rs = CreateObject("ADODB.Recordset") rs.Open strSql, cn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - どこがおかしいでしょうか? イミディエイトウィンドで見る限りは、私には原因がわかりませんでした。 よろしくお願いします。

  • VC++でSQLへSELECT文を送ったのですが…

    #include "stdafx.h" #include <stdio.h> #include <windows.h> #include <string> using namespace System; using namespace System::Data; using namespace System::Data::SqlClient; char a; int main(void) { String^ str; SqlConnection^ sqlConn = gcnew SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\○○\\test.mdf;Integrated Security=True;User Instance=True"); sqlConn->Open(); str = "Select test FROM Table1"; SqlCommand^ sqlCmd = gcnew SqlCommand(str,sqlConn);// SqlDataReader^ ExecuteReader (); sqlConn->Close(); } int sub() { a = ExecuteReader; printf (a,"表示テスト\n"); return 0; } の構文でSQL ServerへSELECT文を送り、そこで得た結果を 表示しようと思ったのですが 1>select-test.cpp 1>.\select-test.cpp(28) : error C2065: 'ExecuteReader' : 定義されていない識別子です。 1>.\select-test.cpp(29) : error C2664: 'printf' : 1 番目の引数を 'char' から 'const char *' に変換できません。 (新しい機能 ; ヘルプを参照) 1> 整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは 関数スタイル キャストが必要です。 と2つのエラーを返されてしまいました。 開発環境は OS XPのHomeEditon Visual C++ ExpressEdition SQL Server 2005 Express です。 よろしくお願いします。