ADO Database Delphi

function tara(metin:string):string;
var
i : integer;
begin
result:='';
for i :=1 to length(metin) do
begin
if metin[i] = '''' then // metinin i. index numaralı harfi '' (tek tırnak anlamına geliyor) varsa
Result := Result +'''''' // onu '''' (Çift tınak anlamına geliyor) yap.
else // Aksi taktirde
result:=result + metin[i]; // metnin i. indexli oylece al
end;
end;
Delphi'de SQL kayıt yaparken eklenecek kaydın içinde ' (sadece tek tırnak) geciyorsa bu
programda hataya neden olacaktır.
Çünkü:
Query1.SQL.Add('insert into sinavveritaban(soruno, sorudata ) Values (%d, ''%s'')');

SQL :=Format(CStr_InsertTemplate,
[
Strtoint(edtSoruSirasi.Text),
tara(mmSoru.Text)
]);
Query1.SQL.Text :=SQL;
Query1.ExecSQL;

//soruno = 5
//sorudata = İstanbul'un Fethi ?
Query komut satırında %s bulunan bolume deger verirken ' bulundugu için komut satırı şu hali alacaktır.
insert into sinavveritaban(soruno, sorudata ) Values (5, ''İstanbul'un Fethi ?'')
(un Fethi ?) kısmını tanımlayamaz. ve hataya neden olur......