REQUETE INSERTION
Stagiaire WDF
Inscrit:
04/11/2005 11:11
Post(s): 34
Bonjour,
je souhaite remplir une table temporaire (TEMPORAIRE) composée d'un champ unique (ID_PROJET) à partir du fichier (PROJET_ENTETE).
Pour faire cela, j'essaie de faire une requete d'insertion avec le code SQL suivant :

INSERT INTO TEMPORAIRE
( IDPROJET_ENTETE )
from PROJET_ENTETE.IDPROJET_ENTETE
where PROJET_ENTETE.ANNEE_PLAN =( {annee} )

Au moment où j'exécute ma requête il me demande de créer une connexion. Je suis pourtant sur une base unique et pas en client serveur.

Quelle peut-être la solution et s'il faut créer une connexion, comment faire?
Merci d'avance.

Contribution le : 29/11/2005 10:16
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Quel est le code d'appel de votre requête ? Quelque chose du genre :

W_SD_Requete est une source de données
W_C_SQ est une chaine

W_C_SQL = ...
"INSERT INTO TEMPORAIRE ( IDPROJET_ENTETE ) " + ...
"from PROJET_ENTETE.IDPROJET_ENTETE " + ...
"where PROJET_ENTETE.ANNEE_PLAN =( " +  {annee} + ")"

SI PAS HExécuteRequêteSQL(W_SD_Requete,W_C_SQL) ALORS
	Erreur("Une erreur est survenue lors de l'exécution de la requête." ,HErreurInfo())
SINON
	info("ajout effectué")
FIN


hannuledeclaration(w_sd_requete)




La connexion est définie dans la procédure HExecuteRequeteSQL (Voir aide).

Contribution le : 29/11/2005 11:01
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour
Comme précisé dans l'aide, les requête INSERT et UPDATE sont à éviter sur Hyperfile pour leur préférer les ordre hAjoute et hModifie plus rapides.

En outre, la gestion des fichiers temporaires (non décrits dans l'analyse) est une science exacte !
La déclaration dans une source de données doit avoir lieux avant toute utilisation du fichier pour que le moteur HyperFile en tienne compte. Ce peut être la raison de l'erreur.

POUR TOUT PROJET_ENTETE Avec "ANNEE_PLAN = '"+cAnnee+"'"
   HRAZ(TEMPORAIRE)
   TEMPORAIRE.IDPROJET_ENTETE=PROJET_ENTETE.IDPROJET_ENTETE
   HAjoute(TEMPORAIRE)
FIN


Une méthode trés rapide si TEMPORAIRE est vidé au préalable : l'import depuis un fichier texte

HCcréation(TEMPORAIRE)
eFic est un entier = fCrée(cFictmp)
si eFic=-1 ALORS RETOUR
POUR TOUT PROJET_ENTETE Avec "ANNEE_PLAN = '"+cAnnee+"'"
   fEcritLigne(eFic,PROJET_ENTETE.IDPROJET_ENTETE)
FIN
fFerme(eFic)
HImporteTexte("TEMPORAIRE",cFicTmp,"IDPROJET_ENTETE",...
TAB+Caract(127)+""""+Caract(127)+RC, hImpSansDélimiteur+hImpNormal)

Contribution le : 29/11/2005 11:04
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Anonyme
Merci à vous deux malheureusement ma requete SQL avec "from" plante toujours, quand à la deuxième solution, je ne sais pas où insérer le code .
Dans le code projet?

Contribution le : 29/11/2005 17:16
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
C'est à vous de voir mais une chose est sûre il faut avoir déclaré TEMPORAIRE. A mons que vous ayé commis un abus de langage car les temporaires sont des fichiers HyperFiles décrit en dynamiques via HDecritFichier ou HDeclareExterne.

Contribution le : 29/11/2005 17:37
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Anonyme
Bien, je suis arrivé à faire ma déclaration de fichier, mais je suppose qu'il faut bien lui insérer à un moment un "Hcréation".

Or il n'en veut pas et forcément il plante quand j'essaie de remplir le fichier.

Code de définition :

MonFichier est une Description de Fichier
MaRubrique est une Description de Rubrique


MonFichier..Nom = "TEMPORAIRE"
MonFichier..Type = hFichierNormal
MonFichier..CryptageFic = hCryptageStandard


// Description de la rubrique "MaRubrique"
MaRubrique..Nom = "IDPROJET"
MaRubrique..Type = hRubEntier4
MaRubrique..Taille = 4

// Validation de la description de la rubrique "IDPROJET"
HDécritRubrique(MonFichier,MaRubrique)

// Validation de la description du fichier "TEMPORAIRE"
HDécritFichier(MonFichier)


Code remplissage :

TEMPORAIRE est une Source de Données

POUR TOUT PROJET_ENTETE AVEC PROJET_ENTETE.ANNEE_PLAN = 0
HRAZ(TEMPORAIRE)
TEMPORAIRE.IDPROJET=PROJET_ENTETE.IDPROJET_ENTETE
HAjoute(TEMPORAIRE)
FIN

Où dois-je insérer ce #@#!# de "Hcréation" ?

Contribution le : 30/11/2005 10:04
Créer un fichier PDF de la contribution Imprimer


Re: REQUETE INSERTION
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Le mieux est de faire suivre la création du fichier immédiatement après sa déclaration...

...
// Validation de la description du fichier "TEMPORAIRE" 
HDécritFichier(MonFichier)
// Création du fichier
HCreation("TEMPORAIRE")
...


Vous noterer la disponibilité de "Temporaire" au moteur HyperFile dès la description. C'est ce que j'ai intitulé le "spectre d'analyse" dans ce dossier.

Contribution le : 30/11/2005 10:17
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2