Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Phoenix

Pagine: [1]
1
Programmazione (Gambas 2) / Re: Modulo per connessione DB SQLite3
« il: 14 Dicembre 2008, 14:31:53 »
Grazie era quello che volevo sapere per l'esito delle query.

Anche se in ritardo volevo farti i complimenti per il software pgDesigner.

2
Programmazione (Gambas 2) / Re: Modulo per connessione DB SQLite3
« il: 13 Dicembre 2008, 18:20:57 »
Tutto bene ...

Ho messo la creazione del db e tabelle annesse in main e la connessione in connect il tutto nel modulo ModDB.

Il moddb.main lo richiamo da fstart_show, in pratica quando viene avviata l'applicazione controlla subito se esiste il db.

Ora eseguo questo quando devo effettuare l'inserimento

ModDb.Connect
  $sql = "insert into utente values (1,NULL,'" & $nomeCompleto & "','" & $nomeVisualizzato & "','" & $password & "')"
  $result = ModDb.$conn.Exec($sql)

e quindi non mi è chiaro questo

"inoltre se le variabili (nome e host e $conn ) le rendi pubbliche una volta impostate potrai aprire e chiudere il db da qualsiasi parte del programma semplicemente con $conn.open e $conn.close"

Che vantaggi/svantaggi ci sono richiamando la funzione del modulo invece di richiamare la variabile?

Piccola domanda, c'è un metodo per sapere se il record è stato aggiunto per poterlo utilizzare in un IF/END IF?

Grazie per l'aiuto e i chiarimenti e se a qualcuno serve il codice completo me lo dica che lo posto.

3
Programmazione (Gambas 2) / Modulo per connessione DB SQLite3
« il: 13 Dicembre 2008, 15:42:18 »
Allora sono passato a sqlite3 per il mio progetto (vedi post precedenti).

Prima utilizzando mysql andavo a creare la connessione in un modulo esterno al form, quando dovevo connettermi richiamavo la connessione dal modulo e riusciva a operare sul db senza dover ogni volta ripetere i dati di connessione.

Passando a sqlite3 mi sono detto "ok togliendo nome e pass e dandogli il nome del file che costituisce il db non ci dovrebbero essere probemi" .... furono le mie ultime parole famose ....

Quando richiamo la connessione mi da sempre che non trova il db o che la query non è esatta. Ho provato a fargli passare la query con sqlitebrowser e non ci sono problemi, quindi non trova il db, ho provato vari modi ma l'errore non cambia.

Posto qui sotto il contenuto del modulo ModDb

-------------------------------------------------------------------------------

' Gambas module file
PUBLIC $conn AS NEW Connection
PUBLIC $dbName AS String = "working.db"
PUBLIC $sql AS String

PUBLIC PROCEDURE Connect()

'################## MYSQL
'$conn.Close() 'chiude la connessione
'$conn.Type = "mysql" 'tipo di connessione
'$conn.Host = "localhost"
'$conn.Host = "localhost" 'nome del server
'$conn.Login = "root" 'username della connessione
'$conn.port = "3306" 'porta utilizzata dal database
'$conn.Name = "working" 'nome del database da utilizzare
'$conn.Password = "password-root" 'password di accesso
'$conn.Open() 'apre la connessione

'################## SQLITE3

  $conn.Close
 
  WITH $conn
    .Type = "sqlite3"
    .Host = User.Home
  END WITH

  $conn.Open
 
  IF (NOT $conn.Databases.Exist($dbName)) THEN
      Message.Info("Il DB non esiste", "OK")
      'creo il db
      $conn.Databases.Add($dbName)
      Message.Info("Creo il DB", "OK")
      Message.Info("Creo la tabella Utente", "OK")
      $sql = "CREATE TABLE utente (attivo NUMERIC, id INTEGER PRIMARY KEY, nome_completo TEXT, uname TEXT, upass TEXT)"
      $conn.Exec($sql)
  ENDIF

END

PUBLIC SUB Main()

  Connect() 'avvia la procedura per la connessione

END

-------------------------------------------------------------------------------

E qui posto la parte da dove parte la chiamata al modulo dal form dove serve operare con il db

--------------------------------------------------------------------------------

'inserimento dati
  ModDb.Connect()
  ModDb.$conn.Name = "working.db"
  $sql = "insert into utente values (1,NULL,'" & $nomeCompleto & "','" & $nomeVisualizzato & "','" & $password & "')"
  $result = ModDb.$conn.Exec($sql)

--------------------------------------------------------------------------------

ModDb.$conn.Name = "working.db" l'ho aggiunto dopo anche se non sono mai stato troppo convinto che servi a qualcosa.

