PDA

Ver la Versión Completa : Problemas guardando path "\"


MaMu
21-09-2008, 04:28:39
Tengo MySQL 5 (Delphi7 - Zeos)
Guardo un Path de una imagen, en un campo VARCHAR(255) "FOTO"
Por ejemplo: "C:\ARCHIVOS DE PROGRAMA\PEPITO\LALALA\FOTO.JPG"

sin problemas, pero cuando reviso el campo, me ha guardado esto:
"C:ARCHIVOS DE PROGRAMAPEPITOLALALAFOTO.JPG"

Como arreglo esto?, hay alguna forma de CAST para que me conserve el formato de ruta de directorios?

Saludos

dec
21-09-2008, 05:32:18
Hola,

Duplicando la barra. Debes guardar algo como:


C:\\Archivos de programa\\Resto de\\La ruta\\


... si no me equivoco... :rolleyes:

MaMu
21-09-2008, 08:37:14
Hola,

Duplicando la barra. Debes guardar algo como:


C:\\Archivos de programa\\Resto de\\La ruta\\


... si no me equivoco... :rolleyes:

Mmm...
Se me ocurre una cosa asi:


function PathWindowsToMySQL(Path, PathWindows, PathMySql: String): String;
var aPos: Integer;
begin
aPos := Pos(PathWindows, Path);
Result:= '';
while (aPos <> 0) do
begin
Result := Result + Copy(Path, 1, aPos-1) + PathMySql;
Delete(Path, 1, aPos + Length(PathWindows)-1);
aPos := Pos(PathWindows, Path);
end;
Result := Result+Path;
end;



Podria ser, no?

Y el llamado sería


Ruta:='C:\temporal\fotos\pepe.jpg';
MiRoot:=PathWindowsToMySQL(Ruta,'\','\\');


Saludos

dec
21-09-2008, 17:04:51
Hola,

Yo esperaría por la sugerencia de algún otro compañero. Dudo mucho que Delphi no incorpore ya las funciones necesarias, o bien pueda hacerse de otra forma, incluso con alguna función del propio MySQL. En todo caso, no sé yo si para duplicar las "barras" no serviría algo como esto:


toSQL = StringReplace(filePath, '/', '//', [rfReplaceAll]);


O igual conviene algo más especializado, no sé... :rolleyes:

Besto
22-09-2008, 10:19:59
A mí me pasó lo mismo y lo arregle como comenta el compañero Dec.