問題タブ [parameterized-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - `WHERE … IN @xs`、@xs パラメーターは値リストです: ADO.NET でサポートされていますか?
WHERE … IN @xs
節を使用してパラメーター化された ADO.NET クエリを作成しようとしてい@xs
ます(2, 3, 5, 8, 13)
。これはできますか?もしそうなら、どのように?
これはうまくいきません:
名前空間のSystem.Data.SqlDbType
列挙型も型も、このシナリオがサポートされていることを示唆していません。動的 SQL に戻す必要がありますか (つまり、文字列操作を使用して最終的な SQL を手動で作成する必要がありますか)?System.Data.SqlTypes
CommandText
sql-server - パラメータ化されたデルファイSQLサーバークエリにNULL値を渡す
TSQLDataset パラメータに null 値を渡そうとしています。クエリの形式は次のとおりです。
パラメータ B は null 可能ですが、外部キーでもあります。ユーザーがこのフィールドに何かを入力した場合、B は別のテーブルの値に対して検証する必要があります。空白の場合は無視してください。'' を渡していましたが、これは明らかに FK 違反エラーを生成します。
私は試した:
..しかし、「dbexpress ドライバーは tdbxtypes.unknown データ型をサポートしていません」というエラーが表示されます。
私も試しました:
..しかし、「dbexpress ドライバーは tdbxtypes.variant データ型をサポートしていません」というエラーが発生しました。
私が何を間違っているのかわからないので、助けていただければ幸いです。現在、文字列が入力されているかどうかに基づいてパラメーター リストを作成していますが、これはうまく機能します。検証するパラメーターがかなりあるため、(実際のクエリでは)少し不格好です。
Delphi XE4 と SQL サーバー 2012 を使用しています。
アップデート:
すべての助けに感謝します。あなたの提案はずっと正しかったのですが、その「dbexpress ドライバー」エラーを引き起こしたのは別の何かでした。私の問題を回避するために「柔軟な」パラメーターリストを作成していましたが、これにより例外が発生しました。
... B が空白の場合、パラメーターはクエリに「リスト」されないという考えです。
これが機能しないか、私の実装が機能しません (理由はわかりませんが、明らかにどこかでステップが欠落しています)。
とにかく、作業コード:
java - SQL 準備済みステートメントのパラメーター化されたクエリ
データベースに接続する Java プログラムがあり、準備されたステートメントとパラメーター化されたクエリを使用してデータベース内の何かを更新しようとしています。ここに私のコードの一部があります:
クエスチョン マーク引数に入力する最初の 2 つの値は、1-アカウント、2-ACCT で、3 番目の値は重要ではありません。私の質問は ---> 疑問符を文字列値に結合する方法はありますか? 加算記号が機能しない「ORA=01722: 無効な番号」というエラーが表示される
そのエラーの意味を調べた後、コードを次のように変更しました。
それもうまくいきませんでした。もう一度、疑問符を文字列と組み合わせる方法はありますか?
ありがとう!
編集 ----------> ? の後の文字列テキストを取り出すことにしました。そしてそれを別の場所に置きます:
これは、準備済みステートメントの後、値を ? パラメータ。'f' と 'e' は、データが保存されているハッシュマップです。getValue と getKey から取得した値に文字列を追加しても、上記のコードが機能しないのはなぜでしょうか。エラーは発生しません。コンパイルして実行しますが、データベースに必要な値を更新しません。たとえば、ACCT は最初のキーで、Account は最初の値であるため、それらが渡されると、getter の後にある文字列に追加され、データベースは ACCTVALSETID を Account Value Set Identifier に更新する必要があります。 ? 私は何が欠けていますか?
ありがとう!
sql - パラメータとしてセルを使用して、SQL を使用して Excel でパラメータ化されたクエリを作成する
MS Excel では、SQL Server のデータベースからテーブルをインポートしました。2 つのセルがあるパラメーター化されたクエリを作成したいと考えています。これらの 2 つのセルが G1 と G2 であるとします。G1 はパラメータ/カテゴリを取得し、G2 はパラメータ/カテゴリから値を取得して、インポートしたテーブルをクエリします (基本的に、セル入力から動的な WHERE 句)。誰かがこれを行う方法を教えてもらえますか?
mysql - リンク サーバーを使用して、パラメーター化された動的クエリを SQL Server から MySQL データベースに渡す場合の問題
SQL Server データベースからリンク サーバーを使用して MySQL データベースにクエリを実行しようとしています。パラメータ化された動的 SQL クエリを作成しました。実行すると、エラーは発生しませんが、0 行が返されます。
パラメータをハードコーディングすると、要求した行のデータが返されます。
パラメータ化されたクエリに関して、MySQL を処理するための秘訣はありますか?
この構文は 0 行を返します。
これは 7 を返します。
どんな援助でも大歓迎です。
sql - 従来のASPでvbscriptを使用してパラメータ化されたクエリを挿入すると、型エラーが発生する
編集はまだタイプの不一致エラーを受け取りますが、コメントの助けを借りてコードを更新しました-以下に示す更新されたコード
ASP と VBScript は初めてです。投稿データを SQL データベースに挿入しようとしていますが、クエリが無菌化されていることを確認したいので、パラメーター化されたクエリを使用しようとしています。クエリを実行すると、このエラーが発生します。
私のコードは次のようになります
データを varchar および char として入力しようとしました。私の問題を解決する方法があれば教えてください。また、サイトに 3 つ以上のデータを挿入するつもりです。列ごとにパラメーターを手動で作成するよりも良い方法はありますか?
sql - パラメータ化されたクエリを使用してデータベースに挿入しようとすると、「引数の型が間違っています」というエラーが表示される理由はありますか?
従来のASPのvbscriptでパラメータ化されたクエリを使用して、フォームデータをSQLデータベースに挿入しようとしています(ASPの経験はありません)。パラメータを宣言するためにいくつかのバリエーションを試しましたが、すべてエラーが発生します。
私のデータベースのテーブルは、ApplicationId フィールドに null を許可せず、int 型です。TimeStamp 列は日時です。他のすべてのフィールドは varchar(MAX) です
これが私のコードの最近のバリエーションです。エラーなどを見つけることができればお知らせください
Append の前後に値を代入しようとしました
また、サイトがハッキングされたため、パラメーター化されたクエリでコードを書き直しています。これは、レコードセットなどを使用する必要がある場合に備えて機能した(ただし、インジェクションは許可された)元のコードです
ここまで読んでくれてありがとう
sql - VBAを使用してパラメーターを使用してExcelでテーブルをクエリする
以下は、Excel でパラメーター化されたクエリを作成するために必要なコードです。MS Excel 2013 を実行しています。SQL Server データベースに接続しようとしています。ここから、列の値を入力する単一のセルを使用してこのデータベースにクエリを実行し、その列のすべての行をデータベースにクエリします (WHERE 句)。このセルは動的であると想定されているため、その値を変更すると、クエリの結果が変更されます。ここに私が持っているコードがあります
で:
.Refresh セクションでエラーが発生し続けます。誰でも助けることができますか?ここに私のDBデータベースリンクへのリンクがあります
SQL Server Express を実行しており、サーバーは .\SQLEXPRESS です。誰かが助けることができれば、それは大歓迎です。
sql-server - VBA を使用してパラメーター化されたクエリを使用して Excel で SQL Server をクエリする
VBA を使用して Microsoft Excel のテーブルをクエリしようとしています。このタスクを実行するためにいくつかのコードを作成しましたが、一般的な ODBC エラーであるという実行時エラー '1004' が表示され続けます。このテーブルをクエリできるように、このコードを適切に実行するために何をする必要があるのか わかりません。
接続先のサーバーである SQL Server Express を使用しています。.\SQLEXPRESS
データベース:
products テーブルのクエリ VBA コード:
oracle - インデックスを適切に使用していない Oracle バインド変数の問題
私のシナリオでは、次のクエリは高速に実行されます (7,000 万行のテーブルで 0.5 秒)。
また、バインド変数を使用して高速に実行することもできます:
列にインデックスがあるため、これらは高速に実行されpurchase_id
ます。(読み続けます...)
任意の列で「フィルタリング」できるクエリを作成する必要があります。これは、複数の入力変数を提供し、そうでない限りそれぞれをフィルタリングすることを意味しますnull
。これは最初はうまくいきます。
たとえば、次のクエリも高速 (0.5 秒) に実行されます。
しかし、バインド変数またはストアド プロシージャのいずれかによってクエリをパラメーター化しようとすると、インデックスを無視しているかのように、クエリが劇的に遅くなります (1.5 分)。
現在、私のアプリケーションでは、適切なパフォーマンスを得るために、実行時にクエリを動的に構築する必要があります。これは、パラメーター化されたクエリのすべての利点が失われ、SQL インジェクションについて心配する必要があることを意味します。
同じロジックを維持しながら、動的に構築されたクエリを回避することは可能ですか?