ROBO PARA ATUALIZAR DADOS

FABAO 02/01/2010 19:06:45
#330886
Buenas niños


to precisando criar um robo, para atualizar meu banco de dados...


tenho uma tabela no banco cujo meus registros tem antes do texto um numero exemplo:

1Texto que se seque
2texto que se segue
3texto que se segue

o que eu preciso é de uma sql que faça uma varredura na tabela e retire esses numeros e deixe somente o texto do campo, e que esse numero seja gravado em um outro campo que criei agora...

se alguem puder me montar essa sql, ou saiba de um jeito mais eficiente eu agradeço...

obrigado
JWCELYO 02/01/2010 19:13:21
#330887
eu entendi mais o menos.
você fala tipo um rotina para percorrer toda tabela onde ter milhares de registros que inicia com numeros e depois letras.
ai você que separar numeros de letras e grava os numeros em outra tabela é isso ?
TECLA 02/01/2010 19:15:53
#330889
Resposta escolhida
Poste a ESTRUTURA (campos e tipos de dados) da tabela.
FABAO 02/01/2010 19:16:43
#330890
isso, mas os numeros serão gravados na mesma tabela num outro campo, teria de ser um comando update neh...

preciso de uma sql de update dentro de um loop

to tentando aqui, tem alguma ideia?
FABAO 02/01/2010 19:26:13
#330892
Citação:

TECLA :
Poste a ESTRUTURA (campos e tipos de dados) da tabela.




Codigo = long

nome = text

conteudo = text

local = text

capitulo = text


sendo que os textos com os numeros no inicio estão em [Ô]nome[Ô] e os numeros retirados de lá vão para [Ô]capitulo[Ô]


FABAO 02/01/2010 20:12:45
#330893
amigos, mais um detalhe... eu consegui aqui no site uma rotina que extrai os numeros de uma string, me serviria, porém ela estrai todos os numeros do texto e são milhares de registro e naum sei se em algum desses registros contém numeros entre seu conteúdo, sendo assim só posso remover os numeros antes de comessar o texto...


um detalhe que talvez seja importante é que os numeros são separados por um espaço, sendo assim acho que poreia usar uma rotina para pegar tudo que estiver antes do primeiro espaço...

alguem sabe com montar isso?


obrigado
TECLA 02/01/2010 20:13:20
#330894
OK.

Outra coisa, não existe um PADRÃO de armazenamento na coluna NOME?
Exemplo:

1Texto que se seque - Há um ESPAÇO entre o NÚMERO e o NOME
2texto que se segue - Não há o ESPAÇO do registro anterior
FABAO 02/01/2010 20:28:55
#330896
Citação:

TECLA :
OK.

Outra coisa, não existe um PADRÃO de armazenamento na coluna NOME?
Exemplo:

1Texto que se seque - Há um ESPAÇO entre o NÚMERO e o NOME
2texto que se segue - Não há o ESPAÇO do registro anterior




tecla tem espaço sim

exemplo:

registro 1: 124 Texto que se segue

registro 2: 47 Texto que se segue

e assim por diante
TECLA 03/01/2010 11:10:06
#330935
Tente o seguinte:

Dim i As Integer, num As Integer, texto As String
i = InStr(1, Text1, [Ô] [Ô])
[txt-color=#007100][ô] Pegar somente o NÚMERO[/txt-color]
num = Trim(Left(Text1, i - 1))
[txt-color=#007100][ô] Pegar somente o TEXTO[/txt-color]
texto = Trim(Right(Text1, Len(Text1) - i))
[txt-color=#007100][ô] Aqui você faz o UPDATE[/txt-color]


Qualquer dúvida é só postar!
FABAO 03/01/2010 11:15:56
#330936
ótimo meu amigo tecla


porém sóuma duvida, nesta tabela eu tenho 31.098 registros. No caso ele esse codigo vai capturar somente os numeros do inicio do texto?


caso em algum registro eu tenha numeros entre os textos ele vai capturar tbm?


uma coisa que observei foi que os numeros são no máximo 3 casas, o valor máximo [Ô]000[Ô]

vou tentar aqui e te retorno
TECLA 03/01/2010 11:16:33
#330937
Uma idéia da rotina completa, seria a seguinte:

Dim i As Integer, num As Integer, texto As String
Do While Not rs.EOF
[txt-color=#007100] [ô] Identificar o espaço entre o NÚMERO e o TEXTO[/txt-color]
i = InStr(1, rs.Fields([Ô]nome[Ô]), [Ô] [Ô])
[txt-color=#007100] [ô] Pegar somente o NÚMERO[/txt-color]
num = Trim(Left(Text1, i - 1))
[txt-color=#007100] [ô] Pegar somente o TEXTO[/txt-color]
texto = Trim(Right(Text1, Len(Text1) - i))
[txt-color=#007100] [ô] Aqui você faz o UPDATE[/txt-color]
sSQL = [Ô]UPDATE tabela SET nome=[ô][Ô] & texto & [Ô][ô], capitulo=[Ô] & num & [Ô] WHERE nome=[ô][Ô] & rs.Fields([Ô]nome[Ô]) & [Ô][ô][Ô]
con.Execute sSQL
rs.MoveNext
Loop
MsgBox [Ô]Atualização concluída![Ô], , [Ô]Tecla - VBMania[Ô]
Página 1 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas