Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Otomatik Veritabanı Oluşturma
#11
mevcut veritabanı dosyasına bağlanıp tablo oluştıurmak istiyorumdum

SQLTransaction1.CommitRetaining; satırını ekledim çalıştı

BU ARADA;
Error Message:
----------------------------------------
The insert failed because a column definition includes validation constraints.
validation error for column ID, value "*** null ***".

ID için triger oluşturmam lazım kayıt yapamıyorum hata verdi.

çok teşekkürler
saygılarımla
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#12
(27-03-2021, Saat: 20:12)sadikacar60 Adlı Kullanıcıdan Alıntı: mevcut veritabanı dosyasına bağlanıp tablo oluştıurmak istiyorumdum

SQLTransaction1.CommitRetaining;   satırını ekledim çalıştı

BU ARADA;
Error Message:
----------------------------------------
The insert failed because a column definition includes validation constraints.
validation error for column ID, value "*** null ***".

ID için triger oluşturmam lazım kayıt yapamıyorum hata verdi.

çok teşekkürler
saygılarımla
Selamlar,
Gelen hata mesajında bir kayıt eklerken gönderilen değerlerden birinin (ID kolonunun) null olduğu ve bunun oluşturduğunuz tablodaki kurallara uymadığını söylüyor. Bu alandaki NOT NULL'u kaldırın veya auto incerement yapın ya da insert ederken ID'ye bir değer verin.
Cevapla
#13
tabloyu kodla oluşturuyorum aşağıdaki şekilde kendime göre uyarladım. burda ID için Not null u kaldırdım sonuç aynı hatta oluşan tabloya elle auto yapmaya çalıştım hata verdi. burda auto olayını kodla nasıl ekleyebiliriz. saygılarımla.

try

trh:=DateToStr(Now);
trh:=deletechar('.',trh);
trh:=deletechar(' ',trh);

yol:=ExtractFilePath(Application.Exename);

sifre:='masterkey';

IBConnection1.Connected:=false;
IBConnection1.HostName:='localhost';
IBConnection1.DatabaseName:=yol+'system\db\VT_TURNUVA.FDB';
IBConnection1.Params.Values['User_Name']:='SYSDBA';
IBConnection1.Password:=sifre;
IBConnection1.Params.Values['lc_ctype']:='WIN1254';
IBConnection1.Connected:=True;
SQLTransaction1.Active:=True;
SQLQuery1.Active:=True;


SQLQuery1.Close;
tblAdi:= 'TURNV_'+trh ;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE TABLE "'+tblAdi +'" ("ID" INTEGER ,');    //NOT NULL
SQLQuery1.SQL.Add('"BID" VARCHAR(50) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"OYADI" VARCHAR(50) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME1" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME2" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME3" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME4" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME5" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAMETOP" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');

SQLQuery1.SQL.Add('PRIMARY KEY ("ID"))');
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;

//Generator oluşturuluyor
Try
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE GENERATOR "GEN_'+tblAdi+'_ID"'); 
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;
Finally
SQLQuery1.Close;
end;

SQLTransaction1.CommitRetaining;
Finally
SQLQuery1.Close;
end;
ShowMessage('OK');
end;  

triger ı araştırdım çalışacağını tahmin etmiyordum ama aşagıdaki düzenlemelerle çalıştı. inşallah başka sorun yaşamam 
çok teşekkürler saygılarımla.

procedure TfrmMain.Button1Click(Sender: TObject);
var
yol:string;
sifre:string;
trh:String;
tblAdi:string;
begin
try

trh:=DateToStr(Now);
trh:=deletechar('.',trh);
trh:=deletechar(' ',trh);

yol:=ExtractFilePath(Application.Exename);

sifre:='masterkey';

IBConnection1.Connected:=false;
IBConnection1.HostName:='localhost';
IBConnection1.DatabaseName:=yol+'system\db\VT_TURNUVA.FDB';
IBConnection1.Params.Values['User_Name']:='SYSDBA';
IBConnection1.Password:=sifre;
IBConnection1.Params.Values['lc_ctype']:='WIN1254';
IBConnection1.Connected:=True;
SQLTransaction1.Active:=True;
SQLQuery1.Active:=True;


SQLQuery1.Close;
tblAdi:= 'TURNV_'+trh ;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE TABLE "T1" ("ID" INTEGER,');    //NOT NULL
SQLQuery1.SQL.Add('"BID" VARCHAR(50) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"OYADI" VARCHAR(50) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME1" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME2" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME3" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME4" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAME5" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');
SQLQuery1.SQL.Add('"GAMETOP" VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK,');

SQLQuery1.SQL.Add('PRIMARY KEY ("ID"))');
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;

//Generator oluşturuluyor
Try
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE GENERATOR "GEN_T1_ID"');
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;
Finally
SQLQuery1.Close;
end;


//Now we create a trigger:
Try
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE TRIGGER T1_BI FOR T1 ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (NEW.ID is NULL) then NEW.ID = GEN_ID(GEN_T1_ID, 1); END  ' );
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;
Finally
SQLQuery1.Close;
end;




SQLTransaction1.CommitRetaining;
Finally
SQLQuery1.Close;
end;
ShowMessage('OK');
end;  
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi İle Instagram'da Otomatik Paylaşım Jakarta2 5 480 19-05-2021, Saat: 13:44
Son Yorum: Jakarta2
Photo Delphi vcl projesine login form oluşturma tuna 15 1.444 15-05-2021, Saat: 20:41
Son Yorum: mrmarman
Question json yapma oluşturma, nasıl olur noname101 8 770 05-05-2021, Saat: 20:51
Son Yorum: noname101
  Runtime'da Dinamik Form Oluşturma ve Formlar Arası Haberleşme Syntax 2 377 22-04-2021, Saat: 22:20
Son Yorum: Syntax
  Formun boyutu büyüdüğünde, üzerindeki bileşenler de otomatik büyütülebilir mi? ferhatganem 25 2.555 24-03-2021, Saat: 13:50
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi