Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [MySQL] Wie bekomme ich '\' ins Record? (https://www.delphipraxis.net/29517-%5Bmysql%5D-wie-bekomme-ich-%5C-ins-record.html)

Akut-Programming 10. Sep 2004 09:39


[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ß,

Sharky 10. Sep 2004 09:45

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
Hai Akut,

ich kann das so nicht nachvollziehen. Wie speicherst Du die Pfade denn?

Akut-Programming 10. Sep 2004 10:03

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
hier mal mein Code fürs einfügen..
Delphi-Quellcode:
ChangedFilepath:=StringReplace(frmMain.OpenDialog1.FileName,'\\','\',[rfReplaceAll, rfIgnoreCase]);

cmdInsertFile.CommandText:='insert into files_tbl values('''+SelectetName+''', '''+frmFiletitel.edFiletitel.Text+''', '''+ChangedFilepath+''')';
[EDIT]Wenn ich die Pfadangaben nun wieder auslese bzw. sie mir in der DB anschaue, steht da z.B. nur 'C:TempThisFile.exe[/EDIT]

Sharky 10. Sep 2004 10:07

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
Wie greifst Du denn auf den mySQL zu?

Akut-Programming 10. Sep 2004 10:09

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;

Sharky 10. Sep 2004 10:13

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;

Akut-Programming 10. Sep 2004 10:18

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:
cmdInsertFile.CommandText:='insert into files_tbl values('''+SelectetProject+''', '''+frmFiletitel.edFiletitel.Text+''', :pfad)';
cmdInsertFile.ParamCheck:=true;
cmdInsertFile.ParamByName('pfad').AsString := OpenDialog1.FileName;
cmdInsertFile.Execute;
[EDIT]Habs jetzt auch mal mitn ADO-Query versucht, da kommt das gleiche raus.:cry:[/EDIT]

Sharky 10. Sep 2004 10:21

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
Zitat:

Zitat von Akut-Programming
Ich nutze die ADO Komponenten.. ...

Bei den ADOs ist der Syntax etwas anders:
Delphi-Quellcode:
  ADOCommand1.Parameters.ParamByName('pfad').DataType := ftString; // Typ zuweisen (string)
  ADOCommand1.Parameters.ParamByName('pfad').value := OpenDialog1.FileName; // Wert zuweisen
Geht mit ADOCommand und ADOQuery.

Akut-Programming 10. Sep 2004 10:26

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
bei
Delphi-Quellcode:
cmdInsertFile.Parameters.ParamByName('pfad').DataType := ftString; // Typ zuweisen (string)
bekomme ich die Meldung "undefinierter Bezeichner ftString" :freak:

Sharky 10. Sep 2004 10:29

Re: [MySQL] Wie bekomme ich '\' ins Record?
 
Ist die Unit DB eingebunden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz