How to append/import to Sheet in OriginLab Pro

116 Views Asked by At

By now I know how to import "SQL-Data" into a sheet.
But I cannot append the "SQL-Data" to an existing sheet, which is meant to grow over time.

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

I have found tutorials on importing stuff but they did not append SQL-Data.

1

There are 1 best solutions below

0
oldone On

For future visitors I post the solution I came up with.

// 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
};