Autore Topic: [RISOLTO] Database e stringhe speciali  (Letto 7419 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #15 il: 06 Aprile 2014, 17:49:53 »

Porque te vas hablando español ?

A scusa vuott,
è che dopo aver mangiato la ribollita, durante la digestione, è l'unico mio momento  poliglotta, pensa che non me ne ero neanche accorto.  ;D

Comunque ho provato a passare la stringa a QUOTE$() ma mi da errore su INSERT INTO (scusate ma io passo tutto a SQL!) invece se inserisco i dati con Create() come dice fsurfing quello si macina tutto almeno con SQLite.
Comunque, siccome mi sembrate un po pigri,  :sleepy: se volete evitarvi il disturbo di crearvi una piccola prova qui allego il semplicissimo programmino che uso io forse lo si può adattare a MySQL.

 :ciao:
« Ultima modifica: 08 Aprile 2014, 20:17:46 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #16 il: 07 Aprile 2014, 11:33:41 »
Ah, scusa.  :-X

"...ti conosco mascherina..."  :nono:

Vuott hai approfittato della mia difficile digestione per passare un messaggio subliminale.
Si si ma quale?
Io non riesco a capire come usare Quote e UnQuote in questa situazione.  :hatecomputer:

Magari se ti va di approfondire...

 :ciao:


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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #17 il: 07 Aprile 2014, 15:39:04 »
.... passare un messaggio subliminale.
Si si ma quale?
Io non riesco a capire come usare Quote e UnQuote


Mah... avevo visto velocemente in un paio di tuoi messaggi queste righe:
" \"" & variabile & "\""  ed anche questa: Tu hai mai usato " \"" ?

Pensavo quindi che fossi interessato a ciò che viene svolto dalla funzione Quote() .   :-\
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #18 il: 08 Aprile 2014, 15:18:00 »
Mah... avevo visto velocemente in un paio di tuoi messaggi queste righe:
" \"" & variabile & "\"" ...   :-\

 :'(
velocemente

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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #19 il: 08 Aprile 2014, 15:34:14 »
:'(
velocemente
Avevo glissato, perché di database non ne so niente.  ;D
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #20 il: 08 Aprile 2014, 15:40:29 »
Allora vorrei chiudere la discussione, anche perché vedo che B,F,G e anche V che va veloce hanno perso interesse  a rispondere a quello scritto sopra ma anche al  sottoscritto e io dico: “si è mai vista tanta crudeltà verso gli anziani”  :'( ha proprio ragione McCarty non è un modo per vecchi!

Comunque, sono vecchio, rimbambi.. ma sopratutto rompiba... e non demordo specialmente quando non riesco a capire bene fino in fondo, quindi (ri)chiedo: siccome SQL vuole che le stringhe a lui passate siano racchiuse fra apici (') e da qui la necessità di intercettare tutti gli apici che sono in una stringa a lui (SQL) passata con l'aggravante che anche Gambas3 interpreta detto apice a modo suo e che naturalmente è diverso da SQLite3, per Gambas sono frasi da escludere dal contesto del codice. Tutto ciò detto e messo a verbale dico che le prove da me fatte con il solo SQLite3 riscontrano che racchiudendo come detto la variabile contenente tale apice viene ampiamente e bellamente digerita da SQL come dimostrano le seguenti righe e come potrete riscontrare personalmente se avrete la compiacenza di scaricare il file allegato e provarlo magari estendendo la prova a postgreSQL, MySQL, MariaDB(di cui non si sente più parlare!?).

Esso contiene inoltre un piccolo ciclo commentato rivolto ai gamberetti alle prime armi come Tonno verde.

  
Codice: gambas [Seleziona]
'sNazione = "Austria"
  sNazione = "Pol'onia"
  'sNazione = "Francia'"
  'sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz = '" & sNazione & "'"
  'sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz =" & " '" & sNazione & "'"
  sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz =" & " \"" & sNazione & "\""


Austria funziona con tutti e tre i SELECT, Francia e Polonia solo con il terzo!

B F G V se ci siete battete un colpo non abbandonate un vecchietto indifeso!

 :ciao:
« Ultima modifica: 08 Aprile 2014, 20:18:59 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #21 il: 08 Aprile 2014, 15:42:01 »

Avevo glissato, perché di database non ne so niente.  ;D

Ma io ti chiedo aiuto lo stesso  :-*
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #22 il: 08 Aprile 2014, 15:56:36 »
MariaDB(di cui non si sente più parlare!?).

Mo' pure MariaSantissima !?   :D
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #23 il: 08 Aprile 2014, 15:57:39 »
A scusa vuott,
l'eventuale risposta la gradirei in una lingua possibilmente viva, astenersi da aramaico &C

ܦܬܓܡܐ

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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #24 il: 08 Aprile 2014, 16:04:57 »
... SQL vuole che le stringhe a lui passate siano racchiuse fra apici (')

Riconfermando che posso aiutarti poco in questo campo, ...tu prima parli di apici, ma poi imposti le virgolette nel codice
Codice: gambas [Seleziona]
" \"" & sNazione & "\""

Perché ?  ???
« Ultima modifica: 08 Aprile 2014, 16:06:53 da vuott »
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #25 il: 08 Aprile 2014, 16:16:30 »

Riconfermando che posso aiutarti poco in questo campo, ...tu prima parli di apici, ma poi imposti le virgolette nel codice
Codice: gambas [Seleziona]
" \"" & sNazione & "\""

Perché ?  ???

Gli apici sono all'interno della variabile  :-\ intendo dire che, almeno credo, quando occorre memorizzare una parola che contiene un apostrofo tipo “L'Aquila” occorre cambiare in qualche modo l'apostrofo altrimenti SQL va in errore le virgolette servono per far digerire a Gambas le slash rovesciate che per lui e non solo per lui sono caratteri speciali... almeno così credo.
« Ultima modifica: 08 Aprile 2014, 16:21:13 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #26 il: 08 Aprile 2014, 16:26:29 »
Io però non ho capito, scusami, se devi passare (anche) le slash rovesciate.  :-X

.. mi fai un esempio senza variabile di come dovrebbe essere la stringa in forma normale, esplicita ?
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #27 il: 08 Aprile 2014, 16:53:42 »
Io però non ho capito, scusami, se devi passare (anche) le slash rovesciate.  :-X

.. mi fai un esempio senza variabile di come dovrebbe essere la stringa in forma normale, esplicita ?

Codice: gambas [Seleziona]
sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz =" & " \"" & "L'Aquila" & "\""
    :-X

 :ciao:
« Ultima modifica: 08 Aprile 2014, 17:11:09 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #28 il: 08 Aprile 2014, 17:15:29 »
Come gia' scritto da Golia (http://www.gambas-it.org/smf/index.php?topic=3340.msg32481#msg32481)

Dim sCitta As String

  sCitta = "L'Aquila"
  sCitta = Replace(sCitta, "'", "''")
  sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz =" & sCitta & ";" 


E' il metodo che adotto sempre anch'io...

@vuott

lo 'slash rovesciato' seguito da " serve per immettere in una stringa il carattere " senza che l'ide di gambas lo riconosca come codice di chiusura della stringa stessa... mi son spiegato? :)


Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re: Database e stringhe speciali
« Risposta #29 il: 08 Aprile 2014, 18:31:56 »
Come gia' scritto da Golia (http://www.gambas-it.org/smf/index.php?topic=3340.msg32481#msg32481)

Dim sCitta As String

  sCitta = "L'Aquila"
  sCitta = Replace(sCitta, "'", "''")
  sMioSql = "SELECT ID_Eti, Tab_Nom, Tab_Naz FROM miaTabella WHERE Tab_Naz =" & sCitta & ";" 


E' il metodo che adotto sempre anch'io...


Ciao Milio,
ti leggo sempre molto volentieri nel forum e so che sei uno dei "cervelloni" e infatti mi hai subito fatto notare di essermi dimenticato il ";" di fine query, grazie  :2birre:
Ho potuto così constatare che SQLite è “infido” infatti accetta di non avere il “fine query” anche in INSERT e in CREATE (dove peraltro io mi ero ricordato di metterlo) e a questo punto penso non occorra nanche negli altri comandi SQL.
Però a parte questo come ti (mi!?) spieghi che passando la stringa con i caratteri suddetti SQL in SQLite3 accetta l'apostrofo? E senza bisogno di REPLACE? Che tu sappia succede anche negli altri database o è solo una caratteristica di SQLite?

Ciao e ancora grazie
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro