Public Sub Modifica()
$Con.Close
Try $Con.Open() ' Open the connection
If Error Then
$Con = Null
Message.Error("Errore durante la connessione")
Else
$Con.Exec("UPDATE clienti SET COGNOME=" & TextBox5.Text & ",NOME=" & TextBox6.Text & ",VIA=" & TextBox7.Text & ",CITTA=" & TextBox8.Text & " WHERE id=" & nid)
LeggiDatabase
Endif
End
Questa sub non funziona, non succede nulla. Vedete qualcosa che non va?
Si alcuni errori li vedo le stringhe vanno avvolte negli apici (') Postgres non vuole le maiuscole nei nomi di campo, le iterrogazioni devono finire con il punto e virgola ';', ti aiuterebbe molto scrivere così:
Dim sMySql As String
sMySql = "UPDATE clienti"
sMySql &= " SET cognome='" & TextBox5.Text & "',"
sMySql &= " nome='" & TextBox6.Text & "',"
sMySql &= " via='" & TextBox7.Text & "',"
sMySql &= " citta='" & TextBox8.Text & "'"
sMySql &= " WHERE id=" & nid
sMySql &= ";"
$Con.Exec(sMySql)
Meglio se usi il "sistema" Gambas vedi il mio codice in ReportTest nella Farm come creo e riempo la tabella.
Se parti in quarta senza sapere come si usa Gambas farai solo paciughi :)
Ti ringrazio per i suggerimenti, sopratutto per quelli legati alla costruzione della stringa della query SQL quell'ordine certamenente mi akiuterà ad evitare qualche errore di sintassi.. Ho provveduto pure al lowercase dei campi.
Ma la query non funziona ancora.
Public Sub Modifica()
Dim sMySql As String
sMySql = "UPDATE clienti"
sMySql &= " SET cognome='" & TextBox5.Text & "',"
sMySql &= " nome='" & TextBox6.Text & "',"
sMySql &= " via='" & TextBox7.Text & "',"
sMySql &= " citta='" & TextBox8.Text & "'"
sMySql &= " WHERE id=" & nid
sMySql &= ";"
$Con.Close
Try $Con.Open() ' Open the connection
If Error Then
$Con = Null
Message.Error("Errore durante la connessione")
Else
$Con.Exec(sMySql)
LeggiDatabase
Endif
End
Scusa ma $Con da solo non apre una connessione chiusa. :-\
Poi Postgres non è access o sqlite che apri e chiudi la connessione ogni volta, la apri e la lasci aperta, la chiudi solo quando smetti di lavorare.
Comunque ti volevo suggerire procedure più gambassiane tipo:
Public Sub Modifica()
Dim hResult As Result
Dim sCriteria As String
Dim iParameter As Integer
sCriteria = "id = &1"
iParameter = nid
'' qui il database è già aperto con una procedura del tipo OpenDB()
$Con.Begin
' lo stesso di "SELECT * FROM nome-tabella WHERE id = x"
hResult = $hConn.Edit("clienti", sCriteria, iParameter)
' Imposta i valori dei campi
hResult!cognome = TextBox5.Text
hResult!nome = TextBox6.Text
hResult!via = TextBox7.Text
hResult!citta = TextBox8.Text
' Aggiorna i valori
hResult.Update
$hConn.Commit
LeggiDatabase
Catch
$Con.Rollback
Message.Error(Error.Text)
End
:ciao: