![]() |
[MySQL] Wie bekomme ich '\' ins Record?
Hi,
folgendes Problem. Ich will Pfadangaben in einer MySQL Tabelle speichern. Als ich einfach nur den übergebenen String eingefügt hatte, waren keine '\' mehr vorhanden. Da dacht ich mir, das er das beim einfügen falsch übergeben bekommen hat bzw. die '\' wegschneidet. Also habe ich mit StringReplace gearbeitet um die '\' durch '\\' zu ersetzen. Aber dann konnt ich sehen, das es da auch nich ging :gruebel: - Delphi hat damit also nichts zu tun, sondern handelt MySQL das irgendwie. (Glaube ich :stupid:) - Kann mir jemand vielleicht sagen, wie ich die '\' meines übergebenen Pfades nun doch da rein bekomme. - Ich will die Dateien aus meiner Anwendung aus starten lassen und dazu brauch ich die komplette Pfadangabe. Gruß, |
Re: [MySQL] Wie bekomme ich '\' ins Record?
Hai Akut,
ich kann das so nicht nachvollziehen. Wie speicherst Du die Pfade denn? |
Re: [MySQL] Wie bekomme ich '\' ins Record?
hier mal mein Code fürs einfügen..
Delphi-Quellcode:
[EDIT]Wenn ich die Pfadangaben nun wieder auslese bzw. sie mir in der DB anschaue, steht da z.B. nur 'C:TempThisFile.exe[/EDIT]
ChangedFilepath:=StringReplace(frmMain.OpenDialog1.FileName,'\\','\',[rfReplaceAll, rfIgnoreCase]);
cmdInsertFile.CommandText:='insert into files_tbl values('''+SelectetName+''', '''+frmFiletitel.edFiletitel.Text+''', '''+ChangedFilepath+''')'; |
Re: [MySQL] Wie bekomme ich '\' ins Record?
Wie greifst Du denn auf den mySQL zu?
|
Re: [MySQL] Wie bekomme ich '\' ins Record?
Hai Sharky,
über ODBC, wenn du das meinst.. und das ist der Code für die Abfrage der Dateien aus der DB..
Delphi-Quellcode:
procedure TfrmMain.LoadFileList(Anwendung: String);
var i: integer; ListItem: TListItem; begin lvFiles.Items.Clear; SelectetName:=Anwendung; dstGetFilelist.Active:=false; dstGetFilelist.CommandText:='select * from files_tbl where projekt ='''+Anwendung+''''; dstGetFilelist.Active:=true; dstGetFilelist.first; for i:=0 to dstGetFilelist.RecordCount-1 do begin ListItem:=lvFiles.Items.Add; ListItem.Caption:=dstGetFilelist.Fields.Fields[1].AsString; ListItem.SubItems.Add(StringReplace(dstGetFilelist.Fields.Fields[2].AsString,'\\','\',[rfReplaceAll, rfIgnoreCase])); dstGetFilelist.Next; end; end; |
Re: [MySQL] Wie bekomme ich '\' ins Record?
Ich verwende für mySQL die Zeos-Komponenten. Wenn ich mit diesem Code arbeite werden alle Pfade so in die Tabelle geschrieben wie ich es möchte:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if (OpenDialog1.Execute) then begin with ZQuery1 do begin Close; SQL.Text := 'INSERT INTO meintest VALUES (null,:pfad)'; ParamCheck := True; ParamByName ('pfad').AsString := OpenDialog1.FileName; ExecSql; end; end; end; |
Re: [MySQL] Wie bekomme ich '\' ins Record?
Ich nutze die ADO Komponenten.. habs jetzt mal versucht, den Code darauf umzustellen, da bekomme ich aber die Meldung, das ParamByName ein undefinierter Bezeichner ist.
Delphi-Quellcode:
[EDIT]Habs jetzt auch mal mitn ADO-Query versucht, da kommt das gleiche raus.:cry:[/EDIT]
cmdInsertFile.CommandText:='insert into files_tbl values('''+SelectetProject+''', '''+frmFiletitel.edFiletitel.Text+''', :pfad)';
cmdInsertFile.ParamCheck:=true; cmdInsertFile.ParamByName('pfad').AsString := OpenDialog1.FileName; cmdInsertFile.Execute; |
Re: [MySQL] Wie bekomme ich '\' ins Record?
Zitat:
Delphi-Quellcode:
Geht mit ADOCommand und ADOQuery.
ADOCommand1.Parameters.ParamByName('pfad').DataType := ftString; // Typ zuweisen (string)
ADOCommand1.Parameters.ParamByName('pfad').value := OpenDialog1.FileName; // Wert zuweisen |
Re: [MySQL] Wie bekomme ich '\' ins Record?
bei
Delphi-Quellcode:
bekomme ich die Meldung "undefinierter Bezeichner ftString" :freak:
cmdInsertFile.Parameters.ParamByName('pfad').DataType := ftString; // Typ zuweisen (string)
|
Re: [MySQL] Wie bekomme ich '\' ins Record?
Ist die Unit DB eingebunden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz