2016-08-19 7 views
0

Firebird(ドライバibpp)を使用するC++コードがあり、PostgreSQL(pqxxが使用されている)への変換が必要です。変更が必要なメインファイルはthis oneです。私は始めましたが、今は困難があります。C++プロジェクトのibppからpqxxへの変換

while (st->Fetch()) 
{ 
    st->Get(1, tName); 
    st->Get(2, fieldName); 
    st->Get(3, fieldType); 

    if (tName != tableName) 
     continue; 

    result.push_back(DbField(fieldName, fieldType, "")); 
} 

pqxxを使用して書き換える方法はわかりません。私はpqxxでコードの一部を書き直しました。あなたはそれを見ることができますhere。 この断片を手伝ってもらえますか?

私はSQLで作業を始めました。誰かが私にibppのコードがどのように機能するのか説明してくれれば幸いです。そして、もしあなたが大きなpqxx-examplesを使っていくつかのリンクを残したら、それは素晴らしいことでしょう。

答えて

0

IBPPフラグメントはクエリsql1を実行し、指定されたループは結果のテーブル行を通過し、それらをすべてresultにプッシュします。これはおそらく種類のベクターです。

アナログPostgresのコードは、それがここに切り捨てられるので、当然のクエリは、完了する必要があります

vector<tuple<string, string, string>> result_set; 
pqxx::work txn(*conn); 
pqxx::result res = txn.exec("SELECT TRIM(RL.RDB$RELATION_NAME), TRIM(FR.RDB$FIELD_NAME), FS.RDB$FIELD_TYPE ..."); 
for (unsigned i = 0; i < res.size(); ++i) 
{ 
    string first = res[i][0].as<string>(""); 
    string second = res[i][1].as<string>(""); 
    string third = res[i][2].as<string>(""); 
    result_set.push_back(make_tuple(provider, oper, priority)); 
} 

だろう。

関連する問題