問題タブ [rowcount]
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-2008 - @@ rowcountは、トリガーからその呼び出しをprocに保持する必要がありますか?
つまり、procを呼び出すトリガーがある場合。@@rowcount
procの最初の行をチェックインできるようにする必要がありますか?そして@@rowcount
、トリガーで実行された最後のSQLステートメントに基づく値が必要ですか?
作成しなかったprocをデバッグしています。procの最初の行は
procはトリガーによって呼び出されます。トリガーがprocを呼び出す前に最後に行うことは、次のとおりです。
何が起こっているのかという@@rowcount
と、procは常に0であり、procは何かをする前に終了します。@@rowcount
チェックをトリガーに移動してプロシージャから削除するだけなので、修正は非常に簡単です。
しかし、そもそもなぜこのように書かれたのか不思議です。ある時点で機能していたのとほぼ同じですが、現在は機能していませんか?SQL2005とSQL2008の間で動作に変更があったかどうか、またはシステム設定が反転したかどうかを確認したかっただけです。それとも、私の前任者の1人が、機能しない悪いコードを書いただけでしたか?
sql-server-2005 - SQL Server ストアド プロシージャ - 選択クエリで行数を使用する
私のストアド プロシージャ (SQL Server 2005) は、特に、1 つのフィールドがクエリによって返される行数に依存するデータセットを返します。@@ROWCOUNT を取得できる単純な最初のクエリを作成できますが、その場合、プロシージャは 2 つのセットを返しますが、これは私が望んでいるものではありません。
最初のクエリを WITH ステートメントに入れようとしましたが、行数を抽出して 2 番目のクエリで使用できる変数に入れる構文が見つかりませんでした。別の方法は、最初のクエリから @@ROWCOUNT を取得し、2 番目のクエリの結果のみを返すようにプロシージャに指示することです。
おそらくそれを行うためのより良い方法がありますが、SQLに関する私の専門知識はかなり限られています...
助けてくれてありがとう!
java - JListの動的な可視行数
とともにサイズが大きくなるJListがありJFrame
ます。私は次のコードを持っています:
setVisibleRowCountメソッドに値を設定すると、行番号が固定され、値を設定しないと、デフォルト値の8が再生されます。この値を動的に変化させたい。
asp.net - Gridview ラベル内の行数を取得する方法
DataField にバインドしていない Gridview 内に ItemTemplate Label があります。GridView の列の 1 つとして userId があります。userId 列に基づいて、ユーザーが取得したアセットの総数を取得したいと考えています。totalNo はデータベースに存在しません。クエリを手動で起動し、行数の合計を取得する必要があります。
では、GridView 内のユーザーごとにこの rowCount を配置する方法は?
何か案は?onRowDataBound と FindControl を試しましたが、その特定のユーザーの rowIndex を取得するにはどうすればよいですか?
sql-server - ステートメントのバッチからの SQL 影響を受けた行数
影響を受ける行数が 0 に戻るまで、次のステートメントのバッチをループで実行しています。
多くの異なるデータベースで何年も正しく機能していましたが、ある特定のデータベースで突然 38563 が返されました。これは明らかに「INSERT INTO @ScopeTable」部分の行数です。これは、他の挿入が「TOP 1024」を行うためです。
このような動作を変更できる SQL Server 設定はありますか? 0を返すことに依存するのは不適切ですか?
編集: 要求に応じて、ループを実行する (Delphi) コードを次に示します。DataAccess.NewCommand は TADOCommand を使用し、例外が発生した場合は -1 を返します。
c# - "入力文字列は、正しい形式ではありませんでした。" SQL ステートメントで int.Parse を呼び出す
エラーが発生しています:
"入力文字列は、正しい形式ではありませんでした。"
注:行 182 を引用符で囲まれた実際の数字 (つまり、「3」または「875」) に変更し、行 171 をコメントアウトすると、このコードは完全に正常に動作します。ただし、174 行目の "{7}" は、自動インクリメントするはずのフィールドですが、そうではありません。そのため、171 行目で「数値」を取得しようとしています。これは、行数 + 1 を使用して auto-=increment を実行します。
これに乗る人はいますか?:-)
php - PDOStatement fetchColumn()でのPHPの致命的なエラー
このエラーが理解できません。誰かに説明してもらえますか?
PHPの致命的なエラー:27行目の/user/dal.php内の非オブジェクトに対するメンバー関数fetchColumn()の呼び出し
正規表現を使用して最後のクエリで新しいSELECT COUNT(*)
クエリを実行することにより、最後のクエリのカウントを取得しようとしています。問題は$stmt->fetchColumn()
致命的なエラーを引き起こし、それから私は得るError 500
。
私は何が間違っているのですか?
php - SQL LIMIT:offset、:displayをパラメーター化しようとしたときのPHP PDOのバグ?
このクエリは、phpMyAdminに5つの結果を返します。
そして、これはphpMyAdminでcount = 12を返します(12のレコードがあるので問題ありません):
この関数は、2つの変数(offset、display)を追加する前は正常に機能していましたが、現在は機能していません。変数を出力すると、offset = 0、display = 5になります(それでもLIMIT 0,5
)。
私のdbRowsCount(...)
メソッドが空の文字列(stupid PDOStatement::fetchColumn
)を返していたために機能していなかったので、カウントを返すように変更し、PDO::FETCH_ASSOC
count=0を返しました。
行数をカウントする関数は次のとおりです。
私のエラーログは私にプログラムからのこの出力を与えます:
正規表現の出力:SELECT COUNT(*)AS count FROM tbl_product WHERE 1 ORDER BY last_update DESC LIMIT?、?;
getProducts(0,5)は0行を返しました。
ご覧のとおり、SQLの形式は正しくなく、メソッドの入力変数は予想どおり0と5でした。
何がうまくいかなかったのか誰か知っていますか?
アップデート
提案に従って、クエリを直接実行しようとしましたが、正しい結果が返されました。
出力:
別の提案に従って、!= nullを!== nullに変更し、$data配列も出力しました。
出力:
ただし、dbRowsCount($ sql、$ data)は、このクエリに対して0行を返します。
アップデート2
値がバインドされた後にクエリを出力できるカスタムPDOStatementクラスを実装するためのアドバイスに従って、$ query-> execute($ data)の後で関数が停止するため、出力は出力されないことがわかりました。カスタムクラスは、私のプログラムの他のすべてのクエリに対して機能します。
更新されたコード:
出力:
正規表現の出力:SELECT COUNT()AS count FROM tbl_product_category WHERE id = ?;
データ:5
queryString:SELECT COUNT()AS count FROM tbl_product_category WHERE id = ?;
_debugQuery():SELECT COUNT(*)AS count FROM tbl_product_category WHERE id = ?;正規表現の出力:SELECT COUNT(*)AS count FROM tbl_product WHERE 1 ORDER BY last_update DESC LIMIT?、?;
データ:0,5
//関数が停止し、_debugQueryを出力できませんでした
アップデート3
getProducts(...)
カスタムPDOStatementクラスを取得して出力を取得できなかったため、代わりに名前付きプレースホルダーを使用してパラメーターをバインドするようにクラスを書き直したいと思いました。
出力:
正規表現の出力:SELECT COUNT(*)AS count FROM tbl_product WHERE 1 ORDER BY last_update DESC LIMIT:offset、:display;
データ:0,5
// $ query-> execute($ data)の後もクラッシュするため、出力logErrors("getProducts(".$offset."...))
されませんでした
アップデート4
このdbDebugTestは、以前はSQL文字列で直接制限値0,5を宣言することで機能していました。これで、パラメーターを適切にバインドするように更新しました。
関数がクラッシュし、これだけが出力されます。
dbDebugTest()の開始
アップデート5
エラーをオンにする(デフォルトではオフになっている)という提案に従って、私はこれを行いました:
それ自体が、Update 4のdbDebugTest()を機能させました。
dbDebugTest()の開始dbDebugTest()はrows=12を返しました
そして今、私のウェブサーバーのログにエラーが生成されます:
[警告]mod_fcgid:stderr:PHP致命的なエラー:
キャッチされない例外'PDOException'とメッセージ'SQLSTATE [42000]:
構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。 /home/linweb09/b/example.com-1050548206/user/my_program/database/ の1行目の「0」、「5」の近く
で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。dal.php:36
36行目dbRowsCount(...)
はメソッドを示し、行は$query->execute($data)
です。
したがって、他の方法getProducts(...)
は、データをバインドするこの方法を使用し、パラメーターが「0」と「5」に変わるため、まだ機能しません(これはバグですか?)。少し面倒ですが、dal.phpに新しいメソッドを作成して、より厳密な方法でparamsをバインドできるようにする必要がありbindParam
ます。
特に@Travesty3と@eggyalの助けに感謝します!! どうもありがとうございました。
hsqldb - HSQL: ストアド プロシージャの UPDATE ステートメントによって更新された行数を取得する方法
UPDATE (または INSERT、または DELETE) ステートメントを呼び出すストアド プロシージャがあり、このステートメントによって更新された行数をロケール変数に格納したいと考えています。
INSERT はステートメントであり、式として評価できないため、これは機能しません。
他の SQL エンジンには、トランザクションの最後の UPDATE/INSERT/DELETE ステートメントによって更新された行数を取得する「@@rowcount」という「メタ変数」があるようです。HSQL に相当するものは見つかりませんでした。
どんな手掛かり?
.net - 内部でカーソルを使用するストアド プロシージャによって返される影響を受ける行数をオーバーライドする
次のコードに簡略化されたストアド プロシージャがあります。
それでもExecuteNonQuery()
-1 を返します。
使用できますがselect @count
、ExecuteScalar()
コードが機能しない理由を理解したいです。
サーバーの動作をNOCOUNT OFF
リセットせず、NOCOUNT ON
まだそのままのようです。