Le forum (ô combien francophone) des utilisateurs de 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
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
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
via DOS tu peux faire :
Run( "NET USE F: \\serveur\dossier" )
via l'API windows :
// 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
Hors ligne