Thema: Delphi Parameter unter Firedac

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Parameter unter Firedac

  Alt 9. Mär 2016, 17:40
Hi Himitsu

Danke für den Tip! Entsprechend habe ich das wie folgt abgeändert
Delphi-Quellcode:
function TFDMySQLDml.BildInsertQuery(LThumbMemory: TMemoryStream; FolderId: string): integer;
  var SQLString: string; AUser,APass :string;
begin
  SQLString := 'Insert Into Bildtabelle(Thumbnail, FolderID) Values (:LThumbMemory, :FolderID)';
  FDQueryMain.SQL.Text := SQLString;
  FDQueryMain.Params[0].AsStream := LThumbMemory;
  FDQueryMain.Params[1].AsString := FolderID;
  FDQueryMain.ExecSQL(false);
....
und
Delphi-Quellcode:
function TOpenFileFrame.CreateIDFile(LPath : String): String;
  var IdFile : TFileStream; ID_GUID: TGUID;
      UniqueName: String; Len: Longint;
begin
  if CreateGUID(ID_GUID) <> 0 then
     Result := 'Creating GUID failed!'
  else
  begin
     UniqueName := GUIDToString(ID_GUID);
     IdFile := TFileStream.Create(LPath,fmCreate);
     try
       Len := Length(UniqueName);
       IdFile.Write(Len, SizeOf(Len));
       IdFile.Write(PChar(UniqueName)^, Len);
     finally
      IdFile.Free;
     end;
     Result := UniqueName;
  end;
end;
Meine letzte Fehlermeldung:
Zitat:
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Data too long for column 'FolderID' at row 1' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
Das Feld in der DB ist jetzt ein Varchar(80). Max_allowed_packet (Maximale Packetgrösse) hat jetzt den Wert 16M. Beide Werte sollten nicht zu klein sein, um den Guidstring zu speichern.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat