WHERE 句を使用して変数で PostgreSQL データベースから値を取得しようとしていますが、エラーが発生します。
クエリは次のとおりです。
select age into x from employee where name=name.GetValue()
name
wxpython GUI から値を入力する textcontrol です。
名前スキーマが存在しないため、エラーが発生します。
値を取得するための正しい方法は何ですか?
WHERE 句を使用して変数で PostgreSQL データベースから値を取得しようとしていますが、エラーが発生します。
クエリは次のとおりです。
select age into x from employee where name=name.GetValue()
name
wxpython GUI から値を入力する textcontrol です。
名前スキーマが存在しないため、エラーが発生します。
値を取得するための正しい方法は何ですか?
「name.GetValue()」はリテラル文字列です。これをdbに送信します。この文字列は、wxpythonについても、プログラム内の変数についても何も知りません。おそらくバインドされたパラメータを使用して、そのデータの値をデータベースに送信する必要があります。何かのようなもの:
cur.execute("select age from employee where name=%s", [name.GetValue()])
x = cur.fetchone()[0] # returns a row containing [age] from the db
おそらくあなたが求めているものです。これにより、データベースにプレースホルダーを使用してクエリが作成され、name.GetValue()の値がそのプレースホルダーにバインドされ、クエリが実行されます。次の行は、クエリ結果の最初の行をフェッチし、その行の最初の項目にxを割り当てます。
私はあなたが何をしようとしているのか確信が持てませんが、あなたの問題は構文 (AS ではなく INTO の誤用) である可能性があると思います:
SELECT age AS x FROM employee WHERE name = ....