Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All,
Could anyone please explain the below code.
Sub StoreAndDrop(vTableName,vQvdFile)
let vNoFields = NoOfFields('$(vTableName)');
if Len('$(vNoFields)') > 0 Then
Store [$(vTableName)] into [$(vQvdFile)];
Drop Table [$(vTableName)];
Else
Trace ** Cannot Store - $(vTableName) does not exist.;
End if
End Sub
As per my understanding, a sub procedure is created to store the table into a qvd file.
Regards,
Viresh
Hi Viresh,
The code is as you stated, storing the provided vTableName into the QVD only if there's fields to it with the statement
let vNoFields = NoOfFields('$(vTableName)');
This will check how many fields ("headers" with no data count as well) the table has.
As an example, the following
x:
load * Inline
[
A,B
];
let a = NoOfFields('x');
Lets 'a' with the value 2, even though there's no data in the table and so if i called the sub it would store the table.
Felipe.
Hi Viresh,
The code is as you stated, storing the provided vTableName into the QVD only if there's fields to it with the statement
let vNoFields = NoOfFields('$(vTableName)');
This will check how many fields ("headers" with no data count as well) the table has.
As an example, the following
x:
load * Inline
[
A,B
];
let a = NoOfFields('x');
Lets 'a' with the value 2, even though there's no data in the table and so if i called the sub it would store the table.
Felipe.
Yes, your understanding is right and this routine stored a table as qvd and dropped it afterwards. The meaning of it is to keep the real load-script small and clean and reducing the normally two-lines of store & drop to a single-line for the call - if we exclude the additionally if-condition which is here implemented and which would significantly increase the needed lines.
And this if-condition displayed very well what could be further done with such a sub-routine. For example the dropping could be optional, the fileformat could be changable - qvd/txt/qvx, ERRORMODE could be implemented and various other things and checks are thinkable - and this only once developed and maintained especially if you put it into an include-variable: The $(Include) which you $(Must_Include) into your toolkit.
- Marcus
Thanks for the clarification.