Field Value Required hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Field Value Required hatası

Mesaj gönderen Berdem »

Merhaba Arkadaşlar,
Sunucu tarafında interbase+IBX, Ibdataset +Provder ,client tarafında Soapconnection+Clientdataset kullanmaktayım.Yapmak istediğim işlem basit bir post işlemi.

Kod: Tümünü seç

    if DataModule2.ClientDataSet1.State in [dsInsert, dsEdit] then
    begin
      DataModule2.ClientDataSet1.FieldByName('HASTANE_ADI'').AsString := RzMaskEdit1.Text;
      DataModule2.ClientDataSet1.Post;
Tek table işlem yapıyorum.Master Detail yok.Veritabanı

Kod: Tümünü seç

CREATE GENERATOR IDE;

CREATE TABLE DOGUMA (
    IDE              INTEGER NOT NULL,
    YILPROTOKOLU     INTEGER,
    GUNUN_TARIHI     DATE DEFAULT 'NOW',
    KULLANICI        VARCHAR(20) COLLATE PXW_TURK,
    HASTANE_ADI      VARCHAR(20) COLLATE PXW_TURK);

ALTER TABLE DOGUMA ADD CONSTRAINT PK_DOGUMA PRIMARY KEY (IDE);
İlk hata "Field 'IDE' must have value " olarak çıkıyor.IDE Required özellğini false yapınca "Field Value Required" hatası veriyor. İşin içinden çıkamadım.Daha önce yaptığım sorun çıkmayan exenin şimdi problem çıkarmasına anlam veremiyorum.Yardımlarınızı bekliyorum.Saygılarımla..
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Merhaba,
ide nin not null olduğunu belirtmişsiniz. Peki 1. koddaki veriyi post etmeden ide ye uygun değeri vermiş misiniz.

Bu hata deger vermediğinizi gösteriyor. Bence tablonun before post olayına ide nin değerini vermeniz gerekir.


İyi çalışmalar.
_______________
ofenX
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Ide'nin not null silsemde aynı hatayı veriyor.IbDataset kullanıyorum.GeneratorField alanında generatörü belirtim.Before post belirmeye gerek varmı.Aynı zamanda trigger yazdım onda da çözüm sağlayamadım.
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Merhaba,
Datasetin üzerindeyken sağ tıklayıp dataset editör e bir bakın. Oradaki yapıyı tekrar bir kurun.
Ayrıca ben bir ara datasete bağlı transaction u sağ tıklayıp Transaction editörü seçip Read Commited ı seçmediğim için bir ara bayağı uğraşmıştım.

Yine olmazsa boş bir form ile bağlantı kurmaya çalışın.


İyi çalışmalar.
______________
ofenX
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Dediğiniz gibi yaptım olmadı.Bu seferde clientdataset field editordekileri sildim.İbdataset field editöründe IDE Required özellğini false yapınca ilk kaydı alıyor ikinci kayıtda "Key violation" hatası veriyor.
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

ide uniquee olduğundan verebilirmi?
type
Tform1 = class(Tform)
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Sanmıyorum.Unique nasıl false ederiz?

Kod: Tümünü seç

      DataModule2.ClientDataSet1.Post;
      DataModule2.ClientDataSet1.Close;
      DataModule2.ClientDataSet1.Open;
şeklinde çözüm sağladım.Exe çalışıyor. Kayıt süresi önceki kayıtlara göre daha geç oluyor.Problem çözüldü fakat daha iyi olabilirmiş gibi geliyor.Fikri olan arkadaşların görüşlerini bekliyorum.
Cevapla