
現在Access2003とSQLServer2005ExpressEditonで勉強中の者です。
ストアドプロシージャを動的に作成したいと思い
以下のページを参考に、NorthwindCS.adpはダウンロードせず
自前で簡単に環境を作ってストアドプロシージャをつくりテストに成功しました。
http://support.microsoft.com/kb/286828/ja
そこで「もし検索対象のテーブルに摘要欄があり、"未"を含む検索をしたい場合はどうすればよいか」と思い、摘要フィールド(Varchar)を作成してストアドプロシージャに変数@TEKIYO(Varchar)を作り、以下の行を足しました。
----------------------------------------------------------------
--摘要の検索条件がNULLかどうかを確認します。
--ここに値が含まれている場合WHERE句を作成します。
IF @TEKIYO IS NOT NULL
BEGIN
IF @SQLSTRING IS NOT NULL
BEGIN
SELECT @SQLSTRING = @SQLSTRING + ' AND TEKIYO LIKE ''%''' + @TEKIYO + '%'''
END
ELSE
BEGIN
SELECT @SQLSTRING = 'WHERE TEKIYO LIKE ''%''' + @TEKIYO + '%'''
END
END
----------------------------------------------------------------
adpの検索フォーム摘要欄に「未」と入力し実行ボタンを押すと「実行時エラー102 '未'付近に不適切な構文があります」と出てしまいました。
シングルクォーテーションの打ち方が間違っているのだろうと色々調べたり、打ち方を変えてみたりしたのですが、解決できず悩んでおります。
正解はどうなのでしょうか?教えてください。
なにとぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
'(シングルクォーテーション)が含まれた文字列を考えるのって、最初はすごく戸惑いますよね。
以下のように考えていくと、わかりやすいのかな、と思います。
1.''で囲まれた部分は文字列として扱われる
2.'(シングルクォーテーション)を文字列として扱うのには、''(シングルクォーテーション二つ)
まず実際に作成したい文字列を記載し、上記を踏まえて分解していきます。
1.TEKIYO LIKE '%未%' ←作成したい文字列
2.TEKIYO LIKE ''%未%'' ←シングルクォーテーション部分を二つに
3.TEKIYO LIKE ''% 未 %'' ←変数部分となるところを分ける
4.'TEKIYO LIKE ''%' 未 '%''' ←変数以外の文字列となる部分をそれぞれシングルクォーテーションで囲む
5.'TEKIYO LIKE ''%' + @TEKIYO + '%''' ←3.で切り出した変数部分となるところに ++で変数を埋め込む
こんな感じでいかがでしょうか。
お礼が遅くなってすみません!ありがとうございます!!
今作成したところバッチリ成功しました!
ものすごくわかりやすく教えていただいて本当にありがとうございます!
Management Studio Expressで作業していたのですが、'を打つたびに後に続く構文が赤くなったりグレーになったりで、どこまで打てばおさまるのか、おっしゃる通り戸惑いまくっていました。
まだまだ勉強していかなければならないので(セキュリティ関連さっぱりなのです。。)躓く事が多々あると思いますが、また何卒よろしくお願いいたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Outlook 送受信エラー
-
複数アドインプログラムをひと...
-
ストアドから得られるレコード...
-
エクセルのxans.について
-
ストアドプロシージャの条件分...
-
広告ブロッカーのアドカードと...
-
エクセルで個人用マクロの配布方法
-
VB.NETでテキストボックスから...
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
差し込み後、元データを変更し...
-
INSERT文でフィールドの1つだ...
-
SQLServerで文字列の末尾からあ...
-
SQLで列名を変数にできないでし...
-
日付により変動する「単価」を...
-
列番号による項目の取得について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlook 送受信エラー
-
エクセルで個人用マクロの配布方法
-
エクセルのxans.について
-
速度が低下し無効になったアド...
-
Excel再起動でアドインのタブが...
-
広告ブロッカーのアドカードと...
-
ストアド内で動的にSQLを作る際...
-
excel 複数のアドインソフトの...
-
アドインの削除
-
Word2007でアドインタブが表示...
-
携帯のアドレス変更の時に・・・
-
パワーポイントのアドインのソ...
-
ストアドから得られるレコード...
-
Excelから自作アドインを完全に...
-
複数アドインプログラムをひと...
-
ストアドでの値のとり方について
-
エクセルでアドイン
-
ストアドプロシージャのネスト
-
MySQLのストアドプロシージャー...
-
ストアドプロシージャの変数に...
おすすめ情報