Delphi Sql Kayıt Hatası !!!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ozcank » 08 Ara 2018 11:08

Arkadaşlar Merhaba ; SQL de kayıt yapmak istiyorum ama bir hata veriyor bir türlü bulamadım bana yardımcı olur musunuz ?

İlk Kaydı yapıyor sql veri tabanına bakıyorum 3-4 tane atmış en son bu hatayı veriyor. Aynı kayıt girişini engelleme kontrolü yapmak istiyorum.

Verdiği Hata : EmanetEfat: CommandText does not return a result set.

Sorgum Bu ;

Kod: Tümünü seç

procedure TForm18.BitBtn4Click(Sender: TObject);
begin
With EmanetEfat do
Begin
EMANETEFAT.Active:=True;
   if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.')
   else
Begin
  EmanetEfat.Close;
  SQL.Text := 'INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES    (:DEPO_KODU,:PLASIYER_KODU,:PLA_KODU,:ACIKLAMA,:INCKEYNO,:BELGENO,:CARIKODU)' ;
  Parameters.ParamByName('DEPO_KODU').value := Edit4.text;
  Parameters.ParamByName('PLASIYER_KODU').value :=Edit5.text;
  Parameters.ParamByName('PLA_KODU').value :=Edit6.text;
  Parameters.ParamByName('ACIKLAMA').value :=Edit7.text;
  Parameters.ParamByName('INCKEYNO').value :=Edit8.text;
  Parameters.ParamByName('BELGENO').value :=BelgeNo.text;
  Parameters.ParamByName('CARIKODU').value :=CariKodu.text;
Try
  EmanetEfat.ExecSQL;
except on E: Exception do
  MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;
end;
end;
End.

Kullanıcı avatarı
ihalilcoban
Üye
Mesajlar: 119
Kayıt: 10 Ara 2015 10:39
Konum: Gaziantep

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ihalilcoban » 08 Ara 2018 12:24

Merhaba.

Kod: Tümünü seç

procedure TForm18.BitBtn4Click(Sender: TObject);
begin
With EmanetEfat do
	Begin
		EMANETEFAT.Active:=True;
		if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
			Begin
				showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.');
				Exit;
			End Else
			Begin
				EmanetEfat.Close;
				SQL.Text := 'INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES    (:DEPO_KODU,:PLASIYER_KODU,:PLA_KODU,:ACIKLAMA,:INCKEYNO,:BELGENO,:CARIKODU)' ;
				Parameters.ParamByName('DEPO_KODU').value := Edit4.text;
				Parameters.ParamByName('PLASIYER_KODU').value :=Edit5.text;
				Parameters.ParamByName('PLA_KODU').value :=Edit6.text;
				Parameters.ParamByName('ACIKLAMA').value :=Edit7.text;
				Parameters.ParamByName('INCKEYNO').value :=Edit8.text;
				Parameters.ParamByName('BELGENO').value :=BelgeNo.text;
				Parameters.ParamByName('CARIKODU').value :=CariKodu.text;
				Try
				EmanetEfat.ExecSQL;
				except on E: Exception do
				MessageDlg(E.Message,mtError,[mbOK],0);
				end;
			end;
	end;
end;
Bu şekilde bir dener misiniz?

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ozcank » 08 Ara 2018 12:39

ihalilcoban kardeşim teşekkür ederim. Aynı hata devam ediyor hata veriyor kayıt da yapıyor aynı kaydı.

maydin60
Üye
Mesajlar: 2
Kayıt: 07 Oca 2011 03:31

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen maydin60 » 08 Ara 2018 02:18

procedure TForm18.BitBtn4Click(Sender: TObject);
begin

With EmanetEfat do
Begin

Active:=True;

