22. november 2006 - 02:03Der er
10 kommentarer og 1 løsning
Value af Autoinc flet efter insert af ny record
Hejsa
Jeg har en Client table hvor min primær nøgle er et AutoInc felt. Mit problem er at jeg har brug for at vide hvilken værdi feltet blev tildelt efter at insert af ny record.
procedure TMainFrm.AcceptBtnClick(Sender: TObject); Var BookPost :TBookmark; begin Case EdType of 1: begin Data.UpdateClient.SQL.Text := 'insert into Kunder.db '+ '(Navn, Adresse, Postnummer, City) '+ 'values '+ '(:CNavn, :CAdresse, :CPostnummer, :CCity)'; end; 2: begin Data.UpdateClient.SQL.Text := 'update Kunder.db '+ 'set '+ 'Navn = :CNavn,Adresse = :CAdresse, Postnummer = :CPostnummer, City= :CCity 'where '+ 'Nummer = :CNummer'; end; end; Data.UpdateClient.Params[0].Value := EdCliname.Text; Data.UpdateClient.Params[1].Value := EdCliAdr.Text; Data.UpdateClient.Params[2].Value := EdCliPost.Text; Data.UpdateClient.Params[3].Value := EdCliCity.Text; if EdType = 2 Then Data.UpdateClient.Params[4].Value := Data.Client.FieldByName('Nummer').AsInteger; Data.UpdateClient.ExecSQL;
Der var ikke problem med at få værdien da der blev brugt TTable, men er det meningen at hele skal køre på SQL, og det er jeg langt fra stræk i.
AutoInc er forskelligt implementeret afhængig af hvilken SQL server du bruger, så det ville nok være en god ide at lave din kode så du ikke er afhængig at at kende værdien efter insert, alternativt kan du lave :
Indtil jeg skriver om til MySql, har jeg tænkt mig at gøre således, det virker, men det er måske ikke kønt og særlig stablit.
If EdType = 1 then begin Data.UpdateClient.SQL.Text := 'Select Nummer, Navn From Kunder.db'; Data.UpDateClient.Open; Data.UpdateClient.FindLast; ShowMessage(Data.UpdateClient.FieldByName('Navn').AsString); LoadVenteList(Data.UpdateClient.FieldByName('Nummer').AsInteger,Data.UpdateClient.FieldByName('Navn').AsString); end;
Jeg vil fortsætte med at bruge Paradoxen, indtil alle nye functioner er bygget ind i programmet, derefter vil jeg skrive om til MySql, jeg er bange for at lave begge ændringer på en gang bliver for meget for mig
SQL er nogle gange "lidt tungt" at bruge, men har langt flere fordele :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.