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.