Ir para conteúdo
Fórum Script Brasil
  • 0

Campo memo: limite de 255 caractéres


Musashi_RS

Pergunta

Olá, possuo uma aplicação em VB6 que utiliza um arquivo do Access como banco de dados. Em uma das tabelas, possuo um campo Memorando, o qual não possui limite definido.

O problema é que em um form da minha aplicação, eu consigo acessar esse campo e exibir em um TextBox o conteudo do campo. Normalmente esse texto possui mais de 300 caractéres.

No entanto, em um outro form, eu tutilizo o mesmo TextBox para apenas exibir o conteúdo desse campo. Utilizo o mesmo recordset, mas os métodos de acesso aos dados para pesquisa são diferentes:

- Para o form de Cadastro (sem limite):

'Faz a busca
  If RS.State > 0 Then RS.Close
  SQL = "SELECT * FROM T1_CadDefeito WHERE CodCadastro = " & PESQ
  RS.Open SQL, BANCO, adOpenStatic, adLockOptimistic
  SQL = ""
- Para o form de Consulta (limite de 255 caractéres):
'Abre o recordset (fechado)
  If RS.State <> 0 Then RS.Close
  Set RS = BANCO.Execute(SQL)

O problema é que o recordset só traz até 255 caractéres no form de Consulta. Não entendo o porque, já que em nenhum momento defini limites...

PS.:

- O TextBox é multiline, está Locked e não possui limite de caractéres;

- O recordset é declarado como global em um Modulo (Public RS As ADODB.Recordset)

- Possuo uma função AbrirBanco no mesmo Modulo.

- No evento Load de ambos os forms eu utilizo os comandos AbrirBanco, seguido de Set RS = New ADODB.Recordset, a fim de me conectar o banco e inicializar o recordset.

Alguém saberia me dizer o que estou fazendo de errado para que no form de consulta eu tenha um limite de 255 caractéres no campo memo?

Editado por Musashi_RS
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

nunca vi isso...

mas então, o recordset é public ne??

então tenta fazer o seguinte so pra testar:

carrega os dados e poe os dados do campo nesse textbox nesse primero formulario q você diz q funciona. e veja se funciona mesmo.

em seguida, SEM FECHAR o recordset, ponha os dados do campo no segundo textbox do formulario onde não funciona. e veja se não funciona mesmo. se não funcionar sabemos q o problema é alguma coisa no formulario. se funcionar, ai é porque é no modo de abrir o recordset.

e so pra confirmar, esse banco ai é access??

Link para o comentário
Compartilhar em outros sites

  • 0

O Recordset é publico sim e o banco é Access. Fiz o teste que você sugeriu e o conteúdo do campo passou beleza.

Eu já tinha certeza de que não é com o form o problema, porque antes do comando responsável por transferir o conteúdo para o TextBox, eu havia colocado um MsgBox, que por sinal, também não funcionou.

Assim, o problema é com o recordset. Também já fiz o seguinte, no form de Consulta (que não funciona), alterei o método de abertura do recordset de Set RS = BANCO.Execute(SQL) para RS.Open SQL, BANCO, adOpenStatic, adLockOptimistic. Não funcionou também.

Vlw ^_^

Editado por Musashi_RS
Link para o comentário
Compartilhar em outros sites

  • 0

hum... como você chegou nesse numero 255?? você deu um Len() pra ver se era esse valor mesmo??

então você confirmou q é do recordset mesmo?? você deu um len direto no recordset e retornou 255??

o controle onde você ta tentando mostrar é um textbox mesmo?? tipo é um TextBox do Visual Basic 6?? não é nenhum otro controle de otras ocx?? é o MaxLength é 0, certo??

é estranho... o q tem na sub AbrirBanco?? e como ta o Load dos dois forms??

e em q hora você seta o campo no textbox??

você chega a fechar a sua conexao e depois reabrir??

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri! =D

Cara, foi o seguinte.

Encontrei um "DISTINCT" viajando lá no SELECT... Se estou buscando por código, não sei porque tinha um DISTINCT ali... O.o Vai ver é porque o código é antigo hehe... =P Retirei o DISTINCT e o negócio funcionou.

Agora, teoricamente deveria funcionar com ou sem DISTINCT, correto? o.O

Ah, e cheguei na conclusão de que o limite era 255 caractéres, porque fiz um Len no recordset mesmo... e outros registros com mais caractéres nesse campo não passavam de 255 também... =)

Obrigado pela ajuda.

Editado por Musashi_RS
Link para o comentário
Compartilhar em outros sites

  • 0
Agora, teoricamente deveria funcionar com ou sem DISTINCT, correto? o.O

é mesmo... mas vai ver q pra evitar compara um campo muito gde, o access limita 255 caracteres. tipo, imagina comparar varios campos com 60000 caracteres pra saber se são iguais...

trabalhar com campo memo as vezes gera uma complicacao mesmo...

mas beleza então

Link para o comentário
Compartilhar em outros sites

  • 0

alguém pode me ajudar?

Comigo acontece o mesmo problema porém meu banco é Oracle.

No campo do text ele mostra todo o conteudo, porém no Crystal Reports quando peço o relatório ele corta o texto.

alguém sabe me dizer o porque?

O campo no Crystal esta como MEMO e na base de dados ele é um VARCHAR2(4000).

Obrigado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...