Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: pirandello - 01 Aprile 2010, 22:04:08

Titolo: [RISOLTO] MySQL - Stored Procedure
Inserito da: pirandello - 01 Aprile 2010, 22:04:08
Salve,
esiste del codice in Gambas per poter chiamare una Stored Procedure in MySQL?
Grazie
Titolo: Re: MySQL - Stored Procedure
Inserito da: fsurfing - 01 Aprile 2010, 22:24:21
puoi utilizzare la classica istruzione

connection.exec(sql)

in cui sql contiene la stringa sql che contiene la stored procedure

dovrebbe essere così
Titolo: Re: MySQL - Stored Procedure
Inserito da: pirandello - 09 Aprile 2010, 14:39:28
puoi utilizzare la classica istruzione

connection.exec(sql)

in cui sql contiene la stringa sql che contiene la stored procedure

dovrebbe essere così

Potresti aiutarmi scrivendo qualche riga di codice per comprendere meglio?
Grazie
Titolo: Re: MySQL - Stored Procedure
Inserito da: Will32 - 09 Aprile 2010, 15:18:56
Dovrebbe essere più a meno così :

Codice: [Seleziona]
DIM $hConn AS NEW Connection
DIM sql AS String

  WITH $hConn
  
    .Type = "MySQL"  
    .Host =  xxxxxx    ' metti il tuo percorso
    .Login = ""    
    .Password = ""    

  END WITH
  
      $hconn.Open
      
          sql = "" ' metti la stringa della procedura
          hres = $hconn.Exec(sql)
                            
      $hconn.Close
Titolo: Re: MySQL - Stored Procedure
Inserito da: pirandello - 09 Aprile 2010, 16:34:16
Dovrebbe essere più a meno così :

Codice: [Seleziona]
DIM $hConn AS NEW Connection
DIM sql AS String

  WITH $hConn
  
    .Type = "MySQL"  
    .Host =  xxxxxx    ' metti il tuo percorso
    .Login = ""    
    .Password = ""    

  END WITH
  
      $hconn.Open
      
          sql = "" ' metti la stringa della procedura
          hres = $hconn.Exec(sql)
                            
      $hconn.Close

Ho utilizzato il codice sopra ma quando chiamo la Stored Procedure con:

 hres = $hconn.Exec("CALL StoredProcedure(HelloWorld)")

ho questo errore:

query failed: PROCEDURE test.StoredProcedure does not exist

Qualche idea del perchè?
Grazie

Titolo: Re: MySQL - Stored Procedure
Inserito da: Ceskho - 09 Aprile 2010, 16:52:03
Ma la procedura che vuoi usar esiste all'interno dell'ambiente in cui usi il database?
Titolo: Re: MySQL - Stored Procedure
Inserito da: Golia - 09 Aprile 2010, 22:10:57
Forse mi sbaglio ma quello che hai scritto mi sa da visualbasic
Titolo: Re: MySQL - Stored Procedure
Inserito da: Will32 - 10 Aprile 2010, 09:07:26
Prova a togliere dal codice hres .   ;D
Che cosa , se posso, devi fare con il programma ?

P.S : Il codice l'ho prelevato da un programma in Gambas , quando tanti anni fa stavo imparando !
Titolo: Re: MySQL - Stored Procedure
Inserito da: Golia - 10 Aprile 2010, 11:37:11
hres deve essere dichiarato
dim hres as result
Titolo: Re: MySQL - Stored Procedure
Inserito da: Will32 - 10 Aprile 2010, 14:47:34
Ho messo hres nel codice prechè l'ho preso da un programma ( e mi son dimenticato di toglierlo ) .  :(
Ecco il codice d'esempio ( che non ha hres, perchè a priandello non serve !!   :P ) :

Codice: [Seleziona]
DIM $hConn AS NEW Connection
DIM sql AS String

  WITH $hConn
 
    .Type = "MySQL" 
    .Host =  xxxxxx    ' metti il tuo percorso
    .Login = ""   
    .Password = ""   

  END WITH
 
      $hconn.Open
     
          sql = "" ' metti la stringa della procedura
          $hconn.Exec(sql)
                             
      $hconn.Close

Se è tutto a posto, metti [ RISOLTO ] nel titolo .   ;D
Titolo: Re: MySQL - Stored Procedure
Inserito da: pirandello - 10 Aprile 2010, 19:18:35
Ho messo hres nel codice prechè l'ho preso da un programma ( e mi son dimenticato di toglierlo ) .  :(
Ecco il codice d'esempio ( che non ha hres, perchè a priandello non serve !!   :P ) :

Codice: [Seleziona]
DIM $hConn AS NEW Connection
DIM sql AS String

  WITH $hConn
 
    .Type = "MySQL" 
    .Host =  xxxxxx    ' metti il tuo percorso
    .Login = ""   
    .Password = ""   

  END WITH
 
      $hconn.Open
     
          sql = "" ' metti la stringa della procedura
          $hconn.Exec(sql)
                             
      $hconn.Close

Se è tutto a posto, metti [ RISOLTO ] nel titolo .   ;D

Adesso è tutto OK
SQL = "CALL + StoredProcedure"