Autore Topic: mysql comment [Risolto]  (Letto 1198 volte)

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
mysql comment [Risolto]
« il: 13 Febbraio 2014, 16:38:22 »
salve  in mysql ho una table  pippo
con i segnenti campi id int, nome varchar (20), cognome  varchar (30) comment ' giorgio'
in run time, fatta la comnnessione

public sub ambiaCommento()
dim a, b, c,e as string
din query as string

a="pippo"                'table
b="cognome"           ' nome colonna
c=comment              
d="franco"               voglio sostituire giorgio con franco
 DD. DBConnect(db_name)
'facendo  ciò con alter table ho:
query "Alter table  " & a & "  CHANGE   COLUMN " & b & & b & "varchar(30)" & c & d
'o meglio
query "Alter table  " & a & "  CHANGE   COLUMN " & b & & b &   & c & d
  DD.MyRS = DD.MyConn.Exec(query)

' non ho usato le virgolette per rendere lo scritto più leggibile  ma non funziona  mai
end

su internet vi sono diversi esempi ( per es.http://dorkage.net/blog/2009/01/12/column-comments-in-mysql/) ma nell'usare le variabili e virgolette non funzionano;
qualcuno sa dirmi dove sbaglio?
grazie
giorgio

« Ultima modifica: 16 Febbraio 2014, 12:14:39 da giob1642 »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: mysql comment
« Risposta #1 il: 13 Febbraio 2014, 23:17:47 »
io non ho capito se vuoi cambiare il nome di una colonna o i dati contenuti in un record

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
Re: mysql comment
« Risposta #2 il: 13 Febbraio 2014, 23:53:27 »
ne l'uno ne l'altro,  la struttura della tabella (costruita con phpmyadmin) la colonna cognome è così definita:
nome: cognome
tipo: varchar
len: 30
codifica caratteri:
attributi:
null:
........................
........................
comment: giorgio

in runtime con alter table voglio cambiare il valore di comment da giorgio  a franco e tutto ciò usando delle variabili.

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
Re: mysql comment
« Risposta #3 il: 16 Febbraio 2014, 02:03:19 »

public sub ambiaCommento()
dim a, b, c,e as string
din query as string

a="pippo"                'table
b="cognome"           ' nome colonna
c=comment             
d="franco"               voglio sostituire giorgio con franco
 DD. DBConnect(db_name)
'facendo  ciò con alter table ho:
query = " ALTER TABLE `pippo` CHANGE  `cognome`  `cognome` VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT  'franco'"
'detta query funziona.

'usando le variabili invece ho:
query = " ALTER TABLE" & a & "CHANGE" & b & b & " VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT"  & d

Ma la query non funziona.
  DD.MyRS = DD.MyConn.Exec(query)
end

qualcuno sa dirmi dove sbaglio?
grazie
giorgio

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: mysql comment
« Risposta #4 il: 16 Febbraio 2014, 07:50:55 »
Dai un print query prima di eseguirla, nel terminale vedrai che la query no  ha un sacco di spazi tra una parola e l'altra

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
Re: mysql comment
« Risposta #5 il: 16 Febbraio 2014, 10:06:58 »
nella query giusta:
query = " ALTER TABLE `pippo` CHANGE  `cognome`  `cognome` VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT  'franco'"

sostuendo solo 'pippo' con  '"& a &"'
                          ""      con   & a &   od altro
la query da errore anche stando attento agli spazi tra i vari pezzi di stringa

giorgio

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: mysql comment
« Risposta #6 il: 16 Febbraio 2014, 10:15:52 »
Solitamente il testo dell'' errore è esaustivo del problema,

allega il messaggio di errore oltre il risultato del
Codice: [Seleziona]
print query

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
Re: mysql comment [Risolto]
« Risposta #7 il: 16 Febbraio 2014, 12:11:36 »
nella query giusta:
query = " ALTER TABLE `pippo` CHANGE  `cognome`  `cognome` VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT  'franco'"

a="pippo
b="cognome"
d="franco"
sostuendo `pippo`         con          `"& a &"`
                `cognome`    con         `"& b &"`
                 'franco'        con         '"& b &"'
ossia :

query = " ALTER TABLE  `"& a &"` CHANGE  `"& b &"`  `"& b &"` VARCHAR( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL COMMENT  '"& b &"'"
allora funziona.

E' tutta una quesione di apici ..........notare la differenza tra ` ed '; tra l'alto  sulla tasiera italiana ` si scrive
Alt Gr  & ù
La stessa simbologia deriva dal php ed è valida per create table, upgrade,insert

grazie lo stesso.

giorgio
« Ultima modifica: 16 Febbraio 2014, 12:13:28 da giob1642 »