Fórum Dados quando Insere com Caracter estranho. #465678

03/01/2014

0

Bom dia Galera

Estou com a seguinte situação, em uma aplicação Delphi com SQL Server, estou usando o MEMO, no banco de dados o campo esta Varchar(8000) para gravar texto, quando faço o insere direto no banco funciona normalmente porem quando usa a aplicação o texto some e grava somente caracteres estranhos.


Abaixo o parâmetro que recebe o texto.

queryInsert.ParamByName('OBS_problema').Value := Trim(Memo.Text)
João Françozo

João Françozo

Responder

Posts

03/01/2014

Leandro Chiodini

Você realmente quer tirar os espaços do texto?
se sim, nao vejo erro de codigo,
se naão , o TRIM nao é necessario.

para desencargo .
voce pode tentar usar

queryInsert.ParamByName('OBS_problema').asString := Trim(Memo.Text)

Usar o asString para converter explicitamente.

attm
Responder

Gostei + 0

03/01/2014

João Françozo

OPA LEANDRO

TAMBÉM JA TINHA TESTADO ASSIM POREM DA O MESMO ERRO.
PARECE QUE O CAMPO MEMO TEM LIMITE ALGO ASSIM.

INSERI O TEXTO ABAIXO NO MEMO.
Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1Memo1

QUANDO SALVOU FICOU ASSIM ˜‚ç
Responder

Gostei + 0

03/01/2014

Leandro Chiodini

mostra um print
de como esta a criação da tua tabela
Responder

Gostei + 0

03/01/2014

João Françozo

Segue em anexo.
Estou com problema nos dois campos OBS_PROBLEMA E OBS_FECHAMENTO

[img:descricao=Tabela]http://arquivo.devmedia.com.br/forum/imagem/354621-20140103-154421.jpg[/img]
Responder

Gostei + 0

03/01/2014

Leandro Chiodini

Cara a principio esta correto.
campo de texto com seu maximo de caracteres permitido.
faz o seguinte
vai depurando ele
ate eo inserte
e ve depois de passar pelo comand
queryInsert.ParamByName('OBS_problema').asString := Trim(Memo.Text)

qq tem dentro de
queryInsert.ParamByName('OBS_problema').asString

pra ver se esta com o valor correto neste momento.

att,
Responder

Gostei + 0

03/01/2014

João Françozo

COLOQUEI UM SHOWMESSAGE DO CAMPO MEMO O MESMO RETORNOU OS MESMO VALORES.
TEM ALGUMA DICA SOBRE ISSO.
Responder

Gostei + 0

03/01/2014

João Françozo

O MEMO DEVE TER UM LIMITE DE 255 CARACTER, O QUE OBSERVEI
Responder

Gostei + 0

03/01/2014

Leandro Chiodini

Retornou os mesmos valores?
os valores incorretos
ou o valor que voce digitou?

att,
Responder

Gostei + 0

03/01/2014

João Françozo

RETORNOU O VALOR QUE FOI DIGITADO.
Responder

Gostei + 0

03/01/2014

Leandro Chiodini

Cara faz o seguinte entao.
limpra os registros da tua tabela
e muda o typo do campo
pra em vez de Varchar

NVARCHAR(MAX) - dai ele usa o maximo de caracteres permitidos pelo typo, e tem suporte a dois bytes de caracteres.

tenta isso ai,
e posta o resultado.


valew.
Responder

Gostei + 0

03/01/2014

João Françozo

VOU FAZER ISSO POREM ACHO QUE NÃO É O BANCO DE DADOS SE EU FAZER UM UPDATE NO CAMPO FUNCIONA PERFEITAMENTE.
Responder

Gostei + 0

03/01/2014

Leandro Chiodini

Entao depois da alteração se nao der certo,
cola o codigo todo onde vc pega o text,
e passa para o select
talvez achamos algo

att,
Chiodini
Responder

Gostei + 0

06/01/2014

João Françozo

Leandro segue abaixo.

SQL do insert e o código Delphi.


QueryInsert.ParamByName('Numero_OS').AsString := EdtOS.Text;
QueryInsert.ParamByName('DataA').AsDateTime := DateTimePicker1.DateTime;
queryInsert.ParamByName('Cod_usuario').AsString := EdtCodU.Text;
queryInsert.ParamByName('cod_situacao').AsString := ComboBox1.Text;
queryInsert.ParamByName('cod_proriedade').AsString := ComboBox2.Text;
queryInsert.ParamByName('cod_filial').AsString := EdtCodF.Text;
queryInsert.ParamByName('OBS_problema').ASString := Trim(Memo.Text);
queryInsert.ParamByName('Assunto').AsString := EdtTitulo.Text;
queryInsert.ParamByName('UsuarioLog').AsString := FrmP001.usuario;
QueryInsert.ExecSQL;


-------------------

INSERT INTO TBSUPORTE
( NUMERO_OS,
DATAA,
COD_USUARIO,
COD_SITUACAO,
COD_PRORIEDADE,
COD_FILIAL ,
OBS_PROBLEMA,
ASSUNTO,
USUARIOLOG
)

VALUES
( :NUMERO_OS,
:DATAA,
:COD_USUARIO,
:COD_SITUACAO,
:COD_PRORIEDADE,
:COD_FILIAL ,
:OBS_PROBLEMA,
:ASSUNTO,
:USUARIOLOG
)


Responder

Gostei + 0

06/01/2014

João Françozo

O Memo só esta gravando 255 caractere, alguém sabe como alterar o tamanho.
Responder

Gostei + 0

14/08/2015

Vincenzo Moraes

memo1.LINES.text e não memo1.text
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar