Question : ILE proto

Salut des amis, essai du

I pour combiner 2 organes mobiles de programmes qui fonctionnent très bien, maintenant j'obtiens le doubl ; le
Maybe d'erreurs de définition d'e… parce que c'est il y a quelque temps que j'ai écrit ce genre de substance, mais moi ne peut pas trouver le solution
(dans vrai vivent-ils les PM#S ne sont-ils pas 4 mais 400)

And oui que je vois qu'il y a une double définition, mais comment résoudre ceci ? EXPERTS EN MATIÈRE du

Thanks ! ! ! ! !

class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
EXPORTATION " de " codeSnippet785125 d'id= " de
P de class=                     
#BLDSTR pi 1600A de D VARIANT                    
D StrInp 1600A CONST VARIANT              
OPTIONS DE D (*VARSIZE)          
D PM#001 100A CONST VARIANT              
OPTIONS DE D (*VARSIZE : *NOPASS)  
D PM#002 100A CONST VARIANT              
OPTIONS DE D (*VARSIZE : *NOPASS)  
D PM#003 100A CONST VARIANT              
OPTIONS DE D (*VARSIZE : *NOPASS)  
D PM#004 100A CONST VARIANT              
OPTIONS DE D (*VARSIZE : *NOPASS)  
DPM#DS DS                                        
Recouvrement de D PM#001 100A (PM#DS : *NEXT) 
Recouvrement de D PM#002 100A (PM#DS : *NEXT) 
Recouvrement de D PM#003 100A (PM#DS : *NEXT) 
Recouvrement de D PM#004 100A (PM#DS : *NEXT) 
D PM# 100A obscurcissent (4) a recouvert (PM#DS : 1)
class= de

Réponse : ILE proto

Est-ce que je ne peux pas employer des likeds dans ma pièce de P.R. (pi) ?

Tant que le proc appelant introduit un DS, puis vous pouvez employer un DS du côté de réception.

C'est-à-dire, si le proc appelant passe un paramètre « par la référence », votre proc de réception va seulement recevoir une adresse -- la définition est non pertinente en ce qui concerne le système ; il est essentiellement seulement approprié en termes d'entretien. (Mais c'est une pertinence importante. Vous voulez réutiliser des définitions entre le visiteur et l'appelé afin de réduire au minimum des bogues des définitions incompatibles.)

Si la mémoire est définie dans un DS dans le proc appelant, vous pouvez employer la même définition de DS dans le proc appelé parce qu'ils se dirigeront à la même mémoire (tant que passé « par la référence »). Et dans ce cas, il n'y aurait pas aucun besoin de votre proc à EVAL de/à l'argument et un DS séparé ; les valeurs seraient déjà dans le DS.

Ou si un groupe de 400 variables tout s'avèrent justement être dans la mémoire contiguë dans le proc appelant et elles toutes ont la même définition, vous devez seulement passer l'adresse de la première variable -- le proc appelé peut définir son argument pour être une rangée de 400 éléments. (Naturellement, il peut être rusé pour s'assurer que vous employez la mémoire contiguë -- un DS est employé souvent pour celui.)

Mais avoir différentes définitions entre appeler et les procs appelés est ce qui élargit le risque de parms mal adaptés. Ainsi nous employons régulièrement des membres de /COPY pour aider à s'assurer que nous mettons en référence la mémoire la même manière sur les deux extrémités.

Si vous passez dans un DS, vous devrez charger le DS avec des valeurs dans chaque proc qui appelle votre proc. Si vous passez dans les parms séparés, vous chargez seulement le DS dans votre proc. Vous devez choisir où la gestion de la mémoire principale a lieu.

Si c'est dans un proc qui sera seulement lié dans un programme simple, il ne pourrait faire aucune différence. Il sera seulement fait dans l'une seule pièce du code l'une ou l'autre manière.

Mais si votre proc peut s'appeler du multiple d'autres procs, vous devriez voir que le chargement de la rangée pourrait être le meilleur dans votre proc. Ne pas dicter aux procs appelants comment ils doivent organiser leurs variables.

La réponse est… lui dépend.

Tom
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us