Bonjour à tous !
Est-ce que quelqu'un connait la commande permettant de créer un fichier ?
Tant qu'à faire, comment écrire dedans et enregistrer les modifs ?
Merci d'avance
Bonjour à tous !
Est-ce que quelqu'un connait la commande permettant de créer un fichier ?
Tant qu'à faire, comment écrire dedans et enregistrer les modifs ?
Merci d'avance
Pour créer un fichier et écrire une ligne...
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 long ll_numFile ll_numFile = FileOpen("c:\monfichier.txt", lineMode!, write!, LockWrite!, Replace!) fileWrite( ll_numFile, "Une ligne") fileClose( ll_numFile )
Merci.
Sinon, sais-tu quelle est l'utilité de la commande "GetFileSaveName" ?
C'est pour récupérer un nom de fichier déjà présent sur le disque dur ?
D'autre part, sais-tu comment faire pour récupérer (ou enregistrer) le résultat d'une requête dans un fichier ?
Voici un extrait de mon code :
Je créé un fichier csv contenant les résultats mais je n'ai que la première ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT A, B, C INTO :a, :b, :c FROM table; ls_enreg = string(a)+";"+string(b)+";"+string(c) FileWrite(ll_NumFile, ls_enreg)
Que dois-je faire pour écrire l'ensemble des résultats ?
Est-il possible de stocker chaque résultat dans un tableau (au lieu d'avoir :a, :b et :c) ?
Help me !
GetFileSaveName, ouvre une fenêtre Windows permettant de choisir l'endroit ou l'on veut sauvegarder un fichier. Le fichier peut exister ou non.
Pour créer le fichier, il manque les instructions "fetch" permettant de récupérer toutes les lignes...
Le plus simple est d'utiliser un datastore/datawindow. La fonction saveAs du datastore/datawindow permet de créer automatiquement le fichier dans des formats divers...
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 string ls_sql = "select ..." string ls_res, ls_erreur ls_res = SQLCA.SyntaxFromSQL(ls_sql, "", ls_erreur) dw_1.create(ls_res, ls_error) dw_1.setTransObject(SQLCA) dw_1.retrieve() dw_1.saveas("c\monfichier.cvs", CSV!, false)
A+
J'ai trouvé un exemple qui n'utilise pas de datawindow :
Le problème, c'est que dans le programme où se situe ce code, il fonctionne mais si je l'utilise dans mon programme, sqlca.sqlcode renvoit -1 après la ligne "OPEN DYNAMIC curseur;".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 string clause = "SELECT * FROM TEST;" PREPARE SQLSA FROM :Clause; DECLARE curseur DYNAMIC CURSOR FOR SQLSA; OPEN DYNAMIC curseur; if SQLCA.sqlcode < 0 then MessageBox ( "Erreur!" , SQLCA.sqlerrtext ) end if Do While SQLCA.sqlcode = 0 Fetch curseur into :result; if SQLCA.sqlcode < 0 then MessageBox( "Erreur", SQLCA.sqlerrtext ) ELSE FileWrite(file_num,result) end if Loop close curseur;
Cette façon de faire serait plus facile pour le traitement que j'aimerais faire mais sais-tu pourquoi ça ne passe pas ?
C'est quoi le message d'erreur (SQLCA.sqlerrtext)?
Le problème c'est qu'il ne me renvoit rien !!!
Alors avec ça je suis bien avancé !
Et si je met la ligne suivante "MessageBox ( "code" , SQLCA.sqlcode )" avant et après le "OPEN DYNAMIC curseur;", avant il me retourne 0 donc apparement ça passe mais juste après, il me retourne -1 !
Est-ce que l'utilisation d'un curseur dynamique nécessite des déclarations spéciales ?
La connexion à la base c'est-elle bien passé ? SQLCA.sqlCode ?
Le résultat de SQLCA.SqlCode est indiqué dans mon précédent message.
Sinon j'ai trouvé une solution qui fonctionne.
Il suffit de ne pas passer par une clause et de ne pas utiliser de curseur dynamique.
Là ça fonctionne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DECLARE curseur CURSOR FOR SELECT * FROM TEST; OPEN curseur;
Je pense que je vais faire comme ça mais je ne vois pas pourquoi ça ne passe pas si on utilise une clause...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager