Fireird Commit edince multiple rows diyor
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Fireird Commit edince multiple rows diyor
S.a
Foreing key li Master Detail table da
Commit edince Detail dosyamda
no curren record for fetch operation
multiple rows in singleton select diyor ve kayıt yapamıyorum
nede boyle olur anlayamadım
Foreing key li Master Detail table da
Commit edince Detail dosyamda
no curren record for fetch operation
multiple rows in singleton select diyor ve kayıt yapamıyorum
nede boyle olur anlayamadım
selam
kardeş
O normal dir Fk olayını tam yapöışsın yani sen Master da bir kayıt ile detayda bir kayıt eşleşemediğinden yapıyor Veya mastara hiç kayıt girmeden detaya kayıt girmeye çalıştığınızdan FK bu durumu engelliyor ve detay tablonuza kayıt yapamıyorsunuz İlişki kurduğunuz ID leri ve bunlara bağlı genarators leri gözden geçirmenizi tavsiye ediyorum.Normal de sizin durumunuz hata değil.Kolay gelsin
kardeş
O normal dir Fk olayını tam yapöışsın yani sen Master da bir kayıt ile detayda bir kayıt eşleşemediğinden yapıyor Veya mastara hiç kayıt girmeden detaya kayıt girmeye çalıştığınızdan FK bu durumu engelliyor ve detay tablonuza kayıt yapamıyorsunuz İlişki kurduğunuz ID leri ve bunlara bağlı genarators leri gözden geçirmenizi tavsiye ediyorum.Normal de sizin durumunuz hata değil.Kolay gelsin
Merhaba,
VT'de
gibi bir kullanım varsa hatayı bundan veriyordur. Bu gibi durumlarda sadece 1 kayıt dönmesi gerekir ama sizin durumunuzda birden fazla kayıt dönüyormuş. Trigger ve stored procedureleri inceleyin. Kayıtlara da bakın belki anahtar alanda aynı numaralı birdenfazla kayıt vardır.
VT'de
Kod: Tümünü seç
select alan1 from tablo1 into :paremetre1;
yok hocam iki tablem var IBdataset Master detail fisno pk ve fk
detail fisno alıyor baktım
sonra Sakla Tusuna basıyorum olmuyor
sakla tusundada da
if (DataModule1->IBTransaction1->InTransaction )
DataModule1->IBTransaction1->CommitRetaining();
bu sefer de master kayıt oluyor detial olmuyor
Master->ApplyUpdates
Detail->ApplyUpdates
koyarsam yukardaki hatayı veriyor
detail fisno alıyor baktım
sonra Sakla Tusuna basıyorum olmuyor
sakla tusundada da
if (DataModule1->IBTransaction1->InTransaction )
DataModule1->IBTransaction1->CommitRetaining();
bu sefer de master kayıt oluyor detial olmuyor
Master->ApplyUpdates
Detail->ApplyUpdates
koyarsam yukardaki hatayı veriyor
selam
kardeş
Fk tablomun DDl sini gönderiyom
bu şekilde
ben
Ckart ile Cislem ara,sında da şu şekilde ilişki kurmuştum
Ckartın:=Master_Id si ile
cislem tablonun:=det_master_id si ile
ilişki kurmuştum
benim master detay tablomda
her ikisindede otomatik artan sayı var
hem ckartta hemde cislem tablosunda
cislem tablom benim detay tablom.
ben
detay tablomu otomatik artan olmayan Det_master_id ile
master tablom olan otomatik artan PK ile ilişki kurmuştum
det_master_id ise benim Hazırladığım Fk.
otomatik sayı artarken
master tablomdaki ckartta master_id ile detay tablomdaki det_master_id
sayılar aynı yani misal olarak 200=200 gibi.Bunlara bir bakarmısın.
Kolay gelsin...
kardeş
Fk tablomun DDl sini gönderiyom
Kod: Tümünü seç
SET SQL DIALECT 3;
SET NAMES WIN1254;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE CISLEM (
DETAY_ID INTEGER NOT NULL,
DET_MASTER_ID INTEGER,
TARIH DATE,
VTARIH TIMESTAMP,
ACIKLAMA VARCHAR(100) COLLATE PXW_TURK,
MIKTAR DOUBLE PRECISION,
BIRIM CHAR(10) COLLATE PXW_TURK,
FIYAT DOUBLE PRECISION,
TUTAR NUMERIC(15,2),
ODENEN NUMERIC(15,2),
BAKIYE NUMERIC(15,2),
CKOD CHAR(15),
ISK1 INTEGER,
ISK2 INTEGER,
ISK3 INTEGER,
ISK4 INTEGER,
KDV INTEGER,
NETTUTAR DOUBLE PRECISION,
KDVNETTUTAR DOUBLE PRECISION,
SN CHAR(20),
CGRUP CHAR(20)
);
/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/
ALTER TABLE CISLEM ADD CONSTRAINT FK_CISLEM_1 FOREIGN KEY (DET_MASTER_ID) REFERENCES CKART (MASTER_ID) ON DELETE CASCADE ON UPDATE CASCADE;
ben
Ckart ile Cislem ara,sında da şu şekilde ilişki kurmuştum
Ckartın:=Master_Id si ile
cislem tablonun:=det_master_id si ile
ilişki kurmuştum
benim master detay tablomda
her ikisindede otomatik artan sayı var
hem ckartta hemde cislem tablosunda
cislem tablom benim detay tablom.
ben
detay tablomu otomatik artan olmayan Det_master_id ile
master tablom olan otomatik artan PK ile ilişki kurmuştum
det_master_id ise benim Hazırladığım Fk.
otomatik sayı artarken
master tablomdaki ckartta master_id ile detay tablomdaki det_master_id
sayılar aynı yani misal olarak 200=200 gibi.Bunlara bir bakarmısın.
Kolay gelsin...
tsk ederim ilgin icin ama sanırım sorunum baska
trigerlardan kaynaklıyor mus cozdum
yaptıgım trigerda post ve update sırasında master tablodaki tarihin aynısını almasını saglıyordum.
kaldırdım sorun kalmadı.
Artık bunu kod yazarak yapacaz saglık olsun. neden bu triger sorun olsun anlamadım.
Yapmak istedigim masterdaki tarih ile detaildeki tarih aynı olsun.
bunun icin kucuk bir triger yapmıstım
tsk ederim.
bunu kod yazerken birdah dbgridi bastan sona kontrol etip degisen tarihi detail dosyasına yazmam lazim
trigerlardan kaynaklıyor mus cozdum
yaptıgım trigerda post ve update sırasında master tablodaki tarihin aynısını almasını saglıyordum.
kaldırdım sorun kalmadı.
Artık bunu kod yazarak yapacaz saglık olsun. neden bu triger sorun olsun anlamadım.
Yapmak istedigim masterdaki tarih ile detaildeki tarih aynı olsun.
bunun icin kucuk bir triger yapmıstım
tsk ederim.
bunu kod yazerken birdah dbgridi bastan sona kontrol etip degisen tarihi detail dosyasına yazmam lazim
