hazır sql script oluşturmak

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ı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

hazır sql script oluşturmak

Mesaj gönderen kara_kule06 »

slm arkadaşlar ben delphide bir sınav değerlendirme programı yazıyorum . Hemen sorunuma geçeyim.
hazırladığım sql kod şu olacak.

var
sqltext: widestring;
sqltext:='''+inttostr(ders_d[1])+''','''+inttostr(ders_y[1])+'''....(ders sayısı kadar yazdım)
dm.sonuc.sql.add('INSERT INTO SONUC(ID,DERS1DS,DERS1YS) VALUES('+sqltext+')') yazıyorum ama sqltext içindeki olması gereken değerler çağrılmıyor. sadece sqltext içindeki stringi yazıyor. cevaplarınız için şimdiden teşekkürler. kolay gelsin.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Tırnaklara dikkat

Mesaj gönderen sabanakman »

tırnak işaretlerinde bir eksiklik olabilir.
sqltext:='''+inttostr(ders_d[1])+''','''+inttostr(ders_y[1])+'''..
----
sqltext:=''''+inttostr(ders_d[1])+'''',''''+inttostr(ders_y[1])+''''..

tırnaklar sorun olabilir bu yüzden tırnak içinde string değerleri düzenleyen QuotedStr fonksiyonunu kullanılabilir.

sqltext:=QuotedStr(inttostr(ders_d[1]))+','+QuotedStr(inttostr(ders_y[1]))+..
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

Selam,

Bence üşenmeyin ve kodunuzu parametre mantığınla yazın, örneğin:

AdoQuery.Close;
AdoQuery.SQL.Add('INSERT INTO TABLE (ADI, SOYADI)');
AdoQuery.SQL.Add('VALUES (:ADI, :SOYADI)');
AdoQuery.parameters.parambyname('ADI').value := adi.text;
AdoQuery.parameters.parambyname('SOYADI').value := soyadi.text;
AdoQuery.ExecSQL;

Tabi bu Ado componenti icin gecerli olan bir olay eger normal query kullaniyorsaniz yalnis hatirlamiyorsam

Query1.Params.ByName('ADI')... gibi bişey olması lazm ama büyük ihtimalle yalnış yazdim:) neyse sonuc olarak parametre kullanırsanız tırnak, tarih yazim bicimi vs sorun olmaz.. Derim ben tabi sizin bileceginiz iş :)

Kolay gelsin
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Sql cümlesini kod ile olusturdugunuz takdirde parametreleride sizin create etmeniz gerekli
Tasarım sırasında yazdıgınız sql de : ile gösterilen parametreler o sırada olusturulmakta ama runtime sql olusturursanız (yukarıda Glen arkadasın verdigi gibi)
AdoQuery.parameters.parambyname('ADI').value := adi.text;
gibi bir kullanım sanırım hata verecektir,
AdoQuery.CreateParameter gibi bir metodla manual olarak bu parametrelerin olusturulması gerekecektir.
(ibx bilesenlerinde dedigim gibi ama ADO bilesenleri ile ilgili bir ornek yapmadım. Lakin tüm db bilesenleri yaklasık aynı mantıkta calısıyor, bu yuzden kesin olarak ADO bilesenleri hakkında fikir yürütemiyorum.)
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla