Discussion Board for collaboration related to QlikView App Development.
Is this will read the qvw as a table file? I want all the tables and fields present in the source qvw file.
binary statement loads all tables from existing qvw. After binary statment you can add more data from different sources or/and change data that you loaded from QVW. Verry cool see help file
This is great!!! so it means if i want to save multiple table in a single file then i can use qvw whereas qvd is not meant for this purpose it can only save one table at a time. previously i was saving two tables in a different qvd and reading it in a new qvw file.
Is there any difference in saving data in qvd or qvw? like size, response time or quality etc???
It really depends on what the requirements/scenarios are. In most cases you will load data from QVDs which is very efficient. QVDs will be your data source shared across many different application.
I can imagine using Binary statement in the follwing scenarios:
1. You have a QVW document created by sombody else and you want to make use of its information, example: company A receives reports/analysis from company B as a QVW document (Hopefully Qlikview will be soon so popular that people will share their data using QVW) Company A wants to use information from document sent by Company B and correlate it with the information from its own systems. So company A creates a new QVW document that starts with binary statement (data from document sent by Company B), followed by LOADs statements (to load its own data)
2. You have a QVW1 with a quite complex script side. You want to create a QVW2 which will have different structure but will also use tables that were created in QVW1. To avoid script duplication in QVW2, you first load data from QVW1 and then you add additional stuff. HOWEVER, in this scenario I would have a QVW loader document, which would create QVDs that will be required in both applications!
To summarize. I usually have qlikview loader(s) that create QVDs and then I have my applications that load data from the QVDs and a particular QVD file (table) can be used by more than one qlikview application. So far I only used binary load in the situation described in scenario 1.
Hopefully that helped
I've noticed that qvw files are much smaller and faster to load than qvd. Is there any downside to using qvw files in lieu of qvds? On the surface I don't see an advantage to a qvd over a qvw. What am I missing?
Very interesting that it is faster...
Anyway, when you have many applications and they share they same source but not always the same tables, it is a very good practise to create qvds first and then reload those applications from QVDs (faster approach than reloading each application directly from the source).
Application 0 creates the following qvds from the database: A.qvd, B.qvd, C.qvd, D.qvd, E.qvd
Application 1 gets data from A.qvd, B. qvd, C.qvd, D.qvd
Application 2 gets data from A.qvd, D.qvd, E.qvd
Aplpication 3 gets data from D.qvd, and E.qvd
Now consider the above example using your approach - loading data from QVW. Let's say that Application0.qvw loads tables A,B, C, D, E from the database. Now when you want to create Application 1 based on Application0.qvw you need to load everything from Application 0.qvw and then drop tables you do not need. The same from Application 2 and 3...
Remeber also that you can have only one binary statement in you script so you cannot create separate qvw for every source table.
karoldorniak wrote:Remeber also that you can have only one binary statement in you script so you cannot create separate qvw for every source table.
Quoted for emphasis. You can only have one binary load, and it must be the first statement in your script. QVWs are NOT a substitute for QVDs.
I have two binary loads in all of my applications. The first is a sort of home-brewed data reduction. It does a binary load from another application, then drops all of the more sensitive data - tables, row values, and so on. There are probably better ways to handle that these days, and might have been at the time. It was built a couple years ago or more. The second binary load is where I wanted the exact same data manipulations as another application was using on its load. Rather than duplicate the script and repeat a very slow load, I used a binary load. But the RIGHT solution in that case would be to write a QVD for both applications to use. The code is then still in one spot, and I only have to load the data I want for each application. I'll probably do that at some point, but haven't gotten to it yet. Now might be the time, as I'm actually working on that application today.
I'm sure there are times when binary loads are actually the right solution and not just a convenient shortcut. I just don't have any examples from my own experience. QVDs are generally a much more flexible solution.