Après windows pour les nuls, voici PB pour les bons (ou presque).

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 18-01-2010 14:16:56

BRWA  
Membre Power Geek
Lieu: Beuzet (Belgique)
Date d'inscription: 18-12-2008
Messages: 151
Pépites: 24,612
Banque: 0

[ASTUCE] Exécuter des fichiers SQL depuis une application web

Bonjour,

Voici un code permettant de faire exécuter une série de fichiers .sql depuis une application web :

Code: pb

#IF DEFINED PBWEBFORM THEN
  UploadFiles("c:\", 15780518, 1, true,"Chargez dans l'ordre les fichiers SQL à exécuter", ".sql", "wf_callback", w_execut_sql)
#END IF


Et la fonction wf_callback associée :

Integer wf_callback(string as_array[])

Code: pb

// BW128
Integer li_return
integer li_fnum 
long ll_bytes 
string ls_filename  
string ls_docpath
int li_position 
 int li_stringlength 
 int li_rightchar 
 string ls_sql

mle_sql.Text = ""
for li_return = 1 to upperbound(as_array) 


 ls_docpath = as_array[li_return] 


    ls_filename  = ls_docpath 
    // take just the ls_filename  portion of the this string by search right to left for the '\' symbol 
    
    li_position = LastPos (ls_filename , '\') 


    li_stringlength = len(ls_filename ) 
    li_rightchar = li_stringlength - li_position 
    ls_filename  = right( ls_filename , li_rightchar ) 


 li_fnum = FileOpen(ls_docpath, StreamMode!) 

 ll_bytes = FileRead(li_fnum, ls_sql) 

 FileClose(li_fnum) 
 if ll_bytes > 0 then
   Execute immediate :ls_sql;
   if sqlca.sqlcode > -1 then
    commit;
    mle_sql.Text = mle_sql.Text + ls_docpath + "~t~tOK~r~n"
    
  else
    rollback;
    mle_sql.Text = mle_sql.Text + ls_docpath + "~t~tKO"
    MessageBox("ERREUR SQL","SQLCA.SQLCODE = " + string(sqlca.sqlcode) + "~r~n" + sqlca.sqlerrtext)
    li_return = upperbound(as_array) + 1 // sortie de boucle
  end if
else
  mle_sql.Text = mle_sql.Text + ls_docpath + "~t~tKO"
  MessageBox("ERREUR","Erreur de lecture du fichier " + ls_docpath)
  li_return = upperbound(as_array) + 1 // sortie de boucle
end if

Next


Return li_return

Wagener Bruno

Hors ligne

 

#2 18-01-2010 15:21:01

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

Re: [ASTUCE] Exécuter des fichiers SQL depuis une application web


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

Hors ligne

 

#3 18-01-2010 15:23:52

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [ASTUCE] Exécuter des fichiers SQL depuis une application web

000 pépites


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#4 19-01-2010 08:17:55

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [ASTUCE] Exécuter des fichiers SQL depuis une application web

000 pépites


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22