Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 11-08-2009 13:50:41

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Connexion tcp/ip via PowerBuilder

Bonjour à tous,
J'aimerais écrire un code PB pour me connecter sur un ordinateur du réseau local et accéder à un fichier, créer un nouveau fichier,  et modifier un fichier existant. Quelqu'un peut-il me guider je développe une application client/serveur
Merci d'avance


PB 11.1 build 8123
Windows XP
Oracle 10g

Hors ligne

 

#2 11-08-2009 14:02:27

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Connexion tcp/ip via PowerBuilder

Bonjour,

Je te conseille de consulter la documentation concernant les fonctions PB : FileOpen, FileReadEx, FileWriteEx, FileClose.

Ce sont les principales fonctions permettant la manipulation de fichier avec Powerbuilder, il y a également des exemples d'utilisation dans la documentation.

Pour accéder à un fichier sur un autre poste, il suffit simplement que le chemin réseau soit mappé sur un volume de ton poste local et tu utilises ce chemin dans la fonction FileOpen.

Hors ligne

 

#3 11-08-2009 16:54:51

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Re: Connexion tcp/ip via PowerBuilder

Comment faire pour mapper le chemin réseau sur un volume de mon poste local ?
Quelqu'un peut-il me guider dans la procédure ?

Hors ligne

 

#4 11-08-2009 17:06:30

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Connexion tcp/ip via PowerBuilder

via DOS tu peux faire :

Code: pb

Run( "NET USE F: \\serveur\dossier" )

via l'API windows :

Code: pb

// Function Declaration:

FUNCTION ulong WNetUseConnectionA (ulong hwndOwner, &
   REF s_netresource lpNetResource, string lpPassword,
   string lpUsername, ulong dwFlags, REF string lpAccessName, &
   REF ulong lpBufferSize, REF ulong lpResult) library "mpr.dll"


// Structure Definition:

$PBExportHeader$s_netresource.srs
global type s_netresource from structure
 unsignedlong  dwScope
 unsignedlong  dwType
 unsignedlong  dwDisplayType
 unsignedlong  dwUsage
 string  lpLocalName
 string  lpRemoteName
 string  lpComment
 string  lpProvider
end type


// Mapping Code:

CONSTANT ulong NO_ERROR = 0
CONSTANT ulong CONNECT_REDIRECT = 128
CONSTANT ulong RESOURCETYPE_DISK = 1

s_netresource lstr_netresource

String   ls_null
String   ls_buffer
String   ls_MappedDrive

uLong    ll_bufferlen
uLong    ll_null
uLong    ll_ErrInfo
uLong    ll_success

SetNull(ll_null)
SetNull(ls_null)

ls_buffer = Space(32)
ll_bufferlen = Len(ls_buffer)

lstr_netresource.dwType = RESOURCETYPE_DISK
lstr_netresource.lpLocalName = ls_null
lstr_netresource.lpRemoteName = "UNC resource name here"
lstr_netresource.lpProvider = ls_null

ll_ErrInfo = WNetUseConnectionA(ll_null, lstr_netresource, &
   'password', 'username', &
   CONNECT_REDIRECT, ls_buffer, ll_bufferlen, ll_success)

IF ll_ErrInfo = NO_ERROR THEN
   MessageBox("Drive Mapped", "Drive Letter is " + ls_buffer)
   Return 1
ELSE
   MessageBox("Mapping Falied", "Error is " + String(ll_ErrInfo))
   Return -1
END IF

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22