Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

zephirus

Problema com caracteres reservados em SQLITE

Recommended Posts

zephirus

Olá,

Já coloquei esta questão no tópico da base de dados mas depois de 15 dias ninguém me respondeu. Como tal, vou tentar a minha sorte aqui visto que estou a usar sqlite em vb.net. Deixo aqui o meu texto original:

Estou a usar uma base de dados sqlite para guardar dados de um programa. Nesse programa tenho campos de texto e estou a guardar essa informação na bd. O problema é que o utilizador pode escrever qualquer coisa o que faz com que possam estar no texto caractéres proibidos, tais como o '.

Exemplo de texto que pode ser inderido: don't ask

No exemplo acima, o ' é um problema. Há alguma maneira de dar a volta a isto?

Share this post


Link to post
Share on other sites
mjamado

sephirus, podes colocar o código que estás a usar?

Parto do princípio que estejas a usar a System.Data.SQLite destes tipos, certo?


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
fLaSh_PT

Boas;

Basta dares o tratamento das Quotes antes de inserires..

Imagina:

Dim sTexto as String = caixatexto.text

' Tens de fazer o replace do char ' por ''
sTexto = sTexto.Replace("'","''")

'Depois é só fazer o INSERT que não tens problemas 

Ou fazer como mostrou o softclean nos links.. como eu disse é mais simples..

Compr.


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
mjamado

Obrigado a todos. Acho que vou usar o método de substituição por agora.

Má prática. Péssima, por sinal. Mas tu é que sabes...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
zephirus

Má prática. Péssima, por sinal. Mas tu é que sabes...

Por isso é que eu disse "por agora" :P   Para a aplicação que é e para o tempo que tenho agora vai servir.

Share this post


Link to post
Share on other sites
fLaSh_PT

@mjamado

Sim, mas sabes que o mundo do trabalho não é como na escola..

Falo por experiência profissional, porque nem sempre sou eu que crio as BD's.. e fico me por o lado da aplicação.. daí que esse método pode causar problemas.. basta trocar de tipo de bd (SQL 2005 para SQL 2008) ou alguém modificar algum tipo de dados de uma coluna .. e os problemas podem aparecer .. e no final de contas tu que ficas o mal da fita..

Esse método é vital no caso das webpages, porque evitam ataques do tipo SQL Injection..

Uma coisa é certa, temos de nos adaptar ao mundo real do trabalho.. o ideal é perceber um pouco de tudo.. e saber conjugar as coisas..

Nem sempre o eficaz é melhor que o eficiente ;)


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
zephirus

@mjamado

Sim, mas sabes que o mundo do trabalho não é como na escola..

Falo por experiência profissional, porque nem sempre sou eu que crio as BD's.. e fico me por o lado da aplicação.. daí que esse método pode causar problemas.. basta trocar de tipo de bd (SQL 2005 para SQL 2008) ou alguém modificar algum tipo de dados de uma coluna .. e os problemas podem aparecer .. e no final de contas tu que ficas o mal da fita..

Esse método é vital no caso das webpages, porque evitam ataques do tipo SQL Injection..

Uma coisa é certa, temos de nos adaptar ao mundo real do trabalho.. o ideal é perceber um pouco de tudo.. e saber conjugar as coisas..

Nem sempre o eficaz é melhor que o eficiente ;)

Eu sei disso e concordo.

Eu estou a fazer uma aplicação no pouco tempo que tenho livre (depois do trabalho) e além de ser uma aplicação muito básica, sei quem a vai usar. Não é uma aplicação para divulgar ou vender. Mas eu vou tentar mudar isto, o que eu disse foi que por agora fica assim pois ainda estou a desenvolver. Antes de dar a aplicação como terminada ainda vou voltar a isto.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.