if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
Begin
showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.');
exit;
end;
else
Begin
EmanetEfat.SQL.Clear;
EmanetEfat.Close;
SQL.Text :=
'INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES (:DEPO_KODU,:PLASIYER_KODU,:PLA_KODU,:ACIKLAMA,:INCKEYNO,:BELGENO,:CARIKODU)' ;
Parameters.ParamByName('DEPO_KODU').value := Edit4.text;
Parameters.ParamByName('PLASIYER_KODU').value :=Edit5.text;
Parameters.ParamByName('PLA_KODU').value :=Edit6.text;
Parameters.ParamByName('ACIKLAMA').value :=Edit7.text;
Parameters.ParamByName('INCKEYNO').value :=Edit8.text;
Parameters.ParamByName('BELGENO').value :=BelgeNo.text;
Parameters.ParamByName('CARIKODU').value :=CariKodu.text;
Try
EmanetEfat.ExecSQL;
except on E: Exception do
MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;
end;
end;
End.

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ozcank » 08 Ara 2018 02:53

maydin60 Teşekkür ederim. 'ELSE' de hata verdiği için şu şekilde değiştirmek zorunda kaldım ama yine aynı hatayı verdi.

Verdiği Hata : EmanetEfat: CommandText does not return a result set.

Kod: Tümünü seç

procedure TForm18.BitBtn4Click(Sender: TObject);
begin
With EmanetEfat do
Begin
EmanetEfat.Active:=True;
if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
Begin
showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.');
exit;
end;
Begin
EmanetEfat.SQL.Clear;
EmanetEfat.Close;
SQL.Text :='INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES (:DEPO_KODU,:PLASIYER_KODU,:PLA_KODU,:ACIKLAMA,:INCKEYNO,:BELGENO,:CARIKODU)' ;
Parameters.ParamByName('DEPO_KODU').value := Edit4.text;
Parameters.ParamByName('PLASIYER_KODU').value :=Edit5.text;
Parameters.ParamByName('PLA_KODU').value :=Edit6.text;
Parameters.ParamByName('ACIKLAMA').value :=Edit7.text;
Parameters.ParamByName('INCKEYNO').value :=Edit8.text;
Parameters.ParamByName('BELGENO').value :=BelgeNo.text;
Parameters.ParamByName('CARIKODU').value :=CariKodu.text;
EmanetEfat.ExecSQL;
end;
End;
end;

Kullanıcı avatarı
ihalilcoban
Üye
Mesajlar: 119
Kayıt: 10 Ara 2015 10:39
Konum: Gaziantep

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ihalilcoban » 08 Ara 2018 09:02

Kod: Tümünü seç

procedure TForm18.BitBtn4Click(Sender: TObject);
begin
EMANETEFAT.Active:=True;
if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
Begin
showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.');
Exit;
End;
	
EmanetEfat.Close;
EmanetEfat.SQL.Clear;
EmanetEfat.SQL.Text := 'INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES    (:D_KODU,:P_KODU,:PL_KODU,:ACKLM,:INCKYNO,:BLGNO,:CR_KODU)' ;
Parameters.ParamByName('D_KODU').value 	:= Edit4.text;
Parameters.ParamByName('P_KODU').value 	:=Edit5.text;
Parameters.ParamByName('PL_KODU').value	:=Edit6.text;
Parameters.ParamByName('ACKLM').value 	:=Edit7.text;
Parameters.ParamByName('INCKYNO').value :=Edit8.text;
Parameters.ParamByName('BLGNO').value 	:=BelgeNo.text;
Parameters.ParamByName('CR_KODU').value :=CariKodu.text;
Try
EmanetEfat.ExecSQL;
except on E: Exception do
MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ozcank » 08 Ara 2018 10:47

ihalilcoban kardeşim alakana teşekkür ederim. Kod çalışmadı fakat ben şu şekilde değiştirince program çalıştı fakat aynı hata yı yine verdi birde null değerli boş kayıt attı.

Kod: Tümünü seç

