問題タブ [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# - SqlCe パラメータのエラー
私はこの素敵な惑星で多くのパラメーター化されたクエリを作成しましたが、このようなエラーをスローしたものはありません... WTFudge?!?!
エラー:
明らかに、コンパイラは私の SQL ステートメントを気に入りません... しかし、問題はありませんか???
これが私のコードです。
ご覧のとおり、非常に単純な SQL ステートメントです。「@table」は愚かに予約されているか何かだったのかもしれませんが、@tableName、@var、@everythingを試してみました!!! 何が問題なのかわからない。
デバッグ中に、実際に SqlCeParameterCollection に @table パラメータがあることを確認しました。そこにありました。晴天!!
c# - パラメータ化されたクエリでGUIDを渡すにはどうすればよいですか?
私の現在の最良のコードは次のとおりです。
これは実行されますが、なんとゼロ行に影響します。keyuidのSqlDbTypeをUniqueIdentifierに変更すると、「文字列をuniqueidentifierに変換できませんでした」というバリエーションが12個表示されてしまいます。私はデータのクリーンさのためにパラメータ化されたクエリを使用する必要があります、私はどのように本当に立ち往生しています...
java - これは、ユーザーのワイルドカード検索を許可する正しい方法ですか?
たとえば、テキストボックス名を指定すると、ユーザー要件はワイルドカード検索(contains、starts with、ends withなど)を実行できるようにする必要があります。
バックエンド(Java)でパラメーター化されたクエリを使用している限り、SQLワイルドカード文字('%'および'_')を入力として受け入れても大丈夫ですか?事実上、ユーザーが独自の正規表現を作成できるようにします。これは、ユーザーの要件のすべてです。
例:
ユーザーは
/li>このパラメータは、バックエンドに次のようにフィードされます。
/li>- 結果セットには、ユーザーが正規表現を提供したため、予想どおり、「Waren」、「Jared」、「Clare」、「Blare」という名前のユーザーが含まれます。
SQLパラメータ化クエリを使用すると、SQLインジェクションを許可しないようにすることができます。これはワイルドカード検索のユーザー要件を実装しますが、おそらく私が見逃した可能性のあるものに違反していますか?
更新:Googleがヘルプページからワイルドカードも許可していることがわかりました。
ado - 従来の ADO パラメーター化されたテキスト クエリを取得して、従来の MFC アプリで動作させることはできません
従来の ADO を使用する MFC デスクトップ アプリの保守を開始しました。アプリ全体で使用されるインポートされた ADO をラップするデータベース アクセス dll があります。ストアド プロシージャが使用されますが、パラメータ化されていないテキスト クエリも多数あります。それらをパラメーター化されたクエリに変換するように依頼されました。私が変更した最初の 2 つのクエリで問題が発生しました。一意の整数でインデックス付けされた "Parameters" (関係なし) というテーブルから文字列値を取得する関数を 2 回呼び出しています。整数を保持してクエリを実行する ADO パラメータを作成します。これが 2 回目に呼び出されると、パラメーターが設定されず、-1 が返され (SQL プロファイラーで表示され、最初は正しい)、空のレコードセットが生成されます。私はこれを説明するのに途方に暮れています(過去の経験から私は'
詳細な (奇妙な) 情報: "GetParams" への 2 つの関数呼び出しの存在または実行のいずれかによって、データ アクセス dll 内の他のメソッドが呼び出されたときに _com_errors (レコードセットのコピーを伴う) をスローすることに気付きました。無関係な dll。2 つの関数呼び出しをコメント アウトすると、エラーがスローされたメソッドに変更がなく、エラーが消えます。
Edit 21:31 4/11/11 ClearParameters の実装を指定する必要がありました - 上記のコードの下部を参照してください パラメータが設定されていない限り、クエリで代入される値は "-1" ではなく "-1" でした。 19007" SQL Server プロファイラーの記録によると、-1 は、パラメーターの作成時に値が正常に割り当てられていないことに起因する誤った値だと思います。ADO Command & Recordset オブジェクトは DBRecordSet コンストラクターで作成されることを付け加えておきます。
編集21:32 5/11/11 問題を解決した可能性があります。私は ADO の「backcompat」バージョンを使用しています。アプリが VS6 で作成されてからメソッド パラメーターの型が変更されたかどうかはわかりませんが、CreateParameter のシグネチャは次のようになりました。
/li>
サンプル コードのパラメータとは異なります (名前は LPSTR、MSDN の整数パラメータのサイズは -1、値はバリアントではなく long として渡されます) また、MSDN の例では、パラメータ値が設定されています。 Create の後にもう一度 (これが関連しているかどうかはわかりませんが、これが既知の「癖」でない限り、なぜ 2 回設定するのですか?) 型を ADO オブジェクト モデルに準拠させることで、うまくいったようです。テストですべてが正しく機能することが確認された場合、これを回答として投稿します
sql-server - SQLServerがパラメーター化されたクエリで特定の単語を含む結果を返さない
パラメータ化されたクエリを使用して、検索ボックスから取得した特定の単語を検索していますが、特定の単語が問題を引き起こしています。これらの1つは、「パッド」という単語です。
これは私が使用しているレシピデータベースで、「パッタイ」と呼ばれるレシピが含まれています。「thai」という単語をクエリパラメータに渡すと、そのレシピは正常に返されます。「パッド」という単語を渡すと、クエリは約10秒間実行され、レコードは返されません。
「pad」が予約キーワードであることに疑いを持っていたので、他のキーワードを試してきました。これまでに同じ問題を引き起こしていることがわかったのは「proc」だけです。
問題が何であるか、そしてもっと重要なことに、私がそれをどのように回避できるかについてのアイデア。
php - 比較演算子としてパラメーターをPDOステートメントにバインドできますか?
このコードは
注射は安全ですか?
比較演算子としてパラメーターをPDOステートメントにバインドできますか?
python - SPARQL パラメータ化クエリ
良い一日!Python には rdflib を適用します。質問があります。変数を SPARQL のクエリに入れるにはどうすればよいですか? コースの「OSPF」の代わりに:OSPF!
@ msalvadores コンソールで変数を入力したい。--->python parse.py OSPF 変数(OSPF)の値は別のものかもしれません。どうすればクエリ(WHERE)に初期化できますか? 数日前に変数を補間することで質問を解決しました。このような:
しかし、それは別の方法で行うことができると思います。私の意見では、解決策は私が提示したものとはまったく異なるからです。
c# - パラメータ区切り文字
ADO.NETでコーディングしているC#アプリケーションがあります。IDbCommand
、およびIDbConnection
インターフェイスを使用して、クロスデータベースコードを作成 してきました。
これまでのところ、すべてがうまく機能しています(Firebird、SQLite、SQL Server 2005、2008、Access 2007、Access 2010、およびOracle 11g全体)。
私が抱えている問題は、サポートする必要のあるOracle10gデータベースがあることです。
すべての「通常の」もの、接続の作成、およびコマンドは正常に機能しますが、インターフェイスを使用してパラメーターを作成しようとするIDataParameter
とcmd.CreateParamater()
、クエリのパラメーター構文が原因で10gで失敗します(パラメーター化されたクエリを使用しています)。
どうやら、Oracle 10gは、箱から出して、@
記号の使用をサポートしていません。Oracle 11g、SQL Server、および言及されている他のすべてのものはそうです。
たとえば、次のクエリは10gで失敗します。
ただし、コロンを使用すると、上記のado.netインターフェイスを使用して問題なく成功するため、このクエリは成功します。
残念ながら、コロンは他のほとんどのデータベース実装では機能しません。
@
または、パラメータの区切り文字の代わりに区切り文字を使用できるようにする、Oracle10gデータベースで反転できるオプションはありますか:
。
私が持っている現在の解決策は理想的とは言えません。顧客/クライアントがプロパティを初期化しParameterDelimiter
(デフォルトでは@
記号になっています)、を使用してstring.Format
を挿入しParameterDelimiter
ます。
顧客に区切り文字を渡さなくても、またはベースライブラリにデータベースの実装について知らせずに、これを行うための標準的な方法はありますか?(たとえば、ODP.NETを含め、に対してチェックしますOracleConnection
)
c# - ループ内のExecuteNonQuery
C#のループ内にデータベースレコードを挿入しようとしています。
次のように値をハードコーディングすると機能します。
しかし、パラメーター化されたクエリを使用すると、機能しません-次のようにパラメーター化されたクエリに値をハードコーディングしても、次のようになります。
誰かが私がここで間違っているところを見ることができますか?
どうもありがとう!
delphi - 存在しないパラメーターに対してParamByNameを呼び出すとどうなりますか?
私はDelphiを初めて使用し、次のコードを受け取りました(いくつかの無関係な部分を省略しました)。これについて、Delphiの機能を理解しようとしています。
別のファイルでは、そのクエリが使用されますが、クエリで定義されていないパラメータが追加されます。
このパラメーター'part'
は、行われた選択について何か変更しますか?言い換えれば、SQLクエリは自動的に次のように変更されますか?