0

到目前为止,我知道如何将“SQL-Data”导入工作表。
但是我不能将“SQL-Data”附加到现有的工作表中,这意味着随着时间的推移而增长。

//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。

4

1 回答 1

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
};
于 2017-05-18T07:42:25.150 回答