2017-05-07 30 views
0

現在我知道如何將「SQL-Data」導入到工作表中。
但是我不能將「SQL-Data」追加到現有的工作表中,這意味着隨着時間的推移而增長。如何在OriginLab Pro中追加/導入到工作表

//Pseudo Code 
1. maxID <-- getMaxValueOutOfColumnId() 
2. import via SQL --> "SELECT * FROM table WHERE ID > maxID" 
3. append the result set as rows to the sheet maxID came from. 

我找到了關於導入東西的教程,但他們沒有附加SQL-Data。

回答

0

對於未來的訪問者,我發佈我想出的解決方案。

// In general 
1. have a book with 2 sheets named test_data and data_import 
2. put a click button on sheet data_import 
3. open the buttons preferences and activate tab "programming" 
4. write yourself some LabTalk code in the small code-field 

/* 1. Step */ 
range ra = "test_data"!col(A); 
int max_id = max(ra); 

/* 2. Step */ 
string strSQL$="SELECT * FROM table WHERE id > ($(max_id))"; 
string strConn$="<CONNECTION STRING GOES HERE>"; 
dbEdit change conn:=strConn$ sql:=strSQL$; 
dbImport; 
dbEdit remove; 

/* 3. Step */ 
range ra = "test_data"!;   // sheet to extend with imported data 
range rb = "data_import"!;  // helper sheet as cache 
wrcopy iw:=rb c1:=1 r1:=1   // append cached data on sheet test_data 
     ow:=ra dc1:=1 dr1:=ra.maxRows+1; 

/* 4. Step - cleaning up */ 
int cols = rb.ncols;    // number of columns 
for(int ii = cols; ii > 0; ii -= 1) { 
    delete wcol($(ii));   // delete all columns form data_import 
}; 
for(int ii = cols; ii > 0; ii -= 1) { 
    rb.addCol();     // append new columns 
};