0

データベースをプログラムしようとしていますが、パラメーター化されたクエリとストアドプロシージャを組み合わせて使用​​しています。ほとんどの場合、sprocs内でpqを使用しています。私はそれぞれを正しく行っており、適切な結果を得ています。ただし、mysqlサーバーからログアウトして再度ログインするたびに、sprocはまだ存在しますが、pqをプログラムしたことがないように動作します。これは、pqを最初からやり直す場合にのみ機能します。講義でもオンラインでも、一時的なpqについては何も見ていませんが、何か間違っていることがありますか?ありがとうございました。

4

1 に答える 1

2

リンゴとアスタリスクのカテゴリの混乱があります。

Apples:ストアドプロシージャは、特定のMySQLデータベースの名前空間に名前が付けられた永続的なサーバー側オブジェクトです。テーブル定義、ビュー、およびテーブルコンテンツと同様に、これらはデータベースの一部です。

アスタリスク:パラメータ化されたクエリ(プリペアドステートメント)は、DBMSへの特定の接続の下に作成されるクライアント側のオブジェクトです。これらは、使用している接続ライブラリ(言語)のクラス階層内のオブジェクトです。それらの有効期間は、接続の有効期間を超えることはできません。

アプリが複数の接続を使用している場合(たとえば、マルチスレッドの場合)、使用している特定の接続に対してパラメーター化されたクエリを作成する必要があります。

于 2012-08-07T20:39:28.300 に答える