Newsgroup: it.comp.lang.visual-basic
Titolo: Query SQL

Ho la seguente query:
DataCanzoni.RecordSource = "SELECT * FROM canzoni WHERE autore_cd = '" &
autore_cd & "'"
Nel caso in cui autore_cd = "Sinead O'Connors"
mi dà l'errore per via dell'apostrofo presente nella stringa. Premetto che
autore_cd è una chiave di ricerca.
Come posso fare.
Grazie
Giuliano Luca
www.lucaworld.it

Ciao, io uso due metodi.
Se programmo in VB6 uso la troppo comoda istruzione Replace:
Replace(espressione, cerca, sostituiscicon[, inizio[, conteggio[,
confronto]]])
DataCanzoni.RecordSource = "SELECT * FROM canzoni WHERE autore_cd = '" &
Replace(autore_cd, "'", "''") & "'"
In questo modo rimpiazza ogni ' con due ''
Oppure  se programmi in VB5 puoi farti una funzione che scandisce la
variabile e sostituisce "a mano" tutti gli apici con 2.
Bye
--
Tango
www.af.mil
ICQ: 35463931

Come posso fare.
Avevo una funzioncina molto fatta di fretta che sistemava le stringhe
fatte cosi'...
Se la ritrovo te la posso anche mandare...
Replami in privato se serve... :)
DElyMyth

Mi stavo studiando ADO e ho creato un programma di studio gestiva 3 TABELLE
di un Database Access descritte sotto.
Films
       Id_Film
       Titolo_Film
       Id_Attrice
       Id_Attore
       Id_Regista
       Anno
Attori
       Id_Attore
       Cognome
       Nome
       Nazionalita
       Eta
Attrici
       Id_Attrice
       Cognome
       Nome
       Nazionalita
       Eta
Registi
       Id_Regista
       Cognome
       Nome
       Nazionalita
       Eta
A questo punto volevo visualizzare una cosa del genere in una tabella:
Id_Film, Cognome Attrice, Nome Attrice, Cognome Attore, Nome Attore, Cognome
Regista, Nome Regista, Anno
in pratica volevo legare Films.Id_Attrice a Attrici.Id_Attrice,
Films.Id_Attore a Attore.Id_Attori e Films.Id_Regista a Registo.Id_Regista.
Finchč ne lego solo una delle tre riesco a fare la join e visualizzare...ma
volevo sapere se č possibile farla di tutte e tre insieme.
Questa singola mi funziona:
SELECT Films.Id_Film, Films.Titolo_Film, Attori.Cognome, Attori.Nome,
Films.Anno FROM Films INNER JOIN Attori ON Films.Id_Attore=Attori.Id_Attore;
Sono arrivato a scrivere questa 'porcata' per tentare di raggiungere il mio
scopo.
SELECT Films.Id_Film, Films.Titolo_Film, Attrici.Cognome, Attrici.Nome,
Attori.Cognome, Attori.Nome, Registi.Cognome, Registi.Nome, Films.Anno FROM
Films INNER JOIN Attori, Attrici, Registi ON
Films.Id_Attrice=Attrici.Id_Attrice, Films.Id_Attore=Attori.Id_Attore,
Films.Id_Regista=Registi.Id_Regista;
Sň che magari ci potrebbero essere soluzioni per aggirare il problema...ma
io volevo sapere se č possibile farlo con una sola istruzione SQL.
Gianni Moretti

Se programmo in VB6 uso la troppo comoda istruzione Replace:
]zac[
Oppure in Vb usi
Public Function Replace(ByVal Testo As String, InSost As String, PerSost As
String) As _
String
'funzione di sostituzione dei caratteri (esiste solo dal Vb6)
 Dim LunTesto As Integer, LunInSost As Integer, LunPerSost As Integer,
InizSost As Integer
'lunghezza del testo da sostituire
 LunInSost = Len(InSost)
 If LunInSost > 0 Then
'lunghezza del testo per la sostituzione
  LunPerSost = Len(PerSost)
'inizio ricerca testo da sostituire
  InizSost = 1
  Do
'imposta l'inizio del testo da sostituire
   InizSost = InStr(InizSost, Testo, InSost, vbTextCompare)
' se c'è un testo da sostituire
   If InizSost > 0 Then
'lunghezza del testo il elaborazione
    LunTesto = Len(Testo)
'imposta il nuovo testo sommando la parte iniziale da non sostituire, con il
testo per la _
sostituzione, con il testo finale da non sostiturire
    Testo = Left(Testo, InizSost - 1) & PerSost & Right(Testo, LunTesto -
(InizSost - 1) _
    - LunInSost)
'imposta l'inizio della ricerca del testo da sostituire al carattere
succesivo al testo _
sostituito
    InizSost = InizSost + LunPerSost
   End If
  Loop While InizSost > 0
 End If
 Replace = Testo
End Function
Salve
                Dbg







 ha scritto nel messaggio
news:3lej6.18832$7U4.3...@news.infostrada.it...


Microsoft Outlook: cosa vuoi postare postare postare postare postare
oggi?
Saluti che mi chiedo perche' cavolo usino tutti sto bidone di
programma...
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD