[SOLVED] sql update errror lazarus / 16-Databases ---------------------------------------------------------------------- madref · 2016-06-28 10:12 This is the code for the sql Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TCDB_CDInfo.ToonTracks(CID, TID: integer);var  cSQL: string;begin  cSQL := 'SELECT * FROM tbl_Tracks WHERE TK_CD_ID = :CDID AND TK_Disc = :TKID';  TQ_CDTracks.Active := False;   TQ_CDTracks.DataBase := CDB_Info.Connect_CDDB;  TQ_CDTracks.SQL.Text := cSQL;  TQ_CDTracks.ParamByName('CDID').AsInteger := CID;  TQ_CDTracks.ParamByName('TKID').AsInteger := TID;   TQ_CDTracks.Active := True;end;I am using the following code to update my sqlite database Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TCDB_CDInfo.UpdateCD;begin  if TQ_CDInfo.State in [dsEdit, dsInsert] then begin    TQ_CDInfo.Post;    TQ_CDInfo.ApplyUpdates;  end;  if TQ_CDTracks.State in [dsEdit, dsInsert] then begin    TQ_CDTracks.Post;    TQ_CDTracks.ApplyUpdates;  end;  // if  if CDB_Info.Trans_CDDB.Active then    CDB_Info.Trans_CDDB.CommitRetaining;end;     // UpdateCDWhen i am running my code i get the error: raised exception class 'EDatabaseError' with message: TQ_CDTracks: No update query specified and failed to generate one. (No fields for inclusion in where statement found) at Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TQ_CDTracks.ApplyUpdates;What am i doing wrong? ---------------------------------------------------------------------- rvk · 2016-06-28 10:32 Did you set TQ_CDTracks.Upda]"]>Blockedde := upWhereAll; ? Or (if it is upWhereKeyOnly) did you set a correct primary key in that table? ---------------------------------------------------------------------- madref · 2016-06-28 10:42 It's: upWhereKeyOnly [/size]Code: [Select]CREATE TABLE `tbl_Tracks` ( `TK_ID` word, `TK_CD_ID` word, `TK_Disc` word, `TK_Disc_ID` float, `TK_Track01` varchar(255), `TK_Track02` varchar(255), `TK_Track03` varchar(255), `TK_Track04` varchar(255), `TK_Track05` varchar(255), `TK_Track06` varchar(255), `TK_Track07` varchar(255), `TK_Track08` varchar(255), `TK_Track09` varchar(255), `TK_Track10` varchar(255), `TK_Track11` varchar(255), `TK_Track12` varchar(255), `TK_Track13` varchar(255), `TK_Track14` varchar(255), `TK_Track15` varchar(255), `TK_Track16` varchar(255), `TK_Track17` varchar(255), `TK_Track18` varchar(255), `TK_Track19` varchar(255), `TK_Track20` varchar(255), `TK_Track21` varchar(255), `TK_Track22` varchar(255), `TK_Track23` varchar(255), `TK_Track24` varchar(255), `TK_Track25` varchar(255), `TK_Track26` varchar(255), `TK_Track27` varchar(255), `TK_Track28` varchar(255), `TK_Track29` varchar(255), `TK_Track30` varchar(255) ); ---------------------------------------------------------------------- rvk · 2016-06-28 10:44 Quote from: madref on June 28, 2016, 12:42:08 pmIt's: upWhereKeyOnly And you don't have a primary key defined in that table. So how is FPC going to create an UPDATE-statement if you don't have a primary key but you instruct it to use the primary key? So define a primary key (probably on TK_ID) or set the Upda]"]>Blockedde to upWhereAll. (defining a primary key is the preferred way) ---------------------------------------------------------------------- madref · 2016-06-28 11:12 Thanks rvlk. You are a life safe (as usual) I know how this comes. I have been changing my tbl_Tracks and i forgot to set a primary key