Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
ab92
Creator II
Creator II

Extraction de deux bases grâce au Binary

Bonjour à tous,

Comme l'explique mon titre je suis à la recherche d'une fonction me permettant de réaliser un binary mais sur le chargement de deux bases, avec binary cela ne marche pas alors peut être qu'il existe une autre fonction ?

J'ai deux bases que je souhaite confronter cependant le problème est ;

Quand j'utilise un binary, pour la première base tout fonctionne mais pour la deuxième j'ai cette erreur :

Avec le message d'erreur stipulant le chemin de base alors qu'il est ok ...

Avez vous une idée svp ?

En vous remerciant de votre aide.

Excellente après midi !

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Oui, tu ne peux réaliser qu'un binary load par script.

Si tu veux charger le contenu de plus d'une application dans ton application, il va falloir les extraire des source sous forme de QVD pour pouvoir les recharger.

Si tu a accès au script de tes applications, tu peux ajouter le code suivant pour extraire toutes les données sous forme de QVD :

SET vFolder = 'D:\QVD';

FOR vCount = 0 to NoOfTables()-1

     LET vTableName = TableName($(vCount));

     STORE $(vTableName) INTO $(vFolder)\$(vTableName).qvd (qvd);

NEXT vCount

Si tu n'as pas accès au script ou que tu ne veux pas les recharger, tu peux créer une application d'extraction par application source :

  • Effectue un chargement binaire de ton application source, et ajoute le code ci-dessus dans ton script
  • Une fois les QVD extrait, tu peux les charger tous en utilisant le code suivant :

SET vFolder = 'D:\QVD';

FOR EACH File in filelist(vFolder& '\*.qvd')

     LOAD *  FROM [$(File)] (qvd);

NEXT File

View solution in original post

7 Replies
ab92
Creator II
Creator II
Author

Multiple binary loads in 1 qvw

J'ai vu ce poste mais en essayant le script ça ne fonctionne pas des idées pour le fixer :

BINARY myqvw.qvw;

FOR i = 0 to NoOfTables()-1

  LET vTableName = TableName($(i));

  LET vOutfile = '$(vTableName).qvd';

  STORE [$(vTableName)] INTO [$(vOutfile)] (qvd);

NEXT i

sfatoux72
Partner - Specialist
Partner - Specialist

Oui, tu ne peux réaliser qu'un binary load par script.

Si tu veux charger le contenu de plus d'une application dans ton application, il va falloir les extraire des source sous forme de QVD pour pouvoir les recharger.

Si tu a accès au script de tes applications, tu peux ajouter le code suivant pour extraire toutes les données sous forme de QVD :

SET vFolder = 'D:\QVD';

FOR vCount = 0 to NoOfTables()-1

     LET vTableName = TableName($(vCount));

     STORE $(vTableName) INTO $(vFolder)\$(vTableName).qvd (qvd);

NEXT vCount

Si tu n'as pas accès au script ou que tu ne veux pas les recharger, tu peux créer une application d'extraction par application source :

  • Effectue un chargement binaire de ton application source, et ajoute le code ci-dessus dans ton script
  • Une fois les QVD extrait, tu peux les charger tous en utilisant le code suivant :

SET vFolder = 'D:\QVD';

FOR EACH File in filelist(vFolder& '\*.qvd')

     LOAD *  FROM [$(File)] (qvd);

NEXT File

ab92
Creator II
Creator II
Author

Bonjour Sébastien,

Merci pour ta réactivité, je viens d'essayer ce code car j'ai accès à l'application :

SET vFolder = 'D:\QVD';

FOR vCount = 0 to NoOfTables()-1

     LET vTableName = TableName($(vCount));

     STORE $(vTableName) INTO $(vFolder)\$(vTableName).qvd (qvd);

NEXT vCount

Malheureusement, j'ai ce message d'erreur :

j'ai essayé également avec l'autre code en créant un binary, non fonctionnel peut être qu'il faut ajouter une variable de localisation pour l'enregistrement non ?

sfatoux72
Partner - Specialist
Partner - Specialist

‌A tout hasard, tu as bien un disque 😧 avec un répertoire QVD ?

tu peux bien sûr modifier la variable vFolder en fonction, mais il faut que les répertoires existent, le code ne les crées pas.

ab92
Creator II
Creator II
Author

Bonjour Sébastien,

Pardonne moi pour la réponse tardive..

Effectivement je suis sur un disque D avec également un répertoire QVD, je te mets un capture écran de mes différents répertoires :

J'ai juste une fonction de la sorte :

Set CheminQVD = '..\..\ENTREPOT\Sauvegarde\';

sfatoux72
Partner - Specialist
Partner - Specialist

‌si tu veux que je puisse t’aider, il faut me donner toutes les informations.

TU dis que tu as un répertoire QVD, mais je ne le vois pas sur ta copie d’écran, je n’y vois pas non plus les répertoires figurant dans CheminQVD

LA variable CheminQVD ne figure pas dans script que je t’ai fournis. Si tu as modif le script, le mieux c’est de me montrer tes modifis.

ab92
Creator II
Creator II
Author

Bonjour Sébastien,


J'ai appliqué cela est finalement cela fonctionne je pense que lors de mon test un beug c'est effectué, je comprends pas trop vu qu'aujourd'hui ca fonctionne j'ai du peut être aussi réalisé une fausse manipulation.

Merci pour ton aide Sébastien !

SET vFolder = 'D:\Qlikview';

FOR vCount = 0 to NoOfTables()-1

LET vTableName = TableName($(vCount));

STORE $(vTableName) INTO $(vFolder)\$(vTableName).qvd (qvd);

NEXT vCount