締切済み バインドについて 2007/08/01 11:20 VB2005でADODBを使ってデータ接続を行っているのですが、SQL変数を当てる際のバインド変数のつかいかたがわかりません詳しい方おしえていただけないでしょうか? みんなの回答 (1) 専門家の回答 みんなの回答 kero_mio ベストアンサー率90% (94/104) 2007/08/09 15:20 回答No.1 DBは、SQL-Serverですか?Oracleですか? SQL変数というぐらいなので、Oracleかと思いますが、 もう少し詳しい情報、現在どのようなコードを書いているか サンプルを掲載して頂けたらと思います。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Visual Basic 関連するQ&A PHPでバインドメカニズムを使えるか?? 質問があるのですがよろしくお願いします。 現在、SQLインジェクションについて学んでおり、perlのDBIインターフェースを介してデータベースにアクセスする際は、プレースホルダを利用することによって変数をバインドし、SQLインジェクションを防ぐことが出来ることを覚えました。 そこで質問なのですが、PHPでバインドメカニズムを利用することは出来るでしょうか??もし可能であるのなら、どのような記述をすればよいでしょうか??分かる方いらっしゃいましたらご教授よろしくお願いします。 バインド変数について PL/SQLのバインド変数について調べていますが理解できず困っています。 [理解内容] 1.利点 :SQL文の検索にバインド変数を利用すると、同一のSQLとして実行できる ⇒ 繰り返し処理(ループ)では有効 2.使用方法 :静的SQL・動的SQLで使用可能 [疑問点] 静的SQLではバインド変数をどう宣言すればよいですか? [SQL*Plus]・[動的SQL]は例文がありました ●SQL*Plusでの宣言方法 (例) SQL> set null '<null>' SQL> set head off SQL> variable var_at_sqlplus number ●動的SQLの記述方法 (例) declare v_sql varchar2(256); v_id varchar2(3); begin v_sql = 'select id into :v_id from test'; execute immediate v_sql into v_id; end; ●静的SQL ・・・【 エラーになる 】 declare variable v_id varchar2(3); begin select id into :v_id from test' end; どんな事でもかまいませんので回答よろしくお願いします PLSQLのバインド変数の件です。 こんにちわ。 いま,VBからテーブル名と列名をバインド変数としてPLSQLに渡しました。 そこで,PLSQLのなかで, v_Sql := 'UPDATE :Table_Name SET :Column_Name = :After_Change_Value WHERE :Column_Name = :Before_Change_Value ' ; のようにSQLを組み立て, DBMS_SQL.PARSE(v_Cursor, v_Sql, DBMS_SQL.NATIVE); でSQLを解析したところ,ERR-903となってしまいます。 ちなみに,:Table_Nameと:Column_Nameにテーブル名と列名をそのまま記述したところ,上記のエラーはパスできます。 VBからPLSQLにテーブル名と列名を変数として渡して,PLSQLのなかでSQLを解釈するにはどうすれば良いでしょうか? 教えてください。 宜しくお願いします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Order by句でバインド変数を使うには? SQL文のOrder by句で2つのバインド変数を用いて、ソートする項目・ソート順を決めたいと思い、以下のようなSQLを作成いたしました。 Select row_Number() Over(Order by Case :ITEM When 'PJコード' then PJコード When '部署コード' then 部署コード end Case :LINE When '1' then DESC When '2' then ASC end .... バインド変数を直接Order by句に入れますと、結果は帰ってくるのですが、バインド変数の値がすべて無視されてデータが出力されます。 以上の理由より、Case文にてバインド変数の値を参照し、ソートする項目と順番を決めております。 上記のソースで実行しますとORA-00907:右かっこがありませんというエラーが表示されます。 2つ目のCase文(:LINE)を消し、最初のCase文だけを残して、並び順(DESC・ASC)を埋め込むと、実行される状態になります。 Oracleのバージョンは11gです。 ご回答よろしくお願いいたします。 Pro*cのバインド変数をカンマ区切りで指定できますか? Pro*cのバインド変数で下記のようなwhere句のinでカンマ区切りを指定することはできないのでしょうか? Oracle9iです。 適当な書き方で申し訳ありませんがよろしくお願いします。 ------------------------ EXEC SQL BEGIN DECLARE SECTION; const char *bindAAA; EXEC SQL END DECLARE SECTION; // bindAAAバインド変数に'1,2,3'という具合に格納 ↓のSQLを実行したい select * from AAA where BBB in (:bindAAA) VB2005 DataGridViewでの非バインド文字列のこと VB2005でDataGridViewを使ってプログラムをしているのですが。 DataTableとBiding(リンク?)しているDataGridViewで。 DataTableとバインドしてない項目X(非バインド列)をDataGridViewに新たに追加して。 例えば、DataTableの項目Yが1だと項目Xも1という風に表示させたいのですが。 一度目はうまく表示されるのですが。その画面を閉じてまた開いたら表示されないのですが。 どうしたら良いでしょうか?アドバイスをお願いします。 開発環境: XinXP Pro SQL Server2005 Express VS2005 Pro VB2005 バインド機構とはどういったものでしょうか? H21 秋 情報セキュリティ 問14 SQLインジェクション対策について、Webアプリケーションの実装における対策とWebアプリケーションの実装以外の対策の組合せとして、適切なものはどれか。 答え ウ webアプリケーションの実装における対策 として下記になっています バインド機構を利用する ネットで色々見たのですがわかりません バインド機構とはどういったのもでしょうか 資格勉強程度にはSQLは勉強しました よろしくお願いします DataGridのバインドで苦しんでおります DataAdapterを使わずに仮想テーブルとバインドさせる事は可能なのでしょうか?(DBの接続が常時接続なので…) イメージなのですが、 (1)仮想テーブル作成 (2)DataGridと(1)をバインド 漠然とした質問で申し訳ありません。宜しくお願いいたします。 PRO*Cでテーブル名にバインド変数は使えますか? PRO*Cのプログラムで、テーブル名とカラム名をパラメータで 受け取って、ホスト変数(バインド変数?)に代入して、 それぞれ、SELECT文等で使用できますか? PL/SQLなら出来るでしょうか? EXEC SQL BEGIN DECLARE SECTION; varchar t_name[64]; /* テーブル名 */ varchar col_name[64]; /* カラム名 */ EXEC SQL END DECLARE SECTION; /* 中略 パラメータの値をホスト変数に代入する処理を行う */ ↓以下のように出来ますか? SELECT :col_name FROM :t_name ; VB6のオラクルのバインド変数 バインド変数の使い方がわかりません。 OraDatabase1.Parameters.Remove "SYAIN_ID" OraDatabase1.Parameters.Add "SYAIN_ID", "00000000", 1 OraDatabase1.Parameters("SYAIN_ID").serverType = 1 このようにバインド変数をまず定義すると思いますが "00000000"の意味が良くわかりません。 0でも使えますか? それともバインド変数として使用するフィールドのものと同じ長さに指定しないといけないですか? 例えば select * from T_SYAIN a where a.SYAIN_ID = :SYAIN_ID でSYAIN_IDはvarchar(8)とした場合 SYAIN_IDはvarchar(8)なので "00000000"と指定するべきなのですか? SQL Developerでクエリ実行 select * from テーブルA where カラムA2 = :バインド変数 select * from テーブルB where カラムB2 = :バインド変数 SQL Developerでエディタに記述した複数のSQLを一度に実行する際に ①同じ名前のバインド変数であっても何度も値を聞いてくるのを1回で済ませたい ②SQLごとにひらく問い合せ結果について名前が問い合せ結果1、問い合せ結果2だとわかりづらいので、固有の名前をクエリ実行時に自動でつけるようにしたい よろしくお願いします。 オートキャドで外部参照がバインドできない。 オートキャドLT2000で、あるファイルを外部参照しバインドするのですができません。 --バインドできないからデーターが分解できないと判断。 何か設定があるのか教えて下さい。 データー容量が異常に増えたので外部参照バインドにて別ファイルにしょうとしているのですがうまくできません。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム コンテキストにバインド??? 【HTTPステータス 500】 javax.naming.NameNotFoundException: 名前 jdbc はこのコンテキストにバインドされていません …というエラーに対しての原因は、何が考えられるのでしょうか? JSPのプログラムからMySQLへのDB接続をしようと試みております。 しかし色々と触れば触るほど、さっぱりなのです。 エラーの内容はどのようなことを指しているのかまた、エラーへの対策や接続設定の際の確認事項をご指導して頂ければと思います。 まったくの初心者なもので補足情報が必要であるかとも思いますので、必要であればご提供します。 なんとも初歩的な内容であると思いますが、よろしくお願い致します! バインドの方法? 前回フレッツADSLの設定について質問した者ですが フレッツADSLの接続ツールをインストールしようとすると、「あなたのコンピュータのイーサネットアダプタを TCP/IPとバインドして下さい。現在システムにこの種のアダプターが検出されていません、、、」とのメッセージがでます。 Windows Meですが、リカバリーしてOSを入れ替えました。 このバインドの仕方について教えてください NECのVL800Rで、元々LANボードが装備してあり、どうすればよいのかわからず困っています。 ORA-1036?? 突然本題ですが、 PL/SQLで条件によりINSERTかUPDATE処理を行いたいのです。 コンパイルは通りましたが、実行すると、 ORA-1036 というエラーが出ます。 マニュアルには ORA-1036:変数のname/numが無効です。 原因:ユーザー・サイドにバインド・コンテキストを見つけられません。 解決方法:バインドされている変数がSQL文に存在することを確認してください。 とあります。 insertやupdateの項目を何度もチェックしましたが、間違っていないと思います。 このエラーがでる可能性というのはどういう場合があるのか是非教えていただきたいのです。 チェックをしたものの、変数の見落としか、あるいは別の可能性があるのか知っている方がいましたら教えてもらえるとすっごく助かります。 あと、バインド・コンテキストとはなんでしょうか? 調べてみましたが、調べ方が悪いのか見つけられませんでした。 データバインドについて データバインドを使用して、1レコードの1項目が複数行あるデータをHTML上に表示したいのですがどうしてもうまく行きません。そもそもできないのでしょうか? ○元データ(CSVファイル) あああ\nいいい,ううう, かかか\nきき,くくく, ○実際に表示されるHTML |--------------------------| |項目1 |項目2 | |--------------------------| |あああ\nいいい |ううう | |--------------------------| |かかか\nきき |くくく | |--------------------------| ○理想のHTML |------------------| |項目1 |項目2 | |------------------| |あああ |ううう | |いいい | | |------------------| |かかか |くくく | |きき | | |------------------| 環境は、Windows2000 IE6.0 で行っております。 データバインド機能について データバインド機能について リンクを貼るのはCGIでないと無理だという回答がありましたが どうしてもCSVデータを用いて 「一覧表⇒リンク先へ」とする場合の 簡単な方法はないでしょうか? また、フリーのCGIなどありましたらご紹介いただけないでしょうか? よろしくお願いいたします。 IN演算子の中身を動的に生成 動的SQLのバインド変数に対して、PreparedStatement.setXXXXX()メソッドで値が設定できますが、これと同様に、IN演算子の()内をバインド変数化し、その都度内容を設定してやる事は可能でしょうか。 例えば、 SELECT * FROM tbl_a WHERE cd IN (?) のようなSQLをプリコンパイルしたオブジェクトに対して、()内が(1','2','3')や('1','2')などのように動的に項目数、内容値が変更できるような設定方法をご存知の方がおられましたら、是非ご教示下さい。 バインドと接続(BindExceptionとConnectException)の違い BindExceptionとConnectExceptionの違いがわからず悩んでいます。 Socketを使って通信する際、すでに接続が確立しているポート番号を 使うことはできないのはわかります。 ここで、「すでに接続が確立している」とは たとえばnetstatコマンド(netstat -n)でstatusがESTABLISHED になっていることかなあと思っています。 ところが、同じESTABLISHEDとなっているポートでも、 ある番号ではBindExceptionが、別の番号ではConnectExceptionが出ます。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/class-use/SocketException.html を見てみると、 BindException: ソケットをローカルアドレスおよびポートにバインドしようとしているときエラーが発生したことを示します。 ConnectException : ソケットをリモートアドレスおよびポートに接続しようとしたときエラーが発生したことを示します。 のようにありますが、「バインド」と「接続」の違いがわかりません。 どなかた教えて頂ける方、いらっしゃいませんでしょうか。 PDOのバインドをforeachでまとめて処理したいができません…。 いつもお世話になっております。 PHP5.2.5 --------------------------- DB(フィールドは以下3項目) ・id(primary key) ・color ・num --------------------------- //DBにインサートするデータ群(配列に格納してある) $insert_array = array('color'=>'red','num'=>6); //================================================== // *フィールド名とそれに対応するデータをバインドする。 //================================================== //================================================== // *バインド:方法1 //================================================== foreach($insert_array as $field => $value){ //確認処理 //echo $field.'<br/>'; //echo $value.'<br/>'; //バインド(foreachで、1つずつバインドしていく) $stmt->bindParam(':'.$field,$value); } //================================================== // *バインド:方法2(↓こちらだと上手くいく。) //================================================== /* $stmt->bindParam(':'.'color',$insert_array['color']); $stmt->bindParam(':'.'num',$insert_array['num']); */ //================================================== // *バインド後、「$stmt->execute();」した結果 // *DBにインサートされたものをprint_r()にて確認 //================================================== ★方法1 Array ( [id] => 15 [color] => 6 [num] => 6 ) //--------------------------- ★方法2 Array ( [id] => 16 [color] => red [num] => 6 ) //--------------------------- ★方法1の結果の、「 [color] => 6」って一体…?! 方法2のように、同じバインド処理を手書きで繰り返す分にはうまくいくのですが、 方法1のようなforeachでまとめて処理するやり方だとうまくいきません。 方法1の問題箇所をどなたか教えて下さい。 宜しくお願い致します。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など