2012-05-03 9 views
0

私が見つけたすべての例では、PyQtを使用してさまざまなビューとテーブルにデータを配置しています。PyQtの質問の中で非常に基本的なSQLクエリ

しかし、データを取得して他の非qt関数に送信するための非常に基本的なクエリを実行しようとしています。どのように私はこれを行うことができますアドバイス?

たとえば、私はこれをテーブル 'user'から3つのレコードで照会するとします。どのように各レコードにアクセスし、QtStringではなく普通のpython文字列として返すのですか?

db = QtSql.QSqlDatabase.addDatabase("QSQLITE") 
db.setDatabaseName(blah) 

query = QtSql.QSqlQuery(db) 
query.exec_("SELECT id, password FROM user") 
+0

いつでもあなたの文字列をキャストすることができます:str(myString) – rjz

答えて

1

各レコードにアクセスして文字列として返すように求めていますが、各レコードのフィールドを文字列として返すことを意味すると思いますか?各レコードは、クエリのフィールドを含むオブジェクトです。この場合、ユーザーからのIDとパスワードを尋ねました...

while query.next(): 
    record = query.record() 
    id_ = str(record.value("id").toString()) 
    password = str(record.value("password").toString()) 
    print id_, password 

next()がTrueを返している間にループすることで、クエリを反復処理します。それぞれのループで、QSqlRecordを尋ねることができます。そのレコードでは、各フィールドの値を尋ねることができます。各フィールドの値はQVariantです。 QVariantは、さまざまな型を保持できる汎用のコンテナであるため、QStringとして値を渡す必要があります。 QStringは、str(qstring)によってPython文字列に簡単に変換できます。したがって、フィールド値はPython文字列として保持されます。

関連する問題