[Script-Postgre]Não consigo inserir path correto

PostgreSQL

05/12/2007

Pessoal...

Estou com um problema pra rodar um script em PostgreSQL.
É que tenho uma tabela de parâmetros e preciso inserir os paths de onde devo buscar os arquivos ou salvar arquivos.

Eu sei que pra inserir um path no banco de dados eu devo colocar contra-barra dupla (\\), mas quando vou conferir no banco, estes campos foram inseridos com aspas simples.

Meu script está assim:

[i:83b772986c]INSERT INTO tblParametro (intPKParametro, strParametro, strDescricao, strValorParametro) VALUES (13, ´caminho_imagem´, ´Local de armazenamento de imagens dos pacientes´, ´c:\\Projeto\\imagens\\´);[/i:83b772986c]

Minha base foi criada com Encoding = SQL_ASCII

Alguém pode me ajudar?


Marcos.gandin

Marcos.gandin

Curtidas 0

Respostas

Mleal

Mleal

05/12/2007

Marcos,

Fiz testes simulando o seu problema e obtive os resultados abaixo:

CREATE TABLE tblParametro (intPK int8, strPar varchar(60), strDescr varchar(60), pathPar path)

INSERT INTO tblParametro (intPK, strPar, strDescr, pathPar) VALUES (13, ´caminho_imagem´, ´Local de armazenamento de imagens dos pacientes´, ´[(1,1),(1,2)]´);

INSERT INTO tblParametro (intPK, strPar, strDescr, pathPar) VALUES (13, ´caminho_imagem´, ´Local de armazenamento de imagens dos pacientes´, ´((1,1),(1,2))´);

Após as inserções emiti um SELECT, com os resultados abaixo:
13;´caminho_imagem´;´Local de armazenamento de imagens dos pacientes´;´[(1,1),(1,2)]´
13;´caminho_imagem´;´Local de armazenamento de imagens dos pacientes´;´((1,1),(1,2))´

A documentação informa que as chaves indicam um path aberto, enquanto os parenteses indicam um path fechado.

Não faço a menor idéia de como utilizar estas coordenadas para acessar diretórios. Acho melhor definir o campo como varchar e tratar o conteúdo diretamente como uma string.

abçs

MLeal :P


GOSTEI 0
Mleal

Mleal

05/12/2007

Marcos,

Complementando a resposta anterior, se vc definir o campo path como string é tranquilo, veja:

CREATE TABLE tblParametro (intPK int8, strPar varchar(60), strDescr varchar(60), pathPar varchar(100));

INSERT INTO tblParametro (intPK, strPar, strDescr, pathPar) VALUES (13, ´caminho_imagem´, ´Local de armazenamento de imagens dos pacientes´, ´c:\\Projeto\\imagens\\´);

Após um SELECT, este foi o resultado:
13;´caminho_imagem´;´Local de armazenamento de imagens dos pacientes´;´c:\Projeto\imagens\´

Observe que a ´\´ adicional funciona como caractere de escape e informa ao processador para tratar o próximo caractere literalmente. Daí, no resultado final a string path perde uma barra. O processador a engoliu.

Para gravar é necessário a barra invertida adicional, para leitura, o path virá limpo p/ vc, apenas com uma barra invertida.

abçs

MLeal :P


GOSTEI 0
POSTAR