Newsgroup: it.comp.lang.delphi
Titolo: [D5PRO + PARADOX] Problema con apici

Gentili partecipanti,
mi ritrovo con questo problema:
durante l'impostazione di un filtro su oggetto TTable i cognomi che hanno
l'apice fanno fallire l'azione.
La soluzione dovrebbe essere semplice, raddoppiare l'apice, ma esiste un
funzione che fa al caso ??
Grazie a tutti
Michele

funzione che fa al caso ??
Hai valutato la possibilita' di usare delle TQuery al posto
delle TTable e usare i parametri ?
-- 
The Follet

Io ho scritto questa:
function Apici(Text : String) : String;
//raddoppia gli apici nella stringa
var
  i : integer;
//  AuxString : AnsiString;
  AuxString : String;
begin
  AuxString := '';
  for i := 1 to length(Text) do
    if Text[i] = '''' then AuxString := AuxString + ''''''
      else AuxString := AuxString + Text[i];
  result := Auxstring;
end;
--
Max Etere
maxe...@infinito.it
www.sendai.it/encom
ICQ#: 129227562

, 
mich...@libero.it
 
says...

QuotedStr
AnsiQuotedStr
-- 
Roberto Lupi

 ha scritto nel messaggio
news:3c00a594...@news.tin.it...

Spero di non sbagliare, ma credo che pur utilizzando un oggetto TQuery il
problema permanga, ad ogni modo provero' e postero sul ng i risultati.
Grazie

 ha scritto nel messaggio
news:x%xL7.11941$BA4.3...@news1.tin.it...

Grazie mille, č un'ottimo esempio che puo essere adattato anche per altre
situazioni !!
A presto
Michele

 ha scritto nel messaggio
news:MPG.1669a741f...@News.CIS.DFN.DE...

Non ne conoscevo nemmeno l'esistenza, provo e ti faccio sapere.
Grazie
A presto
Michele

 ha scritto nel messaggio
news:9tlotj$3b1tn$1...@ID-110545.news.dfncis.de...

Ho provato a raddoppiare gli apici, ma il problema non si e risolto.
Avete altri suggerimenti ??

problema permanga, ad ogni modo provero' e postero sul ng i risultati.
No, stanne certo, il problema non permane.
Utilizzando una query parametrica, distingui esattamente
cio' che e' il testo della query dai dati utilizzati nella
query (i parametri).
Se scrivi, cioe' :
with TQuery.Create(nil) do
begin
  try
    SQL.Add('select * from contatti.db');
    SQL.Add('where COGNOME = :PCOGNOME');
    ParamByName('PCOGNOME').AsString := 'D''ANGIO''';
    Open;
    // qui ci arrivi senza alcun problema...
  finally
    Free;    
  end
end;
-- 
The Follet

 ha scritto nel messaggio
news:3c03985...@news.tin.it...

Ho notato che il cognome lo passi al parametro utilizzando un serie di apici
che non avevo mai visto prima, 'D''ANGIO'''.
E cioe un'apice apre due per il cognome e tre alla fine, e corretto ??
Ciao e grazie mille !!
Michele

 E cioe un'apice apre due per il cognome e tre alla fine, e corretto ??
Certo.
E' la convenzione Pascal quella di raddoppiare 
l'apice nelle stringhe se si vuol esplicitamente
rappresentare un apice.
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:9a3c9093ce80c215260...@mygate.mailgate.org...

Allora mi sfugge un particolare, se per convenzione si raddoppia
bisognerebbe scrivere cosi:
'D''ANGIO' (secondo me)
'D''ANGIO''' (secondo te)
e la stessa cosa o sto commettendo un'errore ??
Grazie e scusa se abuso della tua pazienza.
Michele

 'D''ANGIO''' (secondo te)
Come cognome io intendo D'ANGIO'
quindi, raddoppiando gli apici diventa:
D''ANGIO''
e racchiudendolo tra apici diventa:
'D''ANGIO'''


 ha scritto nel messaggio
news:c1475cc6d59a9d11df0...@mygate.mailgate.org...

Capito !!
Grazie Mille !