Autore Topic: Semplice codice utilizzo di un db postreql  (Letto 1469 volte)

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Semplice codice utilizzo di un db postreql
« il: 08 Novembre 2016, 11:27:21 »
Buongiorno,
sono nuovo in form e in gambas,
ed haimè non sono ne "inform" ne "ingamba"
ecco avrei una necessità
collegare un db postgresql (su questo ho usato il wizard che mi ritrovo come Connection1 che ho usato in un dataview selezionando le colonne opportune nella proprietà "Columns"),
ma credo sia meglio prima di mostrarvi i miei errori dire quello che mi occorre
        collegare un database postgresql
        manipolare il db con una query
        utilizzare i campi e i valori ottenuti con la query in un grafico

Non riesco a usare il db nel codice,
nel dirmi ("vostra cortesia permettendo") fai così vi prego di usare
esempio di db:
     database1, Tabella1, Campo1, Campo2

e variabili:
     per Campo1     iDato1
     per Campo2    dData2

esempio di query:
      Select * from tabella1 where Campo1 =3

Grazie a tutti in anticipo (ed in paritcolare allegfed)
Saluti Cesver.

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #1 il: 08 Novembre 2016, 13:11:43 »
Ciao cesare e benvenuto.
In generale io uso mysql, ma in linea di principio non dovrebbe essere differente.

