Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2011, 11h39   #1
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 0
Points : 0
Par défaut Erreur fatale dans les DDE

Bonjour!

Je travaille sur l'import d'une table excel via les DDE depuis sas. voici mon programme:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
options noxwait noxsync;
x 'C:\DC982\STAT\DOCUMENTS\TS\TS_v4.xls'; 
 
DATA _null_;
    sleep=sleep(10);
run;
filename cmds dde 'excel|system'; 
 
DATA _null_;
    file cmds;
    put"[ERROR(false)]";
    put '[open("C:\DC982\STAT\DOCUMENTS\TS\TS_v4.xls")]';
run;
 
filename test dde 'excel|C:\DC982\STAT\DOCUMENTS\TS\[TS_v4.xls]alimentation!r1c1:r36c14' lrecl=2000;
 
 
DATA TS_ORIGIN; 
    attrib
    TSPARMCD length=$10 
    STUDY1     length=$250
    STUDY2     length=$3 
    STUDY3     length=$3 
    STUDY4     length=$3 
    STUDY5     length=$3 
    STUDY6     length=$3 
    STUDY7     length=$3 
    STUDY8     length=$3 
    STUDY9     length=$3 
    STUDY10 length=$3 
    STUDY11 length=$3 
    STUDY12 length=$3 ;
    INFILE test dlm='09'x notab dsd truncover pad; 
 
    input
    TSPARMCD $
    STUDY1 $
    STUDY2 $
    STUDY3 $
    STUDY4 $
    STUDY5 $
    STUDY6 $
    STUDY7 $
    STUDY8 $
    STUDY9 $
    STUDY10 $
    STUDY11 $
    STUDY12 $
    ;
run;
 
filename cmds dde 'excel|system'; /* NE RIEN CHANGER */
 
DATA _null_; 
    file cmds;
    put '[quit()]';
run;
Excel, s'ouvre et se referme très bien.
Mon souci, c'est qu'après l'étape:
data TS_ORIGIN;
attrib....

j'ai une erreur:
Citation:
DDE session not ready
FATAL: Unrecoverable I/O error detected in the execution of the data step program. Aborted during the EXECUTION phase.
Je ne comprends d'où ça peut venir, étant donné qu'il a l'air de rentrer dans mon fichier excel..?!
Si quelqu'un peut m'aider! c'est avec grand plaisir!
A+
Caroline
carolu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h52   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Bonjour,

Si je comprends bien tu veux importer un fichier excel dans sas. A priori tu n'as pas besoin des DDE, un infile dans une étape data ou une proc import suffira.. C'est plus simple que les DDE.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h16   #3
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Bonjour.
Le message "DDE session not ready" apparaît quand Excel n'est pas encore prêt à converser via le lien DDE car il est occupé à autre chose. Ici, je suppose qu'il est encore en train d'ouvrir le classeur au moment où commence l'étape DATA d'import. Pour être tranquille, il faudrait ajouter
juste après
Code :
put '[open("C:\DC982\STAT\DOCUMENTS\TS\TS_v4.xls")]';
Bon courage.
Olivier

@Manoutz : c'est vrai qu'on peut faire plein de belles choses avec la proc Import, mais 1) il faut le module ACCESS TO PC FILES (alors que le lien DDE est utilisable avec juste SAS BASE) et 2) avec une version 8 on ne peut pas importer uniquement une plage de données d'une feuille donnée.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h25   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par olivier.decourt Voir le message
@Manoutz : c'est vrai qu'on peut faire plein de belles choses avec la proc Import, mais 1) il faut le module ACCESS TO PC FILES (alors que le lien DDE est utilisable avec juste SAS BASE) et 2) avec une version 8 on ne peut pas importer uniquement une plage de données d'une feuille donnée.
Au moins je suis pas le seul à préférer les liens DDE, ouf!!!
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h32   #5
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 0
Points : 0
merci pour vos réponses,
je vais essayer

J'ai aussi essayé la proc import, mais comme je suis en sas V8, ça me crée une table avec 1 colonne et 1 ligne; Je suis donc obligée de passer par le .csv, et ça j'ai pas du tout envie!!
je reviens vous dire si ça marche!
carolu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h39   #6
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 0
Points : 0
Bon alors, le verdict: ça ne marche pas mieux....
mais je ne comprends pas, il ouvre excel, puis mon fichier, puis referme excel...
j'ai l'impression qu'il ne peut pas lire les données.. je ne sais pas
toujours l'erreur après le data table; attrib...
carolu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h44   #7
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Est-ce que tu peux essayer en simplifiant ton FILENAME ? J'ai l'impression qu'Excel va chercher à ouvrir 2 fois le classeur.
Code :
filename test dde 'excel|alimentation!r1c1:r36c14' lrecl=2000;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h04   #8
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 0
Points : 0
toujours la même erreur...
je vais finir par faire une proc import d'un fichier csv...
merci pour votre aide!
carolu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h06   #9
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Et si tu ouvres le classeur Excel manuellement, avant de lancer l'étape DATA avec INFILE et INPUT, ça fonctionne ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h46   #10
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 0
Points : 0
non, ça fait toujours la même erreur...
carolu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 17h17   #11
Membre éprouvé
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 334
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 35
Localisation : France

Informations professionnelles :
Activité : responsable adjoint service stat
Secteur : Finance

Informations forums :
Inscription : mars 2009
Messages : 334
Points : 464
Points : 464
Ca peut être à cause de la définition de ton triplet DDE pour le filename.
Ta définition 'excel|alimentation!r1c1:r36c14' correspond à une installation en anglais excel :
- la notation RC correspond à Row Column
- la notation LC correspond à Ligne Colonne

Tu peux tenter 'excel|alimentation!L1c1:L36c14' ?

Pour en avoir le coeur net, une méthode "sioux" pour définir ton filename :
- sous Excel, "copie" la zone que tu veux définir
- retourne sous SAS, via le menu, fait "Solution/Accessories/Triplet DDE" : une fenêtre affiche ton triplet DDE tel que tu dois l'alimenter
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h01.


 
 
 
 
Partenaires

Hébergement Web