Pas de problème (pb), que du PowerBuilder (PB) ^^

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