2010-09-27 31 views
2

這裏是問題,我不知道有多少屬性或哪種類型是表中的屬性,我需要簡單的選擇語句,如:SELECT * FROM TABLE1;寫下檔案。如何使用OTL選擇整個表格,並將其保存到文件?

而這需要用otlv4包裝來完成。

請幫忙。

otl_stream i(50, // buffer size    
    "select * from test_tab where f1>=:f<int> and f1<=:f*2",     // SELECT statement   
    db // connect object  
    );  
int ac=0; 
    char bc[64]; 
    memset(bc, 0, 64); 

    while(!i.eof()) 
    { 

     i >> ac >> bc; 
     cout << "Boooo " << ac << " " << bc << endl; 
    } 

這是我知道有多少屬性以及哪些類型存在的示例。但是如果我不知道呢?

+0

運行describe tablename命令以獲取表的描述。然後,您可以相應地格式化輸出以寫入文件。 – DumbCoder 2010-09-27 09:07:59

+0

以及我不知道如何將所有屬性綁定到變量? 我可以得到變量類型的屬性,但我需要有該變量初始化allready把屬性的值放入變量。瞭解問題?沒有通用的返回類型,我以後可以投出。 – Gile 2010-09-27 09:30:09

+0

@Gile - 你可以運行任何DB命令嗎?如果你可以運行select,描述應該被支持嗎?你有沒有得到我所建議的?首先獲取表的描述,然後根據查詢返回的數據類型讀取數據會更容易? – DumbCoder 2010-09-27 10:18:08

回答

0

文件流以及OTL的check_end_of_row()set_all_column_types()函數應該按照您的要求進行操作。在循環OTL流的eof檢查時,對於可以在行檢查結束時循環的每一行,並將每個屬性的值從OTL流發送到文件流。在每次行檢查結束後,將您的換行符代碼發送到文件流。將所有列類型設置爲str應允許您僅使用一個變量來處理一行中的所有屬性值。

This來自OTL文檔的示例演示瞭如何使用set_all_column_types函數。您必須先創建一個流,然後設置該選項,然後打開該流。如果您同時創建並打開流,則無法工作。

相關問題