Insert Into RichEdit

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Insert Into RichEdit

Mesaj gönderen tuna »

Arkdaşlar richedit de yazdığım yazıları INSERT INTO yöntemiyle ms sql server daki tabloma atmak istyiyorum.
Fakat rich editde alt satırlara geçince değişik karakterler gönderiyor doğal olarak veya yazının içinde tırnak işaretleri filan oluyor.
Bunlar oluncada doğal olarak sql kodum hata veriyor.
Yardımlarınızı bekliyorum. Kod şöyle

Kod: Tümünü seç

var
i:integer;
kullanicilar,kullanici,kimden:string;
konu,mesaj,mesajturu:string;
begin
kullanicilar:='';
konu:=edit1.Text;
mesaj:=RichEdit1.Text;
kimden:=frmana.Sql_LogoSatisElemanCODE.AsString;
mesajturu:='İç Mesaj';

for I := 0 to cxCheckComboBox1.Properties.Items.Count - 1 do
      begin
        if cxCheckComboBox1.States[i]= cbsChecked then kullanicilar:=kullanicilar+cxCheckComboBox1.Properties.Items[i].Description;
      end;

for I := 0 to cxCheckComboBox1.Properties.Items.Count - 1 do
      begin
        if cxCheckComboBox1.States[i]= cbsChecked then
          begin
            kullanici:=cxCheckComboBox1.Properties.Items[i].Description;
            sql_temp.SQL.Clear;
            sql_temp.SQL.Add('INSERT INTO MESAJ_MERKEZI (KIMDEN,KIME,KONU,MESAJ,MESAJ_TURU,MESAJ_KUTUSU,ALINAN_MESAJ) VALUES');
            sql_temp.SQL.Add('('''+kimden+''','''+kullanicilar+''','''+konu+''','''+mesaj+''','''+mesajturu+''','''+kullanici+''',1)'''); //hata gelen satır....
            sql_temp.ExecSQL;
          end;
      end;
En son tuna tarafından 25 Kas 2009 09:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Insert Into RichEdit

Mesaj gönderen sabanakman »

mesaj:=RichEdit1.Text; satırında mesaj:=QuotedStr(RichEdit1.Text); sorunu düzeltecektir. Satır sonları için ayrı bir çabaya girmeye gerek yok. SQL Server string değeri tek satırda belirtmek gibi bir mecburiyet yoktur.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Insert Into RichEdit

Mesaj gönderen tuna »

quetedstr ile Sorun çözüldü çok teşekür ederim.

Bilgi için: sql satırındaki '''+mesaj+''' yazısındaki tırnakları '+mesaj+' şeklinde değiştirmek gerekiyor.
Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 12:05

Re: Insert Into RichEdit

Mesaj gönderen Ertugrul »

Bu sekilde mesajda ya da herhangi bir alanda tirnak olursa SQL calismaz.

Kod: Tümünü seç

            
            sql_temp.SQL.Text:='INSERT INTO MESAJ_MERKEZI (KIMDEN,KIME,KONU,MESAJ,MESAJ_TURU,MESAJ_KUTUSU,ALINAN_MESAJ) VALUES(:KIMDEN,:KIME,:KONU,....)';
            sql_temp.Parameters.ParamByName('KIMDEN').Value:=kimden;
            sql_temp.Parameters.ParamByName('KIME').Value:=kime;
.....
            sql_temp.ExecSQL;
Bu sekilde daha saglikli ;)
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Insert Into RichEdit

Mesaj gönderen conari »

eğer biçimleri kaydetme gereği yoksa Richedit hiç kullanmamak en sağlıklısı :D
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Insert Into RichEdit

Mesaj gönderen tuna »

Ertugrul yazdı:Bu sekilde mesajda ya da herhangi bir alanda tirnak olursa SQL calismaz.

Kod: Tümünü seç

            
            sql_temp.SQL.Text:='INSERT INTO MESAJ_MERKEZI (KIMDEN,KIME,KONU,MESAJ,MESAJ_TURU,MESAJ_KUTUSU,ALINAN_MESAJ) VALUES(:KIMDEN,:KIME,:KONU,....)';
            sql_temp.Parameters.ParamByName('KIMDEN').Value:=kimden;
            sql_temp.Parameters.ParamByName('KIME').Value:=kime;
.....
            sql_temp.ExecSQL;
Bu sekilde daha saglikli ;)
Evet haklısınız bu şekilde yazmak daha mantıklı. Ama kodun pratik yazılması ve sql den kalan aşinaklık la ben hep belirttiğim şekilde yazıyorum. Sizin yazdığınız şekilde alışmak daha mantıklı aslında.

conari yazdı:eğer biçimleri kaydetme gereği yoksa Richedit hiç kullanmamak en sağlıklısı :D
Biçimleri kaydetmem gerekiyordu. Onun için richedit kullandım. Yoksa memo ile işi 2 dk halledilebilir. Teşekürler.
Cevapla