問題タブ [sqlexception]
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.
sql-server - タイムアウト SqlExceptions のトラブルシューティング
なぜ起こっているのか理解するのに苦労している奇妙な行動があります。断続的なタイムアウト例外が発生しています。私たちの開発環境では再現できないため、ボリュームに関連していると確信しています。応急処置として、SQL コマンドのタイムアウトを 60 秒に上げてみましたが、これは役に立たないようです。ここに奇妙な部分があります。失敗しているプロセスのログを確認すると、開始時刻と終了時刻が次のようになります。
- 2008 年 9 月 16 日 16:21:49
- 2008 年 9 月 16 日 16:22:19
では、コマンドのタイムアウトを 60 に設定したのに、30 秒でタイムアウトになるのはどうしてでしょうか??
参考までに、スローされる例外を次に示します。
c# - SqlException.Dataコレクションに追加されるオブジェクトは[Serializable]である必要がありますか?
SqlException.Dataコレクションに追加されるオブジェクトは[Serializable]である必要がありますか?
c# - SQL 例外のより細かい粒度?
C#では、SQL例外でより細かい粒度を取得する方法はありますか?
非常に多くの問題が発生する可能性があることは承知していますが、特定のケースを別の方法で処理したいと考えており、エラー メッセージの解析はあまりエレガントではないようです。
また、フレームワークによって作成されたエラーメッセージですか、それともデータベース固有ですか?
たとえば、INSERT で主キー違反がある場合、エラー メッセージは常に次のようになります。
PRIMARY KEY 制約 'PK_tblProduct' に違反しています。オブジェクト 'dbo.tblProduct' に重複するキーを挿入できません。
またはそのSQLServer固有のものです。
アップデート
エラー番号を調べているようですが、さまざまなエラー番号を取得できる場所はありますか?
18456: ログオンに失敗しました 18488: パスワードの有効期限が切れました
sql - あいまいな列名エラー
Microsoft SQL Server 2000 で次の (完全な) SQL クエリを実行すると:
次の例外が発生します。
ここで何が間違っていますか?どうすれば修正できますか?
java - Sybase JDBC ドライバーが例外を「食べる」のはなぜですか?
公式の Sybase JDBC ドライバーを使用してデータベースに接続し、CallableStatement を作成してストアド プロシージャを呼び出し、パラメーターをそれにバインドし、.execute() を呼び出しています。
ただし、ストアド プロシージャが失敗しても、例外はスローされないことがわかりました。Wireshark を使用してデータベースへのトラフィックをスニッフィングし、戻ってくるエラー メッセージを観察することで、障害が伝播されていることを確認できます。
最後に、.execute() の代わりに .executeUpdate() を使用すると例外が発生することがわかりましたが、まだ 2 つの質問が残っています。
- .execute() と .executeUpdate() の動作が異なるのはなぜですか? インターフェイスの SUN ドキュメントから、(ほぼ) 同じことを行う必要があるようです...
- ストアド プロシージャを呼び出すときに .execute() を .executeUpdate() に置き換えることは常に適切ですか? ストアド プロシージャは、.executeUpdate() で呼び出すことができる特定の要件に準拠する必要がありますか? (たとえば、最後のステップとして update/delete/insert ステートメントが必要ですか?)
更新: jTDS を試してみましたが、正しく動作します (.execute() と .executeUpdate() の両方の場合で SQLException をスローします)。ただし、私には制御できない制約があるため、ドライバーを切り替えることは実際には不可能です。
また、このストアド プロシージャによって返される結果には興味がありません。挿入/更新タイプのプロシージャです。失敗したかどうかを確認するためだけに挿入されます(そして、キャッチ/ログを記録できます)。私が試したもう1つのことは、.execute()の後に接続から警告を取得することですが、何も含まれていませんでした。
c# - LINQ to SQLでタイムアウトが期限切れになったSqlExceptionsの原因は何ですか?
私のアプリケーションは、TimeoutExpiredSqlExceptionsを実行し続けます。重要なのは、このクエリは、まともな時間だけ実行する必要があるクエリであるということです。ただし、この例外が発生している場所を特定するのに問題があります。これはデータベースサーバーで作成されたタイムアウトですか、それとも私のプログラムで発生していますか?または、両方である可能性がある場合、どちらであるかをどのように判断できますか?
最後に、タイムアウト期間を延長するにはどうすればよいですか?
java - SQLException: JZ0S4: 空の (長さゼロの) クエリは実行できません。準備されたステートメントについて
Connection で PreparedStatements を実行するクラスを次に示します。
電話する
別のクラスから、これは例外をスローし、
例外は SQLException: JZ0S4: Cannot execute an empty (zero-length) query です。準備されたステートメントで。理由がわかりません。ここで私が間違っていることを誰かが見ていますか?
ありがとう!
java - プラグマtable_infoを使用するためのSQLiteJDBCおよびPreparedStatement
私はJavaとSQLiteJDBCを利用してSQLiteを操作しています。特定のテーブルの列の名前にアクセスする必要がありますが、次のコマンドでこれを実行できることがわかりました。
ただし、次のことを実行しようとすると、エラーが発生します。
java.sql.SQLException:NYI
NYIが何を意味するのかわかりません。さらに、自分がやろうとしていることを実行できるかどうかもわかりません。列名の取得をどのように達成できるかについての提案はありますか?