Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

Where did my QVD go?

I'm tracking another issue and in doing so found some peculiar behavior (at least it is to me).  I have an application that stores data into two QVD files.  During the reload I see those files being created.  However, after the reload the QVD's disappear and on my next reload I'm pulling a full dataset instead of an incremental one, so bascially I'm never doing an incremental load.   No where in my script do I delete files.

Anybody know what migh be going on here?

v11.20

1 Solution

Accepted Solutions
Highlighted
Not applicable

Re: Where did my QVD go?

Looks like I found it.  There is a setting under Document Properties, General tab called 'Keep Unreferenced QVD Buffers'.  I'm not sure why the default is to delete them, but when I check this setting my QVD's remain on disk and I can reference them for my incremental loads on subsequent reloads.

4 Replies
MVP
MVP

Re: Where did my QVD go?

Hard to say without knowing your setting / script.

Could you post your script?

You are not using the BUFFER prefix, are you?

Not applicable

Re: Where did my QVD go?

There's a lot to the script, but here's the jist where I'm creating/loading one of the QVDs.

 

 

//SET vQvdFile='c:\mick\openfolder\qv\GenAct.qvd'; //The QVD filename on my machine
SET vQvdFile='E:\QlikView\Documents\Knova\GenAct.qvd'; //The QVD filename on NOCDKMCOMBO1
SET vTableName='RGN_GenAct';  //The name of the QV table we are loading on the Data Load tab
//SET vPK='EventId';    // Data Primary Key


// Set a variable indicating if the QVD exists or not. -1 is True, 0 is False
LET vQvdExists = if(FileSize('$(vQvdFile)') > 0, -1, 0);


IF $(vQvdExists) THEN  // QVD exists, we will do an incremental reload
maxdateTab:
// Get the max date from this QVD for use in incremental SELECT
LOAD max(date(LogDate)) as maxdate //Set the name of the date or datetime field
FROM $(vQvdFile) (qvd);
LET vIncrementalExpression = 'WHERE LogDate >' & chr(39) & peek('maxdate') & chr(39);
DROP table maxdateTab;

ELSE      // QVD does not exist
LET vIncrementalExpression = '';  // No QVD. Force full reload
END IF

RGN_GenAct:
sql select
  LogDate
, LogTime
,  SessionID
,  UserID
,  EventType
,  Microsite as SessionMicrosite
,  upper(SearchQuery) as SearchQuery
,  UserName
,  UserTitle
, UserDepartment
,  UserRole
,  BankingGroup
,  BankingArea
,  BankingMarket
, UserCCName
,  UserBranchID
,  UserCCID
from "kanalyticsprod"."dbo"."RGN_GenAct"
$(vIncrementalExpression);

// If incremental reload was , load previous data and concatenate to data just read.
IF $(vQvdExists) THEN
// Use CONCATENATE in case we've added any new fields.
CONCATENATE ($(vTableName)) LOAD * FROM $(vQvdFile) (qvd)
;
END IF

/*
Overwrite the QVD with the QV datatable.
*/
STORE $(vTableName) INTO $(vQvdFile);

Not applicable

Re: Where did my QVD go?

A couple of interesting items....

1 - When I reload the app from my machine it reloads fine, but the QVDs disappear.

2 - When I reload the exact same app from the QV server it fails, but the QVDs are where I expect them to be.

Server = v11.00.11282 x86

Desktop = v11.20.11922 x64

Highlighted
Not applicable

Re: Where did my QVD go?

Looks like I found it.  There is a setting under Document Properties, General tab called 'Keep Unreferenced QVD Buffers'.  I'm not sure why the default is to delete them, but when I check this setting my QVD's remain on disk and I can reference them for my incremental loads on subsequent reloads.

Community Browser