Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
datasnap insert into
#1
Günaydın Arkadaşlar,

Datasnap bağlantısı ile veri tabanı bağlantısını ve sorgulamasını yapıyorum. Tabloya  bir kayıt eklemek istiyorum ama yapamadım. şu şekilde denedim, nerede hata yapıyorum acaba?


ClientDataSet1.Close;
ClientDataSet1.CommandText := 'INSERT INTO kullanicilar (adi) VALUES  (''Deneme1'')';
ClientDataSet1.Execute;//Open da denedim

Clientdataset1 kullanicilar tablosuna bağlı. Sorgulama yaptığımda tablodaki kayıtları geliyor ama kayıt eklemeyi yapamadım.
Cevapla
#2
Eklemek için bir yöntem oluşturmak daha iyidir.


unit ServerMethodsUnit1;

interface

uses 
.
.
.

type
 TServerMethods1 = class(TDSServerModule)
  .
  .
  .
 public
   { Public declarations }
   function AddUser(UserName: string) : boolean;
 end;

function TServerMethods1.AddUser(UserName: string) : boolean;
begin
Result:=False;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add('INSERT INTO kullanicilar (adi) VALUES  ('+QuotedStr(UserName)+')');
try 
 qry.ExecSQL;
 Result:=True;
except
end; 
end;
WWW
Cevapla
#3
(30-09-2021, Saat: 11:13)gbg Adlı Kullanıcıdan Alıntı: Eklemek için bir yöntem oluşturmak daha iyidir.


unit ServerMethodsUnit1;

interface

uses 
.
.
.

type
 TServerMethods1 = class(TDSServerModule)
  .
  .
  .
 public
   { Public declarations }
   function AddUser(UserName: string) : boolean;
 end;

function TServerMethods1.AddUser(UserName: string) : boolean;
begin
Result:=False;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add('INSERT INTO kullanicilar (adi) VALUES  ('+QuotedStr(UserName)+')');
try 
 qry.ExecSQL;
 Result:=True;
except
end; 
end;

Query nin çalıştırıldıkdan sonra veritabanının geri döndürdüğü cevaba bakmadan, işlem başarılıymış gibi true döndürmek yanlış bir mantıkdır.
Cevapla
#4
yukardaki koda göre başarısızsa exception oluşur yine false atar.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Cevapla
#5
(30-09-2021, Saat: 15:25)ahmet_sinav Adlı Kullanıcıdan Alıntı: yukardaki koda göre başarısızsa exception oluşur yine false atar.

db insert,delete,update,fetch yapamadığında, exception oluşuyormu diyorsunuz yani?

db tarafı insert yaptığı halde uygulama tarafındaki driver bir sorundan ötürü exception a düşerse ne yapıyorsunuz bu durumda,
exception class ına hata kaynağınada bakmıyorsunuz?

lütfen bu konuda benim bilgi eksikliğimi giderinki, yanlışımdan döneyim, sizin tavsiyeniz yönünde kullanayım, hatalı kod yazıyorum demekki..
Cevapla
#6
(30-09-2021, Saat: 14:47)vedat35 Adlı Kullanıcıdan Alıntı:
(30-09-2021, Saat: 11:13)gbg Adlı Kullanıcıdan Alıntı: Eklemek için bir yöntem oluşturmak daha iyidir.


unit ServerMethodsUnit1;

interface

uses 
.
.
.

type
 TServerMethods1 = class(TDSServerModule)
  .
  .
  .
 public
   { Public declarations }
   function AddUser(UserName: string) : boolean;
 end;

function TServerMethods1.AddUser(UserName: string) : boolean;
begin
Result:=False;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add('INSERT INTO kullanicilar (adi) VALUES  ('+QuotedStr(UserName)+')');
try 
 qry.ExecSQL;
 Result:=True;
except
end; 
end;

Query nin çalıştırıldıkdan sonra veritabanının geri döndürdüğü cevaba bakmadan, işlem başarılıymış gibi true döndürmek yanlış bir mantıkdır.

If an error occurs and the insert is not done
Code "Result: = True;" Does not run.
So the function returns the value of "False"
--------------------------------------------------------------
Bir hata oluşursa ve ekleme yapılmazsa
Kod "Result: = True;" Çalışmıyor.
Böylece işlev "False" değerini döndürür
WWW
Cevapla
#7
CommandText kullanımıznı yanlış. PAramatetre kullanarak data yollayın command texte, daha sağlıklı olur.
Ex:

ClientDataSet1.Clear;
ClientDataSet1.Close;
ClientDataSet1.CommandText := 'INSERT INTO kullanicilar (adi) VALUES  (:ad)';
ClientDataSet1.ParamByName('ad').value:='Ali Can';
ClientDataSet1.Prepare;
ClientDataSet1.Execute;



 Gibi..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#8
Teşekkür Ederim
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  ClientDataSet image field yükleme (DataSnap) 41linea41 29 16.350 25-01-2023, Saat: 19:18
Son Yorum: yemre
  Datasnap Kullanımı Hk. sadoal351 1 1.118 11-01-2023, Saat: 12:45
Son Yorum: hi_selamlar
Photo Datasnap Hatası serdar 2 1.041 06-10-2022, Saat: 14:04
Son Yorum: serdar
  DataSnap web bağlantısı Altıner 6 2.158 18-09-2022, Saat: 10:29
Son Yorum: Altıner
  Datasnap read timed out hatasi gonulali 2 1.310 10-08-2022, Saat: 15:45
Son Yorum: gonulali



Konuyu Okuyanlar: 1 Ziyaretçi