PROBLEMA COM CARACTER ESPECIAL NO BANCO
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?
°/[ô]
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?
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
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
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:
Fazendo assim ele da pal :
Eu sei que utilizar parametros é muito mais seguro e melhor porém gostaria de saber o porque da errado ..
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 ..
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.
E quando vc consultar o registro vc verifica o caracter e volta o mesmo que era na hora da inserção dando replace novamente.
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
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
Valeu gente, pelas respostas..
Exatamente isso que era minha duvida NICKOSOFT.. abração
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