Как добавить / импортировать на лист в OriginLab Pro

К настоящему времени я знаю, как импортировать "SQL-данные" в лист.
Но я не могу добавить "SQL-данные" к существующему листу, который должен со временем расти.

//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-данные.

1 ответ

Для будущих посетителей я выкладываю решение, которое придумал.

// 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
};
Другие вопросы по тегам