PROBLEMA COM CARACTER ESPECIAL NO BANCO

MESTRE 16/06/2015 10:20:34
#447762
Galera beleza? estou com um problema no Mysql, ja busquei e tentei colocar de varias formas, utf8_general_ci (padrao), utf8_unicode_ci, o pessoal aqui utiliza medidas como

°/[ô]

e precisa inserir esses valores, são todos VARCHAR(255) no banco, só que da problema, no caso preciso gravar
1[ô] (que seria 1 minuto).. está no banco como UTF8_general_ci.

Preciso gravar caracteres especiais no banco..

Edit: então engraçado pq era um insert sem utilizar parametros e dava pal, utilizando parametros funciona, qual a explicação disso?

BADJECO 16/06/2015 10:52:21
#447764
Amigo , eu tenho o mesmo problema, oque eu fiz foi bem simples

1° eu nao deixo a pessoa usar o caracterer de aspas simples no form , controlo isso no keypess do form.

[Ô]Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 39 Then KeyAscii = 0
End Sub[Ô]

2° Se por um acaso mesmo assim a pessoa conseguir inserir esse caracterer eu dou um replace nele por um acento agudo.

replace(campo , [Ô] [ô] [Ô] , [Ô] ' [Ô])


Ps. nao sou muito entendido no assunto ja que aprendi VB por videos e livros e nunca fiz curso algum mas ate onde sei isso se deve pela for da query na hora de inserir no banco de dados.

escrita = Sql = [Ô]ID,[txt-color=#e80000] [ô] [/txt-color] [Ô] & CODIGO & [Ô] [txt-color=#e80000] [ô] [/txt-color],[ô][Ô] &
leitura = value;[txt-color=#e80000] [ô] [/txt-color]ID[txt-color=#e80000] [ô] [/txt-color], [txt-color=#e80000] [ô] [/txt-color]CODIGO[txt-color=#e80000] [ô] [/txt-color]
no caso , colocando o aspas simples no campo ele vai ler
leitura = value; [ô]ID[ô],[txt-color=#e80000] [ô] [/txt-color]CODIGO[txt-color=#e80000][ô][ô] [/txt-color]

ok?

Quanto ao lance de ser fomato de tempo , nao seria melhor usar um campo DATE no banco de dados e formata-lo como hora realmente , Format(campo , [Ô]hh:mm:ss[Ô]) , fazendo e claro um datediff da hora inicial para a hora final.

Eu usava esse tipo de fomataçao para hora , no inicio pareceu facil , mas no meio/fim do projeto , por motivos de relatorio , tive que corrigir todos campos de hora do projeto
MESTRE 16/06/2015 11:03:26
#447765
Então BADJECO, no meu caso eu preciso permitir o funcionário inserir o caracter especial minuto, no caso: 6[ô] (são 6 minutos) , no banco de dados

Utilizando parametros ele aceita, o insert só gostaria de entender o porque com parametros se eu subo uma Varchar(255) por exemplo com [Ô]6[ô] [Ô] no meu textbox
ele vai e se eu faço o insert sem parametros ele não vai e da pal..

Fazendo assim funciona:
     sql = [Ô]INSERT INTO cad_instr(Codigo,descricaoins) VALUES(@Codigo,@descricaoins) [Ô]

Dim objCmd As New MySqlCommand(sql, objConexao)

objCmd.Parameters.AddWithValue([Ô]@Codigo[Ô], txtCodigo.Text)
objCmd.Parameters.AddWithValue([Ô]@descricaoins[Ô], txtInstrumento.Text)

Try
objConexao.Open()
objCmd.ExecuteNonQuery()

Catch ex As Exception
MessageBox.Show(ex.ToString)
Finally
objConexao.Close()
End Try


Fazendo assim ele da pal :
   sql = [Ô]INSERT INTO cad_instr(Codigo,descricaoins) VALUES([ô][Ô] & txtCodigo.Text & [Ô][ô],[ô][Ô] & txtInstrumento.Text & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)


Eu sei que utilizar parametros é muito mais seguro e melhor porém gostaria de saber o porque da errado ..
GRUPOWISA 16/06/2015 12:31:37
#447774
Mestre...vc pode fazer como o BADJECO te falou, só que ao invés de vc controlar pelo keypress vc deixa o usuário digitar o caracter especial e quando vc for gravar no banco de dados ai vc da um replace no caracter e coloca outro no banco de dados.
E quando vc consultar o registro vc verifica o caracter e volta o mesmo que era na hora da inserção dando replace novamente.
NICKOSOFT 16/06/2015 13:04:54
#447775
Resposta escolhida
sem ser por parâmetro qnd substitui o nome do campo pelo conteúdo, vai conflitar as aspas simples....
INSERT INTO cad_instr(Codigo,descricaoins) VALUES([ô] [Ô] & txtCodigo.Text & [Ô] [ô],[ô] [Ô] & txtInstrumento.Text & [Ô] [ô])
INSERT INTO cad_instr(Codigo,descricaoins) VALUES([ô]1[ô] [ô],[ô] d [ô]agua[ô])
viu como por acaso ficou 3 valores pra 2 campos e um perdido
MESTRE 16/06/2015 13:45:38
#447778
Valeu gente, pelas respostas..

Citação:

sem ser por parâmetro qnd substitui o nome do campo pelo conteúdo, vai conflitar as aspas simples....
INSERT INTO cad_instr(Codigo,descricaoins) VALUES([ô] [Ô] & txtCodigo.Text & [Ô] [ô],[ô] [Ô] & txtInstrumento.Text & [Ô] [ô])
INSERT INTO cad_instr(Codigo,descricaoins) VALUES([ô]1[ô] [ô],[ô] d [ô]agua[ô])
viu como por acaso ficou 3 valores pra 2 campos e um perdido


Exatamente isso que era minha duvida NICKOSOFT.. abração
Tópico encerrado , respostas não são mais permitidas