Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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.
Hard to say without knowing your setting / script.
Could you post your script?
You are not using the BUFFER prefix, are you?
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);
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
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.