Tırnak sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Tırnak sorunu

Mesaj gönderen bilbeyi »

Programda kayıtları sql sorgusu ile yapıyorum. ( insert into ...)
Varchar bir alana insert ederken o alana gidecek string içinde tırnak '
kullanınca normal olarak hata alıyorum.
Bu sorunu nasıl çözebilirim ?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

String bir ifade yazarken delphide her bir tırnak için bir tırnak daha kullanlısınız, yani bir tırnak için;
yazılmalı bu stringin değeri tek tırnak olarak algılanır. Yani sizde yazarken

Kod: Tümünü seç

'INSERT INTO ..... '''+Edit1.Text+''' '
gibi yapmanız lazım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- @naile'nin söyledikleri geçerlidir... Başka bir metod olarak Parametre kullanılabilir...

- Forumda Parameters veya ParamByName şeklinde aratınca bulacağınız örneklerini inceleyin...
Resim
Resim ....Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

aslında kural bilinirse bence daha kolay anlaşılabilir. Tek tırnak stringler için kullanılır, eğer stringe tırnak eklemek istiyorsanız her bir tırnak için 2 tane tek tırnak ( '' ) kullanmanız lazım.

Mesela : 'Mustafa''nin Kalemi'
tek tırnak eklemek için : '''' -> ilki ve sonuncusu stringi ifade ediyor. Ortadaki iki tek tırnakta bir tek tırnak ekliyor.

Kolay gelsin.
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

ekleme

Mesaj gönderen bilbeyi »

insert ederken tırnak sayısı çifte tamamlasam daha yine hata alıyorum. Şuan yaptığım iş eğer tek tırnak ' girildiyse onu çift " olarak yazdırıyorum. Ama programda tahmini 350 civarında string girişi var. Hepsinde bu tarz kotrol yapmak biraz zahmetli oluyor. Daha pratik çözüm varmı acaba ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bir de parametre denesen diyordum...

Kod: Tümünü seç

  With ADOSorgu do
  begin
    Active := False;
    SQL.Clear;
    SQL.Add('INSERT INTO tablo');
    SQL.Add('       (Alan1, Alan2, Alan3)');
    SQL.Add('Values (:d01,  :d02,  :d03 )');
    Parameters.ParamByName('d01').Value := Edit1.Text;
    Parameters.ParamByName('d02').Value := Edit2.Text;
    Parameters.ParamByName('d03').Value := Edit3.Text;
    ExecSQL;
  end; // With
Resim
Resim ....Resim
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

mrmcop ilgin için teşekkürederim. Şuan da parametreyi kullanmam zor. Çünkü program şuan yazılmış durumda . Tüm yapıyı değişmem bi hayli vakit alır. Farklı bişiler yapmam lazım. Bu noktada şu soru kafama takıldı. Bu şekilde insertleri parametre ile yapmak hız açısından nekadar farkeder ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Ben hızdan değil uyumluluktan bahsediyoruz sanıyordum. :lol:
- Kolay gelsin... Kaybettiğin vakte değer umarım... :wink:
Resim
Resim ....Resim
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

bu sorun sadece bir formda değil tüm formlarda var. O yüzden hızıda düşünmem gerekir. Siz insertlerinizi ne şekilde yapıyorsunuz ?
cevaplar için teşekkürler
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

sonuc

Mesaj gönderen bilbeyi »

Parametre kullanarak tırnak sorununu hallettim
cevaplar için teşekkürler
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Başka bir yöntem olarak stringleri "QuotedStr()" metodu içine alabilirsin.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Tekrar eden Query'lerde (Program içinde döngü ile bir inser yaparsanız) Parametre kullanmak, server'ın yorumlama zamanını kısaltacağı için daha hızlı olur. Eğer her seferinde yeni bir SQL cümlesi oluşturursanız Query'niz illaki prepare time denen zamanı her Query için harcayacaktır bu da hız kaybetmenize neden olur.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Misafir

Mesaj gönderen Misafir »

merhaba.
bilbeyi yazdı:Şuan da parametreyi kullanmam zor. Çünkü program şuan yazılmış durumda . Tüm yapıyı değişmem bi hayli vakit alır.
tüm yapıyı neden değiştirmek gerektiğini anlamadım.programlarınızı sistematik bi şekilde kodluyorsanız, böyle bir değişiklik gerektiğinde ilgili fonksiyon, procedure, const vs.de yapılacak küçük bir değişiklik tüm projeyi o yönde düzenleyecektir..

kolay gelsin.
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

fatihtolgaata yazdığın yöntemi denedim ama sorun devam ediyor. Eğer bir örnek varsa yollarmısın
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

bilbeyi yazdı:fatihtolgaata yazdığın yöntemi denedim ama sorun devam ediyor. Eğer bir örnek varsa yollarmısın
Lütfen arayalım araştırmacı olalım anahtar kelime QuotedStr :ara: Sonuç 38 adet ilgili mesaj.


Kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla