Ich möchte den Inhalt meines Memofeldes in meine DB (MySQl) spreichern + auslesen.
Funktioniert so wie ich es gemacht habe auch.
Allerdings bekomme ich Warnings :
Ich habe es so versucht :
Die Memo Einstellungen der DB
STELLE_AUFGABEN_MEMO Longtext,
STELLE_PROFIL_MEMO Longtext,
STELLE_WIR_BIETEN_MEMO Longtext,
Mit diesem Code speichere ich die Daten
Code: Alles auswählen
if INFO_SAVE.Text = 'NEW' then
begin
// STAMM_STELLEN ANLEGEN-----------------------------------------STAMM_STELLEN ANLEGEN
SQL_String_Insert := 'INSERT INTO STAMM_STELLEN '
+ '('
+ ' STELLEN_NAME,'
+ ' STELLE_STATUS_ID,'
+ ' STELLE_LAND,'
+ ' STELLE_NL_ID,'
+ ' STELLE_ABTEILUNG_ID,'
+ ' STELLE_BEREICH_ID,'
+ ' STELLE_KOSTENSTELLE,'
+ ' STELLE_AUFGABEN_MEMO,'
+ ' STELLE_PROFIL_MEMO,'
+ ' STELLE_WIR_BIETEN_MEMO,'
+ ' STELLE_SPRACHE,'
+ ' STELLE_Angelegt_Von,'
+ ' STELLE_Angelegt_Am'
+ ') '
+ ' VALUES ' //STAMM_STELLEN ANLEGEN
+ '('
+ ' :STELLEN_NAME,'
+ ' :STELLE_STATUS_ID,'
+ ' :STELLE_LAND,'
+ ' :STELLE_NL_ID,'
+ ' :STELLE_ABTEILUNG_ID,'
+ ' :STELLE_BEREICH_ID,'
+ ' :STELLE_KOSTENSTELLE,'
+ ' :STELLE_AUFGABEN_MEMO,'
+ ' :STELLE_PROFIL_MEMO,'
+ ' :STELLE_WIR_BIETEN_MEMO,'
+ ' :STELLE_SPRACHE,'
+ ' :STELLE_Angelegt_Von,'
+ ' :STELLE_Angelegt_Am'
+ ');';
frm_A_MAIN_HAUPTMENU.SQLQuery2.close;
frm_A_MAIN_HAUPTMENU.SQLQuery2.SQL.Clear;
frm_A_MAIN_HAUPTMENU.SQLQuery2.SQL.Add(SQL_String_Insert);
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLEN_NAME').AsString := STELLEN_NAME.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_STATUS_ID').AsInteger := 99;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_LAND').AsString := STELLE_LAND.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_NL_ID').AsString := STELLE_NL_ID.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_ABTEILUNG_ID').AsString := STELLE_ABTEILUNG_ID.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_BEREICH_ID').AsString := STELLE_BEREICH_ID.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_KOSTENSTELLE').AsString := STELLE_KOSTENSTELLE.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_AUFGABEN_MEMO').AsMemo := STELLE_AUFGABEN_MEMO.Lines.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_PROFIL_MEMO').AsMemo := STELLE_PROFIL_MEMO.Lines.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_WIR_BIETEN_MEMO').AsMemo := STELLE_WIR_BIETEN_MEMO.Lines.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_SPRACHE').AsString := STELLE_SPRACHE.Text;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_Angelegt_Von').AsString := frm_A_MAIN_HAUPTMENU.lbl_UsernName.Caption;
frm_A_MAIN_HAUPTMENU.SQLQuery2.ParamByName('STELLE_Angelegt_Am').AsDateTime := Now();
frm_A_MAIN_HAUPTMENU.SQLQuery2.ExecSQL;
frm_A_MAIN_HAUPTMENU.SQLTransaction2.Commit;
Und lese die Daten mit diesem Code wieder aus :
Code: Alles auswählen
procedure TFrm_STAMM_STELLEN_ERFASSUNG.STELLEN_IDChange(Sender: TObject);
var
SQL_String_Insert : String;
begin
// DATEN EINLESEN
if STELLEN_ID.text <> '' then
begin
STELLE_AUFGABEN_MEMO.clear;
STELLE_AUFGABEN_MEMO.clear;
STELLE_WIR_BIETEN_MEMO.clear;
SQL_String_Insert := 'Select * from STAMM_STELLEN WHERE STELLEN_ID = '''+STELLEN_ID.text+''' ';
frm_A_MAIN_HAUPTMENU.SQLQuery1.close;
frm_A_MAIN_HAUPTMENU.SQLQuery1.SQL.Clear;
frm_A_MAIN_HAUPTMENU.SQLQuery1.SQL.Add(SQL_String_Insert);
frm_A_MAIN_HAUPTMENU.SQLQuery1.open;
STELLEN_NAME.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLEN_NAME').asString;
STELLE_BEREICH_ID.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_BEREICH_ID').asString;
STELLE_ABTEILUNG_ID.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_ABTEILUNG_ID').asString;
STELLE_LAND.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_LAND').asString;
STELLE_NL_ID.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_NL_ID').asString;
STELLE_KOSTENSTELLE.text := frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_KOSTENSTELLE').asString;
STELLE_AUFGABEN_MEMO.Lines.Append(frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_AUFGABEN_MEMO').AsWideString);
STELLE_PROFIL_MEMO.Lines.Append(frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_PROFIL_MEMO').AsWideString);
STELLE_WIR_BIETEN_MEMO.Lines.Append(frm_A_MAIN_HAUPTMENU.SQLQuery1.FieldByName('STELLE_WIR_BIETEN_MEMO').AsWideString);
end;
end;
Die Warnings machen mir ein bisschen Sorgen.
Habs auch mit Blob versucht aber nicht hinbekommen.
Wie könnte man es besser machen ?
Hatte bisher noch kein Memofeld benutzt.... und ich hab schon über 200 Formulare
Zudem eine weitere Frage :
Wie kann man in einem Memofeld prüfen, ob die maximale Anzahl der Stellen erreicht ist ?
Bin für jede Hilfe dankbar.
Vorab herzlichen Dank für eure Antworten
Lg Bernie