nei miei programmi metto come variabile globale (all'inizio del codice di ogni form) queste righe:
Codice: [Seleziona]
' Gambas class file
Public DB_server_IP As String
Public DB_server_Port As String
Public DB_server_DBuser As String
Public DB_server_DBpass As String
Public DB_server_DBname As String

dove memorizzo i valori "globali" di accesso al mio database.

associo i dati alle variabili in una procedura che richiama i dati dalle preferenze (tipo il registro di winzoz ma e' un file nascosto nella home del tuo utente linux):
Codice: [Seleziona]
Public Sub Load_Settings()
 
  DB_server_IP = settings["DB/ip", "127.0.0.1"]
  DB_server_Port = settings["DB/port", 3306]
  DB_server_DBuser = settings["DB/user", "OTVAuser"]
  DB_server_DBpass = settings["DB/password", "OTVApass"]
  DB_server_DBname = settings["DB/dbname", "OTVA"]
 
End

poi ogni volta che devo fare delle operazioni sql il codice e' piu' o meno lo stesso (varia il comando sql ovviamente):
Codice: [Seleziona]
Public Sub Load_DB_Data()
Dim ComandoProgrammi As String = "select * from Channels"

Dim $Con As New Connection
Dim Risultato As Result
 
  '-------------------------------------------------------------- CANALI
  $Con.close()                  ' Close the connection
  $Con.Type = "MySQL"           ' Type of connection
  $Con.Host = DB_server_IP   ' Name of the server
  $Con.Login = DB_server_DBuser    ' User's name for the connection
  $Con.Port = DB_server_Port       ' Port to use in the connection, usually 3306
  $Con.Name = DB_server_DBname    ' Name of the database we want to use
  $Con.Password = DB_server_DBpass ' User's password
 
  Try $Con.Open()
  'carico i programmi come root del treeview
  Risultato = $Con.Exec(ComandoProgrammi)
 
  ComboBox_Canali.Clear
 
  For Each Risultato
    ComboBox_Canali.Add(risultato!name, risultato!id)
  Next
 
  LoadChannelData(ComboBox_Canali.Text)
  LoadOverview(ComboBox_Canali.Text, Format(DateChooser_Giorno.Value, "yyyy-mm-dd"))
  '----------------------------------------------------------------------------
 
End

nota la riga:
Codice: [Seleziona]
$Con.Type = "MySQL"           ' Type of connection
nel tuo caso, utilizzando postgre dovrai mettere "postgresql" (http://gambaswiki.org/wiki/comp/gb.db/connection/type?w)

e ricordati che vanno aggiunti i componenti (progetto->proprieta'->componenti) gb.db e gb.db.postgresql.

Dopo di che dovrai speriemntare un po' :D
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #2 il: 08 Novembre 2016, 13:53:11 »
Ciao Cesver,
benvenuto.
Qui c'è un manuale su Postgresql interessante del grande Sotema.
Qui c'è del codice per una connessione a Postgresql   
Qui c'è una spiegazione di come ho installato Postgresql su Ubuntu
Qui il wiki da cui ho tratto ispirazione

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #3 il: 08 Novembre 2016, 16:36:01 »
Gentili,
grazie ai vostri interventi ho capito quello che non so quando sarei riuscito a capire
e non è come si fa, perchè mi avete dato conferma che quanto avevo fatto
doveva pur essere giusto.
L'errore ( e lo scrivo per i postumi)
era perchè il db in questione aveva la tabella e campi con maiuscole e minuscole e a quanto pare fa differenza
(specie in giornate di esaurimento) io ero rimasto, almeno per la mia precaria memoria, che non fa differenza
nelle query ed invece...
grazie di cuore (e di testa), Cesver.

vogliamo tenere in piedi il post per le
questione correlate
1.: come si dovrebbe fare per ovviare a questo inconveniente? in senso se capitasse un db con queste caratteristiche come fare (io ho velocemente (quanto inversamente ortodosso) messo tutto piccolo)
2.: perchè non si possono selezionare i componenti da inserire una volta creato il tipo di progetto(GAMBAS 3.9.1) (io nei tentativi ho modificato il sorgente del progetto .project
3.: come usare nel sorgenge la comoda interfaccia connessione che crea la Connection1 nel progetti ApplicationDB, che in fase di disegno del form si usa facilmente, ma nel codice non ci sono riuscito

poi avrei un altra proposta per il gambas-it.org che è la seguente:
4.: sono contento per i cugini di lingua latina ma per i videocorsi in italiano non siamo (dico "siamo" solo in quanto italiano non certo per la formazione che è pressochè zero)
5.: avete ragione avete ragione non mi considerate.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #4 il: 08 Novembre 2016, 16:54:04 »
ma per i videocorsi in italiano non siamo
...."non siamo".... cosa ?    ???
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #5 il: 08 Novembre 2016, 17:06:14 »
ma per i videocorsi in italiano non siamo
...."non siamo".... cosa ?    ???
non siamo al passo (chiedo venia)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #6 il: 08 Novembre 2016, 17:14:13 »
non siamo al passo
Eh.... e chi li realizza ?!   
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #7 il: 08 Novembre 2016, 17:28:11 »
(non certo io (sono mooolto nuovo)) community e filosofia wiki. Ma torniamo al punto 5
5.: avete ragione avete ragione non mi considerate

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #8 il: 08 Novembre 2016, 22:49:36 »
Gentili,
grazie ai vostri interventi ho capito quello che non so quando sarei riuscito a capire
e non è come si fa, perchè mi avete dato conferma che quanto avevo fatto
doveva pur essere giusto.
L'errore ( e lo scrivo per i postumi)
era perchè il db in questione aveva la tabella e campi con maiuscole e minuscole e a quanto pare fa differenza
(specie in giornate di esaurimento) io ero rimasto, almeno per la mia precaria memoria, che non fa differenza
nelle query ed invece...
grazie di cuore (e di testa), Cesver.

Effettivamente SQL è case insensitive e non capisco cosa intendi dire.

Citazione
vogliamo tenere in piedi il post per le
questione correlate
1.: come si dovrebbe fare per ovviare a questo inconveniente? in senso se capitasse un db con queste caratteristiche come fare (io ho velocemente (quanto inversamente ortodosso) messo tutto piccolo)
2.: perchè non si possono selezionare i componenti da inserire una volta creato il tipo di progetto(GAMBAS 3.9.1) (io nei tentativi ho modificato il sorgente del progetto .project
3.: come usare nel sorgenge la comoda interfaccia connessione che crea la Connection1 nel progetti ApplicationDB, che in fase di disegno del form si usa facilmente, ma nel codice non ci sono riuscito

Se al punto uno ti riferisci al Case Sensitive ecc. come detto SQL è insensitive.

Al punto due rispondo che puoi variare la selezione dei componenti anche dopo aver creato il progetto: Progetto>Proprietà>Componenti, ma forse non ho capito.

Anche per il punto tre temo di non aver capito a quale interfaccia ti riferisci.
Comunque per me è molto più semplice distribuire un programma che crea il database da zero al suo avvio. Io ho sempre usato questo sistema.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #9 il: 09 Novembre 2016, 12:45:07 »
lanciata una query sql in postgresql con interfaccia pgADMIN III su una tabella o su una taBella viene accettata rispondeva usando l'unica TAbeLLa
di default deduco case insensitive.
sql non è qui case sensitive sembra quindi sia altra questione nella gestione del db postgresql, l'ambiente di sviluppo lo considera case sensitive.
in breve l
a query andava bene ma in gambas la stessa query non andava bene (questo non è che intendevo dire 'lho scoperto" grazie agli aiuti del forum e per grazia di Dio").

Quando dopo aver scelto il tipo di applicazione vado in Progetto->Proprietà->Componenti vedo i componenti, ma non riesco a selezionarli

Per chiamare l'interfaccia in questione nella scelta della tipologia di applicazione ho selezionato  applicazione DB nel wizard iniziale di gambas

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #10 il: 11 Novembre 2016, 19:53:51 »
guardate che forse sql e' case INsensitive, ma alla prova pratica se una tabella NOMEtabella viene chiamata con "select * from NomeTabella" gambas risponde con un errore :D

o meglio il driver di mysql mi restituisce un risultato nullo.
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #11 il: 11 Novembre 2016, 20:11:41 »
guardate che forse sql e' case INsensitive, ma alla prova pratica se una tabella NOMEtabella viene chiamata con "select * from NomeTabella" gambas risponde con un errore :D

o meglio il driver di mysql mi restituisce un risultato nullo.

Allora vediamo se si può chiarire la cosa, SQL è case insensitive, Linux è case sensitive, quello che riguarda un comando SQL può essere scritto così "SeLeCT" .
Se faccio un confronto con uguale devo stare attento, ma se uso Like sono libero.
È chiaro che se scrivo il nome di una Tabella questa è case sensitive e se faccio una ricerca sui dati con "=" idem, ma i dati posso confrontarli con Like e allora se cerco Pippo ottengo anche PIPPO.

Spero di essere stato spiegato  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #12 il: 28 Novembre 2016, 19:47:04 »
chiaro e cristallino :D
se corri, morirai stanco (motto degli sniper)

Offline cesver

  • Gamberetto
  • *
  • Post: 26
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #13 il: 14 Dicembre 2016, 16:42:06 »
gentili gambaSorry,
ogni tanto guardavo il forum e preso dalla mole non sono riuscito a stare dietro al mio stesso post,
e ciliegina sulla torta ho avuto problemi con il cuore (lo dico perchè aiuta nelle scuse),

quindi
cari GambaSorry:
Sorry!

Volevo chiedere, sono abbastanza sicuro (e quindi sicuramente mi sbaglierò),
ma...,  i miei due post avevano qualche pagina in più.
le altre pagine sono da qualche altra parte o eliminate?
(sono sicuro perchè per un problema sul mio ambiente di sviluppo mi era stato girato un link con risposta del fondatore di gambas).

ed avrei un altra domanda posso creare dei pulsanti con la forma diversa (poligonale)?
sarebbe bene aprire un post per quest'ultima risposta?

Grazie Cesver.

p.s.:Abbiate pazienza se qualche domanda vi sembra stupida, ma ricordo una frase che di stupido possono esserci solo risposte, nessuna domanda lo è)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Semplice codice utilizzo di un db postreql
« Risposta #14 il: 14 Dicembre 2016, 16:59:30 »
ed avrei un altra domanda posso creare dei pulsanti con la forma diversa (poligonale)?
sarebbe bene aprire un post per quest'ultima risposta?
Sarebbe più opportuno, sì, perché così in futuro altri lettori del forum, interessati a tale argomento, potranno più facilmente nella loro ricerca individuare la discussione da te avviata.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »