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