Ho provato a operare con la connessione direttamente sul form e non ci sono problemi quindi presumo che l'errore sia nel modulo. Come posso procedere?

4
Programmazione (Gambas 2) / Re: Modificare un record
« il: 12 Dicembre 2008, 22:57:43 »
... prova direttamente a dargli da mangiare una query sql ...

5
x md9327

Non mi hai per nulla spaventato, anzi, meglio ora che quando si è alla fine dell'opera ;-).

Grazie dei suggerimenti, hai pienamente ragione sui log, meglio scrivere qualche riga in più ora per creare il log che rompersi le ..... a trovare dove sta l'inghippo dopo :-)

x leo72

grazie per la sintassi dei comandi, ora non li dovrò cercare quando ne avrò bisogno.

6
Programmazione (Gambas 2) / Re: Uso di un database
« il: 11 Dicembre 2008, 11:34:16 »
Prova ad iniziare da qui http://database.html.it/guide/leggi/87/guida-mysql/ e poi inizia a vedere in libreria se trovi un buon manuale.

Mysql lo utilizzavo con PHP e ora lo sto provando con gambas.
Per potermi connettere ad esso uso un modulo salvato nella cartella 'Moduli' chiamato MODMain. Questo è un estratto...

' Gambas module file
PUBLIC $conn AS NEW Connection

PUBLIC PROCEDURE Connect()
 
  $conn.Close()             'chiude la connessione
  $conn.Type = "mysql"      'tipo di connessione
  $conn.Host = "localhost"  'nome del server
  $conn.Login = "root"        'username della connessione
  $conn.port = "3306"          'porta utilizzata dal database
  $conn.Name = "database"   'nome del database da utilizzare
  $conn.Password = "password-root"  'password di accesso
  $conn.Open()              'apre la connessione
 
END

PUBLIC SUB Main()
 
  Connect() 'avvia la procedura per la connessione
 
END

Quando devo connettermi da qualsiasi parte del programma utilizzo:

MODMain.Connect()
risultato = MODMain.$conn.Exec("select id from tabella)

per scrivere l'id che ne è uscito

PRINT "ID = " & risultato!id

E' da pochissimo che lo uso e quindi prendilo come punto di inizio, qualcuno saprà sicuramente fare di meglio.

7
Intanto grazie per l'attenzione.

Forse stavo ubriaco ma oggi con $result.Count non riuscivo a fargli contare nulla... ho provato ora (tanto per non fare figuracce) e funziona tutto. Sorvoliamo che è meglio :-).

-------------------

Passiamo alla distribuzione di applicazioni che facciano uso di un db come MySQL.

Ora, nello sviluppare l'applicazione (una sorta di conteggio di ore di lavoro) utilizzo MySQL.

Molto probabilmente arriverà il giorno che la metterò a disposizione di tutti e qui mi sorge il problema. Come aggirare l'installazione e/o la configurazione di MySQL.
Devo creare uno script esterno per configurare il tutto (tabelle, campi ecc.)? In tal caso come procedere con i permessi?

Lo so che sembra una domanda banale, ma non credo che alla lunga basti un file di testo per tenere traccia delle informazioni del programma. O forse mi devo indirizzare ad utilizzare un altro db tipo SQLite (che proprio non conosco)?

Grazie per le eventuali risposte.

8
Salve a tutti questa è il mio secondo quesito. Devo conteggiare il numero di record estratti da una tabella MySQL.

Non voglio utilizzare count(). Utilizzando PHP potrei usare "mysql_num_rows" ma in gambas come posso fare?

----------
Prendo spunto dell'argomento MySQL per porre una domanda per la distribuzione di un eventuale programma che ne faccia uso.

Quale potrebbe essere il modo migliore per installare un db? Crearlo al primo avvio del programma? In ogni caso dovrei avere i permessi per farlo, potrei far scegliere all'utente finale il nome e passwd di identificazione per averne i permessi ma se è un newbie?

Grazie per l'attenzione.

9
Programmazione (Gambas 2) / Re: MD5
« il: 10 Dicembre 2008, 12:32:24 »
Magnifico! Grazie per la rapidità e la completezza della risposta.

10
Programmazione (Gambas 2) / MD5
« il: 10 Dicembre 2008, 01:37:43 »
Salve a tutti, è da pochi giorni che mi sono avvicinato a gambas (2 giorni) e vorrei saper come cryptare una parola o frase in MD5.

Ho attivato il componente gb.crypt e letto la spiegazione su http://gambasdoc.org/help/comp/gb.crypt/crypt/_call?it ma sinceramente non ho capito come proseguire, qualcuno sarebbe così gentile da farmi uno schemino pratico?

Grazie

Pagine: [1]