procedure TForm18.BitBtn4Click(Sender: TObject);
begin
EMANETEFAT.Active:=True;
if EMANETEFAT.Locate('INCKEYNO',Edit8.Text,[]) then
Begin
showmessage('Bu isimde bir kayıt var.Başka bir kayıt girin.');
Exit;
end;
EmanetEfat.Close;
EmanetEfat.SQL.Clear;
EmanetEfat.SQL.Text:='INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES (:D_KODU,:P_KODU,:PL_KODU,:ACKLM,:INCKYNO,:BLGNO,:CR_KODU)' ;
EmanetEfat.FieldByName('D_KODU').value 	:=Edit4.text;
EmanetEfat.FieldByName('P_KODU').value 	:=Edit5.text;
EmanetEfat.FieldByName('PL_KODU').value	:=Edit6.text;
EmanetEfat.FieldByName('ACKLM').value 	:=Edit7.text;
EmanetEfat.FieldByName('INCKYNO').value :=Edit8.text;
EmanetEfat.FieldByName('BLGNO').value 	:=BelgeNo.text;
EmanetEfat.FieldByName('CR_KODU').value :=CariKodu.text;
Try
EmanetEfat.ExecSQL;
except on E: Exception do
MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;
End.

Kullanıcı avatarı
tuna
Üye
Mesajlar: 297
Kayıt: 07 Tem 2008 03:39
Konum: İstanbul

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen tuna » 12 Ara 2018 09:59

Sql cümlenizi aşağıdaki şekilde düzenlerseniz çalışacaktır. Ben örnek olarak iki alanı sql cümlesi içine attım diğerlerini siz ekleyip çalıştırın.
Execsql yapılan komutta fieldbyname çalışmaz.

EmanetEfat.Close;
EmanetEfat.SQL.Clear;
EmanetEfat.SQL.Text:='INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES ('''+Edit4.text+''','''+Edit5.text+''','''+BU ŞEKİLDE DİĞER ALANLARIDA DEĞİŞTİR+''',:ACKLM,:INCKYNO,:BLGNO,:CR_KODU)' ;
EmanetEfat.ExecSQL;

yusuf simsek
Üye
Mesajlar: 312
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen yusuf simsek » 12 Ara 2018 10:47

Kod: Tümünü seç

EmanetEfat.SQL.Clear;
EmanetEfat.SQL.Text:='INSERT INTO TBLEMANETEFAT (DEPO_KODU,PLASIYER_KODU,PLA_KODU,ACIKLAMA,INCKEYNO,BELGENO,CARIKODU) VALUES (:D_KODU,:P_KODU,:PL_KODU,:ACKLM,:INCKYNO,:BLGNO,:CR_KODU)' ;
EmanetEfat.FieldByName('D_KODU').value 	:=Edit4.text;
EmanetEfat.FieldByName('P_KODU').value 	:=Edit5.text;
EmanetEfat.FieldByName('D_KODU').value :=Edit4.text;

değil

EmanetEfat.PARAMByName('D_KODU').value :=Edit4.text;

olarak kullanmanız gerekmektedir...

Küçük bir bilgi :

Kod: Tümünü seç

INSERT INTO ..... VALUES (:D_KODU,:P_KODU,:PL_KODU,:ACKLM,:INCKYNO,:BLGNO,:CR_KODU)' ;
alanında [ : ] ile başlayan veriler SQL SATIRI içerisinde ki Parametreler ( değişkenler ) dir...

Aynısı kural

Kod: Tümünü seç

UPDATE TBLEMANETEFAT  SET  DEPO_KODU = :D_KODU
ve ya

Kod: Tümünü seç

DELETE FROM TBLEMANETEFAT WHERE  DEPO_KODU = :D_KODU 
için ve ya de geçerlidir

Kod: Tümünü seç

SELECT DEPO_KODU,PLASIYER_KODU, .... FROM
Cümlesi sonucunda gelen Fieldları ( alanları ) okumak için FiledByName('DEPO_KODU') ya da Fields[0] kullanılır
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: Delphi Sql Kayıt Hatası !!!

Mesaj gönderen ozcank » 14 Ara 2018 09:02

Arkadaşlar hepinize ayrı ayrı teşekkür ediyorum dediğiniz değişiklikleri yaptım sorgum çalıştı.

Cevapla