Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#1

Auto-ID des eben eingefügten Datensatzes erhalten

  Alt 13. Nov 2006, 19:14
Datenbank: MySQL • Version: 5.x • Zugriff über: dbExpress
Mohoin,

furchtbar - ich, Delphi und Datenbanken.

Also: Ich versuche, aus einer Delphi-Anwendung heraus Daten in eine Datenbank zu schreiben. Mittels einer TSQLConnection verbinde ich mich auf den (lokalen) MySQL-Server und mittels einer TSQLQuery haue ich die Daten rein. Das geht auch ganz reizend:

Delphi-Quellcode:
with SQLQuery1 do
begin
  SQL.Text:= 'insert into static_docs (`title`, `docpath`, `key`, `namespace`, `type`, `prgLang`, `natLang`, `text` ) ' +
  'values(:title, :docpath, :key, :namespace, :type, :prgLang, :natLang, :text );';

  Params.ParamByName('title').AsString:= metaData.title;
  Params.ParamByName('docpath').AsString:= metaData.docpath;
  Params.ParamByName('key').AsString:= metaData.itmKey;
  Params.ParamByName('namespace').AsString:= metaData.itmNamespace;
  Params.ParamByName('type').AsInteger:= Integer( metaData.itmType );
  Params.ParamByName('prgLang').AsInteger:= Integer( metaData.prgLanguage );
  Params.ParamByName('natLang').AsInteger:= Integer( metaData.natLanguage );
  Params.ParamByName('text').LoadFromStream(memDest, ftBlob);

  ExecSQL;
end;
Jeder Datensatz dieser Tabelle bekommt von der Datenbank eine ID, die mittels Auto-Increment zugewiesen wird. Auch das geht - aber genau diese ID brauche ich in der weiteren Verarbeitung meiner Delphi-Anwendung. In der Hilfe zu TSQLQuery kommt das unschöne Wort "unidirektional" vor, was mir suggeriert, das der von mir gewählte Ansatz hierfür nicht geeignet ist.

Was könnt' ich denn machen, um an die Auto-ID des eben eingefügten Datensatzes zu kommen?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat